package demo.d10 ; import java.io.OutputStream; import java.io.PrintStream; import fi.jyu.mit.ohj2.*; /** * Esimerkki linkitetystä listasta. * Kun täydennät, ota @SuppressWarnings("unused") rivit pois * @author Vesa Lappalainen * @version 1.0, 15.03.2003 */ @SuppressWarnings("unused") // NOPMD public class Koulu { /** * Luokan yksi oppilas */ public static class Oppilas { private final String nimi; private final double keskiarvo; private Oppilas seuraava; /** * Alustetaan oppilaan tiedot * @param nimi oppilaan nimi * @param keskiarvo oppilaan keskiarvo */ public Oppilas(String nimi, double keskiarvo) { this.nimi = nimi; this.keskiarvo = keskiarvo; } /** * Palautetaan oppilaan tiedot merkkijonona * @return oppilaan tiedot merkkijonona */ @Override public String toString() { return Mjonot.fmt(nimi,-22) + " keskiarvo: " + Mjonot.fmt(keskiarvo,5,2); } } private final String luokka; // NOPMD private int oppilaita; private Oppilas ensimmainen; private Oppilas viimeinen; /** * Alustetaan luokka * @param luokka luokannimi */ public Koulu(String luokka) { this.luokka = luokka; } /** * Lisätään uusi oppilas * @param oppilas lisättävä oppilas * @example *
   * #import java.io.ByteArrayOutputStream;
   * #CLASSIMPORT
   *  ByteArrayOutputStream bs  = new ByteArrayOutputStream();
   *  String alku =  "%n%nLuokka: 1b oppilaita: %d%n" +
   *                 "==========================================%n";
   *  String loppu = "==========================================%n";
   *  String t = "";
   *  
   *  Koulu luokka = new Koulu("1b");
   *  
   *  luokka.lisaa(new Koulu.Oppilas($nimi,$ka)); // NOPMD
   *  luokka.tulosta(bs);
   *  bs.toString() === String.format(alku+($oppilaat)+loppu,$maara); bs.reset();
   *  
   *    $nimi       | $ka | $maara | $oppilaat
   *  -------------------------------------------------------------------------------
   *    ---         | --- |   0    | t=""                    
   *  "Ankka Aku"   | 5.0 |   1    | t+="Ankka Aku              keskiarvo:  5.00%n"
   *  "Ankka Tupu"  | 7.0 |   2    | t+="Ankka Tupu             keskiarvo:  7.00%n"
   *  "Hiiri Mikki" | 9.0 |   3    | t+="Hiiri Mikki            keskiarvo:  9.00%n"
   *                 
   *  
   *  luokka.poistaKaikki();
   *                
   *  luokka.lisaa(new Koulu.Oppilas($nimi,$ka)); // NOPMD
   *  luokka.tulosta(bs);
   *  bs.toString() === String.format(alku+($oppilaat)+loppu,$maara);  bs.reset();

   *    $nimi       | $ka | $maara | $oppilaat
   *  -------------------------------------------------------------------------------
   *    ---         | --- |   0    | t=""                   
   *  "Hiiri Mikki" | 9.0 |   1    | t+="Hiiri Mikki            keskiarvo:  9.00%n"
   *                 
   * 
*/ public void lisaa(Oppilas oppilas) { // TODO: oppilaan lisääminen } /** * Tulostetaan luokan tiedot tietovirtaan. * @param os tietovirta, johon tulostetaan */ public void tulosta(OutputStream os) { PrintStream out = new PrintStream(os); out.println(); out.println(); out.println("Luokka: " + luokka + " oppilaita: " + oppilaita); out.println("=========================================="); // TODO: oppilaiden tulostus out.println("=========================================="); } /** * Poistetaan kaikki luokan oppilaat */ public void poistaKaikki() { // TODO: kaikkien poistaminen } /** * Testataan luokkaa * @param args ei käytössä */ public static void main(String[] args) { Koulu luokka = new Koulu("1b"); luokka.lisaa(new Oppilas("Ankka Aku",5.0)); luokka.lisaa(new Oppilas("Ankka Tupu",7.0)); luokka.lisaa(new Oppilas("Hiiri Mikki",9.0)); luokka.tulosta(System.out); luokka.poistaKaikki(); luokka.tulosta(System.out); } }