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