import java.io.*;
import fi.jyu.mit.ohj2.*;
public class Jasen {
private int tunnus_nro; private String nimi = ""; private String hetu = ""; private String katuosoite = "";
private String postinumero = "";
private String postiosoite = "";
private String kotipuhelin = "";
private String tyopuhelin = "";
private String autopuhelin = "";
private int liittymisvuosi = 0;
private double jmaksu = 0;
private double maksu = 0;
private String lisatietoja = "";
private static int seuraava_nro = 1;
public Jasen() { }
public int getKenttia() { return 13; }
public int ekaKentta() { return 1; }
public String anna(int k) {
switch ( k ) {
case 0: return ""+tunnus_nro ;
case 1: return ""+nimi ;
case 2: return ""+hetu ;
case 3: return ""+katuosoite ;
case 4: return ""+postinumero ;
case 5: return ""+postiosoite ;
case 6: return ""+kotipuhelin ;
case 7: return ""+tyopuhelin ;
case 8: return ""+autopuhelin ;
case 9: return ""+liittymisvuosi ;
case 10: return ""+jmaksu ;
case 11: return ""+maksu ;
case 12: return ""+lisatietoja ;
default: return "Äääliö";
}
}
public String aseta(int k,String jono) {
StringBuffer sb = new StringBuffer(jono);
switch ( k ) {
case 0: tunnus_nro = Mjonot.erota(sb,'§',tunnus_nro); return null;
case 1: nimi = jono ; return null;
case 2: hetu = jono ; return null;
case 3: katuosoite = jono ; return null;
case 4: postinumero = jono ; return null;
case 5: postiosoite = jono ; return null;
case 6: kotipuhelin = jono ; return null;
case 7: tyopuhelin = jono ; return null;
case 8: autopuhelin = jono ; return null;
case 9:
try {
liittymisvuosi = Mjonot.erotaEx(sb,'§',liittymisvuosi);
} catch (NumberFormatException ex) {
return "Liittymisvuosi väärin " + ex.getMessage();
}
return null;
case 10: jmaksu = Mjonot.erota(sb,'§',jmaksu); return null;
case 11: maksu = Mjonot.erota(sb,'§',maksu); return null;
case 12: lisatietoja = Mjonot.erota(sb,'§',lisatietoja); return null;
default: return "ÄÄliö";
}
}
public String getKysymys(int k) {
switch ( k ) {
case 0: return "Tunnus nro" ;
case 1: return "Jäsenen nimi" ;
case 2: return "hetu" ;
case 3: return "katuosoite" ;
case 4: return "postinumero" ;
case 5: return "postiosoite" ;
case 6: return "kotipuhelin" ;
case 7: return "tyopuhelin" ;
case 8: return "autopuhelin" ;
case 9: return "liittymisvuosi" ;
case 10: return "jmaksu" ;
case 11: return "maksu" ;
case 12: return "lisatietoja" ;
default: return "Äääliö";
}
}
public static int rand(int ala, int yla) {
double n = (yla-ala)*Math.random() + ala;
return (int)Math.round(n);
}
public void vastaa_aku_ankka() {
String apuhetu = Mjonot.fmt(rand(1,31),2,'0') +
Mjonot.fmt(rand(1,12),2,'0') +
Mjonot.fmt(rand(1,99),2,'0') + "-" +
Mjonot.fmt(rand(1,1000),3,'0') +
( (char)((int)'A'+rand(1,25)));
nimi = "Ankka Aku";
hetu = apuhetu;
katuosoite = "Ankkakuja 6";
postinumero = "12345";
postiosoite = "ANKKALINNA";
kotipuhelin = "12-1234";
tyopuhelin = "";
autopuhelin = "";
liittymisvuosi = 1996;
jmaksu = 50.00;
maksu = 30.00;
lisatietoja = "Velkaa Roopelle";
}
public void tulosta(PrintStream out) {
out.println(Mjonot.fmt(tunnus_nro,3,'0')+ " " + nimi + " " + hetu);
out.println(" " + katuosoite + " " + postinumero + " " + postiosoite);
out.println(" k: " + kotipuhelin +
" t: " + tyopuhelin +
" a: " + autopuhelin);
out.print(" Liittynyt " + liittymisvuosi + ".");
out.println(" Jäsenmaksu " + Mjonot.fmt(jmaksu,4,2) + " mk." +
" Maksettu " + Mjonot.fmt(maksu,4,2) + " mk.");
out.println(" " + lisatietoja);
}
public void tulosta(OutputStream os) {
tulosta(new PrintStream(os));
}
public int rekisteroi() {
tunnus_nro = seuraava_nro;
seuraava_nro++;
return tunnus_nro;
}
public int getTunnus_nro() { return tunnus_nro; }
public String toString() {
StringBuffer sb = new StringBuffer("");
for (int k=0; k<getKenttia(); k++)
sb.append(anna(k) + "|");
return sb.toString();
}
public void parse(String rivi) {
StringBuffer sb = new StringBuffer(rivi);
for (int k = 0; k < getKenttia(); k++ )
aseta(k,Mjonot.erota(sb,'|'));
if ( tunnus_nro >= seuraava_nro ) seuraava_nro = tunnus_nro + 1;
}
public static void main(String args[]) {
Jasen aku = new Jasen(), aku2 = new Jasen();
aku.rekisteroi();
aku2.rekisteroi();
aku.tulosta(System.out);
aku.vastaa_aku_ankka();
aku.tulosta(System.out);
aku2.vastaa_aku_ankka();
aku2.tulosta(System.out);
aku2.vastaa_aku_ankka();
aku2.tulosta(System.out);
System.out.println(aku2.toString());
}
}