1 package kerho;
2
3 import java.io.*;
4
5 import fi.jyu.mit.ohj2.Mjonot;
6
7 import static kanta.HetuTarkistus.*;
8
9
15 public class Jasen {
16 private int tunnusNro;
17 private String nimi = "";
18 private String hetu = "";
19 private String katuosoite = "";
20 private String postinumero = "";
21 private String postiosoite = "";
22 private String kotipuhelin = "";
23 private String tyopuhelin = "";
24 private String autopuhelin = "";
25 private int liittymisvuosi = 0;
26 private double jmaksu = 0;
27 private double maksu = 0;
28 private String lisatietoja = "";
29
30 private static int seuraavaNro = 1;
31
32
33
42 public String getNimi() {
43 return nimi;
44 }
45
46
47
51 public void vastaaAkuAnkka(String apuhetu) {
52 nimi = "Ankka Aku " + rand(1000, 9999);
53 hetu = apuhetu;
54 katuosoite = "Ankkakuja 6";
55 postinumero = "12345";
56 postiosoite = "ANKKALINNA";
57 kotipuhelin = "12-1234";
58 tyopuhelin = "";
59 autopuhelin = "";
60 liittymisvuosi = 1996;
61 jmaksu = 50.00;
62 maksu = 30.00;
63 lisatietoja = "Velkaa Roopelle";
64 }
65
66
67
72 public void vastaaAkuAnkka() {
73 String apuhetu = arvoHetu();
74 vastaaAkuAnkka(apuhetu);
75 }
76
77
78
82 public void tulosta(PrintStream out) {
83 out.println(String.format("%03d", tunnusNro, 3) + " " + nimi + " "
84 + hetu);
85 out.println(" " + katuosoite + " " + postinumero + " " + postiosoite);
86 out.println(" k: " + kotipuhelin +
87 " t: " + tyopuhelin +
88 " a: " + autopuhelin);
89 out.print(" Liittynyt " + liittymisvuosi + ".");
90 out.println(" Jäsenmaksu " + String.format("%4.2f", jmaksu) + " e." +
91 " Maksettu " + String.format("%4.2f", maksu) + " e.");
92 out.println(" " + lisatietoja);
93 }
94
95
96
100 public void tulosta(OutputStream os) {
101 tulosta(new PrintStream(os));
102 }
103
104
105
120 public int rekisteroi() {
121 tunnusNro = seuraavaNro;
122 seuraavaNro++;
123 return tunnusNro;
124 }
125
126
127
131 public int getTunnusNro() {
132 return tunnusNro;
133 }
134
135
136
141 private void setTunnusNro(int nr) {
142 tunnusNro = nr;
143 if (tunnusNro >= seuraavaNro) seuraavaNro = tunnusNro + 1;
144 }
145
146
147
157 @Override
158 public String toString() {
159 return "" +
160 getTunnusNro() + "|" +
161 nimi + "|" +
162 hetu + "|" +
163 katuosoite + "|" +
164 postinumero + "|" +
165 postiosoite + "|" +
166 kotipuhelin + "|" +
167 tyopuhelin + "|" +
168 autopuhelin + "|" +
169 liittymisvuosi + "|" +
170 jmaksu + "|" +
171 maksu + "|" +
172 lisatietoja;
173 }
174
175
176
196 public void parse(String rivi) {
197 StringBuffer sb = new StringBuffer(rivi);
198 setTunnusNro(Mjonot.erota(sb, '|', getTunnusNro()));
199 nimi = Mjonot.erota(sb, '|', nimi);
200 hetu = Mjonot.erota(sb, '|', hetu);
201 katuosoite = Mjonot.erota(sb, '|', katuosoite);
202 postinumero = Mjonot.erota(sb, '|', postinumero);
203 postiosoite = Mjonot.erota(sb, '|', postiosoite);
204 kotipuhelin = Mjonot.erota(sb, '|', kotipuhelin);
205 tyopuhelin = Mjonot.erota(sb, '|', tyopuhelin);
206 autopuhelin = Mjonot.erota(sb, '|', autopuhelin);
207 liittymisvuosi = Mjonot.erota(sb, '|', liittymisvuosi);
208 jmaksu = Mjonot.erota(sb, '|', jmaksu);
209 maksu = Mjonot.erota(sb, '|', maksu);
210 lisatietoja = Mjonot.erota(sb, '|', lisatietoja);
211 }
212
213
214
218 public static void main(String args[]) {
219 Jasen aku = new Jasen(), aku2 = new Jasen();
220 aku.rekisteroi();
221 aku2.rekisteroi();
222 aku.tulosta(System.out);
223 aku.vastaaAkuAnkka();
224 aku.tulosta(System.out);
225
226 aku2.vastaaAkuAnkka();
227 aku2.tulosta(System.out);
228
229 aku2.vastaaAkuAnkka();
230 aku2.tulosta(System.out);
231 }
232
233 }
234