Määrä ja valuutta>10 s[RET] 10.00 Skr on 6.00 mk. Määrä ja valuutta>2[RET] 2.00 Skr on 1.20 mk. Määrä ja valuutta>[RET] Kiitos!
Anna komento>Ynnää 3 4 5[RET] Tulos on 12. Anna komento>Isoksi kana[RET] kana isona on KANA Anna komento>palindromiko saippuakivikauppias[RET] Sana "saippuakivikauppias" on palindromi! Anna komento>Ynnää 2 1[RET] Tulos on 3. Anna komento>Yn 2 1[RET] Tulos on 3. Anna komento>Yh 2 1[RET] En tunne komentoa YH! Anna komento>[RET]
public interface KomentoRajapinta { boolean suorita(String parametrit); } public static class Ynnaa implements KomentoRajapinta { ... public static class Apua implements KomentoRajapinta { ... public static class Palindromiko implements KomentoRajapinta { ... public static class Isoksi implements KomentoRajapinta { ... ... luokkia Komento ja Komennot (sis. mm. metodin: etsi) ... public static void main(String[] args) { Komennot komennot = new Komennot(); Apua apua = new Apua("komento.txt"); komennot.add(new Komento("?",apua)); komennot.add(new Komento("apua",apua)); komennot.add(new Komento("+",new Ynnaa())); komennot.add(new Komento("ynnää",new Ynnaa())); komennot.add(new Komento("isoksi",new Isoksi())); komennot.add(new Komento("palindromiko",new Palindromiko())); String s; while ( true ) { s = Syotto.kysy("Anna komento"); if ( s.equals("") ) break; komennot.tulkitse(s); } }
Tee esim. JBuilderillä JUnit yksikkötesti Kello-luokan testaamiseksi: 1) File/New/Test/Test Case 2) Etsi luokaksi Kello ja sen metodiksi tarkista 3) Vastaile muihin oletukset 4) Muuta luokka seuraavan näköiseksi: import junit.framework.*; /** * Testiohjelma kellon tarkistamiseksi * @author Vesa Lappalainen * @version 1.0, 2.04.2005 */ public class TestKello extends TestCase { private static final String testi[][] = { {"12:23:00.05" , null}, {"kissa" , "Vääriä merkkejä jonossa"}, {"12:23:" , null}, {"12 23" , "Vääriä merkkejä jonossa"}, {"12k23" , "Vääriä merkkejä jonossa"}, {"12:30" , null}, {"25:30" , "Tunnit väärin"}, {"12:65" , "Minuutit väärin"}, {"12:59:78" , "Sekunnit väärin"}, {"12:23:00.0.0" , "Vääriä merkkejä jonossa"}, {"12:59:10.1000" , null}, {"12" , null}, {"" , "Jono tyhjä"} }; public void testTarkista() { Kello kello = new Kello(); for (int i=0; i<testi.length; i++ ) assertEquals("palautus väärin", testi[i][1], kello.tarkista(testi[i][0])); } } 5) Aja testiohjelma ja korjaa tarvittaessa Kello-luokkaasi.
/** * Method that is needed when getting reservationids from tables, * compressed values (etc. 1,2,3) are separated to different rows in * String array * @param arrayWithCommaValues array that has ids separated with commas * in one row * @return String array in which comma separated values are separated */ public static String[] getSeparatedArray(String[] arrayWithCommaValues) { List resList = new ArrayList(); String[] reservations2 = new String[0]; if (arrayWithCommaValues != null) { for (int i = 0; i < arrayWithCommaValues.length; i++) { String[] tmpReservations = arrayWithCommaValues[i].split(","); if (tmpReservations != null) { for (int j = 0; j < tmpReservations.length; j++) { resList.add(tmpReservations[j]); } } } reservations2 = new String[resList.size()]; for (int i = 0; i < resList.size(); i++) { reservations2[i] = (String) resList.get(i); } } return reservations2; }