1 package kerho;
2 import java.io.*;
3 import fi.jyu.mit.ohj2.Mjonot;
4
10 public class Jasen {
11 private int tunnusNro;
12 private String nimi = "";
13 private String hetu = "";
14 private String katuosoite = "";
15 private String postinumero = "";
16 private String postiosoite = "";
17 private String kotipuhelin = "";
18 private String tyopuhelin = "";
19 private String autopuhelin = "";
20 private int liittymisvuosi = 0;
21 private double jmaksu = 0;
22 private double maksu = 0;
23 private String lisatietoja = "";
24 private static int seuraavaNro = 1;
25
26
27
33 public static int rand(int ala, int yla) {
34 double n = (yla-ala)*Math.random() + ala;
35 return (int)Math.round(n);
36 }
37
38
39
43 public void vastaaAkuAnkka(String apuhetu) {
44 nimi = "Ankka Aku";
45 hetu = apuhetu;
46 katuosoite = "Ankkakuja 6";
47 postinumero = "12345";
48 postiosoite = "ANKKALINNA";
49 kotipuhelin = "12-1234";
50 tyopuhelin = "";
51 autopuhelin = "";
52 liittymisvuosi = 1996;
53 jmaksu = 50.00;
54 maksu = 30.00;
55 lisatietoja = "Velkaa Roopelle";
56 }
57
58
59
64 public void vastaaAkuAnkka() {
65 String apuhetu = Mjonot.fmt(rand(1,31),2,'0') +
66 Mjonot.fmt(rand(1,12),2,'0') +
67 Mjonot.fmt(rand(1,99),2,'0') + "-" +
68 Mjonot.fmt(rand(1,1000),3,'0') +
69 ( (char)((int)'A'+rand(0,25)));
70 vastaaAkuAnkka(apuhetu);
71 }
72
73
74
78 public void tulosta(PrintStream out) {
79 out.println(Mjonot.fmt(tunnusNro,3,'0')+ " " + nimi + " " + hetu);
80 out.println(" " + katuosoite + " " + postinumero + " " + postiosoite);
81 out.println(" k: " + kotipuhelin +
82 " t: " + tyopuhelin +
83 " a: " + autopuhelin);
84 out.print(" Liittynyt " + liittymisvuosi + ".");
85 out.println(" Jäsenmaksu " + Mjonot.fmt(jmaksu,4,2) + " mk." +
86 " Maksettu " + Mjonot.fmt(maksu,4,2) + " mk.");
87 out.println(" " + lisatietoja);
88 }
89
90
91
95 public void tulosta(OutputStream os) {
96 tulosta(new PrintStream(os));
97 }
98
99
114 public int rekisteroi() {
115 tunnusNro = seuraavaNro;
116 seuraavaNro++;
117 return tunnusNro;
118 }
119
120
121
125 public int getTunnusNro() { return tunnusNro; }
126
127
128
132 @Override
133 public String toString() {
134 return "" +
135 tunnusNro + "|" +
136 nimi + "|" +
137 hetu + "|" +
138 katuosoite + "|" +
139 postinumero + "|" +
140 postiosoite + "|" +
141 kotipuhelin + "|" +
142 tyopuhelin + "|" +
143 autopuhelin + "|" +
144 liittymisvuosi + "|" +
145 jmaksu + "|" +
146 maksu + "|" +
147 lisatietoja ;
148 }
149
150
151
171 public void parse(String rivi) {
172 StringBuffer sb = new StringBuffer(rivi);
173 tunnusNro = Mjonot.erota(sb,'|',tunnusNro);
174 if ( tunnusNro >= seuraavaNro ) seuraavaNro = tunnusNro + 1;
175 nimi = Mjonot.erota(sb,'|',nimi);
176 hetu = Mjonot.erota(sb,'|',hetu);
177 katuosoite = Mjonot.erota(sb,'|',katuosoite);
178 postinumero = Mjonot.erota(sb,'|',postinumero);
179 postiosoite = Mjonot.erota(sb,'|',postiosoite);
180 kotipuhelin = Mjonot.erota(sb,'|',kotipuhelin);
181 tyopuhelin = Mjonot.erota(sb,'|',tyopuhelin);
182 autopuhelin = Mjonot.erota(sb,'|',autopuhelin);
183 liittymisvuosi = Mjonot.erota(sb,'|',liittymisvuosi);
184 jmaksu = Mjonot.erota(sb,'|',jmaksu);
185 maksu = Mjonot.erota(sb,'|',maksu);
186 lisatietoja = Mjonot.erota(sb,'|',lisatietoja);
187 }
188
189
190
191
195 public static void main(String args[]) {
196 Jasen aku = new Jasen(), aku2 = new Jasen();
197 aku.rekisteroi();
198 aku2.rekisteroi();
199 aku.tulosta(System.out);
200 aku.vastaaAkuAnkka();
201 aku.tulosta(System.out);
202
203 aku2.vastaaAkuAnkka();
204 aku2.tulosta(System.out);
205
206 aku2.vastaaAkuAnkka();
207 aku2.tulosta(System.out);
208 }
209
210 }
211
212
213