import java.io.*; import fi.jyu.mit.ohj2.*; /** * Kerhon jäsen joka osaa mm. itse huolehtia tunnus_nro:staan. * * @author Vesa Lappalainen * @version 1.0, 22.02.2003 */ 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() { } /** * Arvotaan satunnainen kokonaisluku välille [ala,yla] * @param ala arvonnan alaraja * @param yla arvonnan yläraja * @return satunnainen luku väliltä [ala,yla] */ public static int rand(int ala, int yla) { double n = (yla-ala)*Math.random() + ala; return (int)Math.round(n); } /** * Apumetodi, jolla saadaan täytettyä testiarvot jäsenelle. * Henkilötunnus arvotaan, jotta kahdella jäsenellä ei olisi * samoja tietoja. */ 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"; } /** * Tulostetaan henkilön tiedot * @param out tietovirta johon tulostetaan */ 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); } /** * Tulostetaan henkilön tiedot * @param os tietovirta johon tulostetaan */ public void tulosta(OutputStream os) { tulosta(new PrintStream(os)); } /** * Antaa jäsenelle seuraavan rekisterinumeron. * @return jäsenen uusi tunnus_nro */ public int rekisteroi() { tunnus_nro = seuraava_nro; seuraava_nro++; return tunnus_nro; } public int getTunnus_nro() { return tunnus_nro; } /** * Testiohjelma jäsenelle. * @param args ei käytössä */ 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); } }