Ohjelmoinnin perusteet, kurssikoe 12.12.2011 Tehtävän 3 malliratkaisu ja arvosteluperusteet Antti Laaksonen import java.util.*; import java.io.*; public class Sanakirja { public static void main(String[] args) { Scanner syotteenLukija = new Scanner(System.in); System.out.print("Anna tiedoston nimi: "); String tiedostonNimi = syotteenLukija.nextLine(); File tiedosto = new File(tiedostonNimi); if (!tiedosto.exists()) { System.out.println("Tiedostoa ei ole olemassa!"); return; } Scanner tiedostonLukija; try { tiedostonLukija = new Scanner(tiedosto); } catch (Exception e) { System.out.println("Tiedoston lukeminen ei onnistu!"); return; } HashMap sanasto = new HashMap(); while (tiedostonLukija.hasNextLine()) { String sana = tiedostonLukija.nextLine(); if (!tiedostonLukija.hasNextLine()) { System.out.println("Tiedostossa on pariton määrä rivejä!"); return; } String kaannos = tiedostonLukija.nextLine(); sanasto.put(sana, kaannos); } while (true) { System.out.print("Anna sana: "); String sana = syotteenLukija.nextLine(); if (sana.isEmpty()) { break; } if (sanasto.containsKey(sana)) { String kaannos = sanasto.get(sana); System.out.println("Käännös: " + kaannos); } else { System.out.println("Käännöstä ei löydy!"); } } } } Arvostelusta: Ohjelman kokonaisrakenteesta sai 0-6 pistettä. Lisäksi virheenkäsittelyn ja HashMap-rakenteen käytön yksityiskohdista sai molemmista 0-2 pistettä. Useimmat olivat ratkaisseet tehtävän oikein hyvin. Yleisimmät puutteet olivat virheenkäsittelyssä.