package luento14; import fi.jyu.mit.ohj2.IO; import fi.jyu.mit.ohj2.Mjonot; /** * Luokka äänestyksen vaihtoehdoille * @author Vesa Lappalainen * @version 1.0, 27.02.2003 */ public class Vaihtoehdot { private Valinta alkiot[]; private int lkm; /** * Kysytään käyttäjältä haluaako jatkaa vai ei. Vastaukseksi kelpaa * iso tai pieni K ja E. Jos painetaan [Ret], tulkitaan tämä K-vastaukseksi. * @return halusiko jatkaa (true) vai ei (false) */ public static boolean jatketaan() { char c; System.out.print("Jatketaanko (K/e):"); c = IO.odota_nappain("KE",'K',IO.MERKKI_ISOKSI); System.out.println(""+c); return ( c == 'K' ); } /** * Alutetaan tallentamaan maxlkm kappaletta kohteita * @param maxlkm tämän enempää kohteita ei mahdu */ public Vaihtoehdot(int maxlkm) { alkiot = new Valinta[maxlkm]; lkm = 0; } /** * @return tämän hetkinen kohteiden määrä */ public int getLkm() { return lkm; } /** * Lisätään uusi. alkio jos mahtuu. * Jos ei mahdu niin ei tehdä mitään. * @param uusi listäätä äänestykohde * @example *
     *   Vaihtoehdot vaihtoehdot = new Vaihtoehdot(3);
     *   vaihtoehdot.getLkm() === 0;
     *   vaihtoehdot.lisaa(new Valinta('K',"Kyllä"));
     *   vaihtoehdot.getLkm() === 1;
     *   vaihtoehdot.lisaa(new Valinta('E',"Ei"));
     *   vaihtoehdot.getLkm() === 2;
     * 
* // TODO varmista että myös oikea tavara lisääntyy */ public void lisaa(Valinta uusi) { if ( lkm >= alkiot.length ) return; alkiot[lkm] = uusi; lkm++; } /** * Etsii valitun kirjaimen mukaisen äänetyskohteen * @param etsittava mitä kirjainta etsitään * @return löydetty kohde tai null jos ei löydy * @example *
     *   Vaihtoehdot vaihtoehdot = new Vaihtoehdot(3);
     *   vaihtoehdot.lisaa(new Valinta('K',"Kyllä"));
     *   vaihtoehdot.lisaa(new Valinta('E',"Ei"));
     *   vaihtoehdot.lisaa(new Valinta('O',"EOS"));
     *   vaihtoehdot.etsi('k').getTeksti() === "Kyllä";
     *   vaihtoehdot.etsi('e').getTeksti() === "Ei";
     *   vaihtoehdot.etsi('o').getTeksti() === "EOS";
     *   vaihtoehdot.etsi('p') === null;
     * 
*/ public Valinta etsi(char etsittava) { for (int i=0; i