import java.util.HashMap; import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; class KjoretoySystem { // navn, sjafor HashMap sjaforer = new HashMap(); // regnr, bil/motorsykkel HashMap kjoretoyene = new HashMap(); // opprett for personer Scanner tast = new Scanner(System.in); // for ? lese valg/svar fra bruker public KjoretoySystem(String filnavn) { lesFraFil(filnavn); meny(); } public KjoretoySystem() { } public void lesFraFil(String filnavn) { Scanner filen = null; try { filen = new Scanner(new File(filnavn)); } catch (FileNotFoundException e) { System.out.println("Kunne ikke ?pne filen: " + filnavn); return; } String type = ""; String linje = ""; while (filen.hasNextLine()) { linje = filen.nextLine(); if (linje.charAt(0) == '#') { type = linje.split(" ")[1]; //System.out.println(type); } else { String[] info = linje.split(", "); int alder = 0; // ogs? mulig ? bruke if-sjekker her switch (type) { case "biler": int antallPlasser = Integer.parseInt(info[1]); Bil b = new Bil(info[0], antallPlasser); kjoretoyene.put(info[0], b); break; // utvid: // opprett motorsykkel-objekt med informasjonen i // info, og legg inn i hashmap for motorsykler // opprett person-objekt med informasjonen i info // legg inn i hashmap for personer // h?ndter mulig unntak dersom personer har ugyldig alder case "sjaforer": // lurt med egen metode n?r mer enn noen f? kodelinjer opprettSjafor(info); break; default: System.out.println("Ugyldig type"); break; } } } } private void opprettSjafor(String[] info) { String navn = info[0]; int alder = Integer.parseInt(info[1]); try { if (info.length == 3) { Kjoretoy k = kjoretoyene.get(info[2]); sjaforer.put(navn, new Sjafor(navn, alder, k)); } else { sjaforer.put(navn, new Sjafor(navn, alder)); } } catch (UgyldigAlderException e) { System.out.print("Kunne ikke opprette sjafor " + navn); System.out.println(" med alder: " + alder); } } private int faaValg() { int valg = -1; while (valg < 0) { System.out.println("Tast ditt valg: "); try { valg = Integer.parseInt(tast.nextLine()); if (valg < 0) { System.out.println("Ugyldig valg, pr?v igjen!"); } } catch (NumberFormatException e) { System.out.println("Ugyldig valg, pr?v igjen!"); } } return valg; } public void meny() { String menytekst = "\n---- MENY ----\n" + "1) Skriv ut info\n" + "0) Avslutt"; int valg = -1; while (valg != 0) { System.out.println(menytekst); valg = faaValg(); switch (valg) { case 1: skrivUt(); break; case 0: System.out.println("----Avslutter------"); break; default: System.out.println("Ugyldig valg"); break; } } } public void skrivUt() { // utvid til ? ogs? skrive ut personer System.out.println("\nSkriver ut info: "); for (Sjafor s: sjaforer.values()) { System.out.println(s); } for (Kjoretoy k: kjoretoyene.values()) { System.out.println(k); } System.out.println("------------------\n"); } public void leggKjoretoyTilSjafor(){ // bruk metodene for ? velge sjafor og kjoretoy // legg kjoretoy til hos sj?f?ren ved ? bruke metoder i sjafor-klassen } public Kjoretoy velgKjoretoy() { Kjoretoy kjoretoyet = null; // la bruker velge kjoretoy og hent dette ut fra hashmapet return kjoretoyet; } public Sjafor velgSjafor() { Sjafor sjaforen = null; String navn = ""; while (sjaforen == null) { System.out.println("Velg en sjaafoer"); for (Sjafor s: sjaforer.values()) { System.out.println(s); } System.out.print("Skriv inn navn: "); navn = tast.nextLine(); sjaforen = sjaforer.get(navn); if (sjaforen == null) { System.out.println("\nUgyldig valg, pr?v igjen\n"); } } return sjaforen; } public static void main(String[] args) { if (args.length < 1) { System.out.println("Kjor med java KjoretoySystem "); } else { KjoretoySystem systemet = new KjoretoySystem(args[0]); } } }