import java.util.HashMap; import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; class KjoretoySystem { // navn, person/sjafor HashMap personer = new HashMap(); HashMap sjaforer = new HashMap(); // regnr, bil/motorsykkel HashMap kjoretoyene = new HashMap(); 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) == '#') { // alt: linje.startsWith("#") 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; case "motorsykler": kjoretoyene.put(info[0], new Motorsykkel(info[0])); break; case "personer": try { alder = Integer.parseInt(info[1]); personer.put(info[0], new Person(info[0], alder)); } catch (UgyldigAlderException e) { System.out.print("Ugyldig alder: " + alder); System.out.println("for person " + info[0]); } break; case "sjaforer": opprettSjafor(info); break; default: System.out.println("Ugyldig type"); break; } } } } public 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" + "2) Legg kjoretoy til hos sjaafoer\n" + "0) Avslutt"; int valg = -1; while (valg != 0) { System.out.println(menytekst); valg = faaValg(); switch (valg) { case 1: skrivUt(); break; case 2: System.out.println("Legg kjoretoy til sjafor"); leggKjoretoyTilSjafor(); break; case 0: System.out.println("----Avslutter------"); break; default: System.out.println("Ugyldig valg"); break; } } } public void skrivUt() { System.out.println("\nSkriver ut info: "); for (Person p: personer.values()) { System.out.println(p); } 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(){ System.out.println("Velg en sjafor! "); Sjafor s = velgSjafor(); System.out.println("Velg et kjoretoy!"); Kjoretoy k = velgKjoretoy(); s.settKjoretoy(k); System.out.println("\nSjaforen er naa registrert som:"); System.out.println(s); } public Kjoretoy velgKjoretoy() { Kjoretoy kjoretoyet = null; String regNr = ""; while (kjoretoyet == null) { System.out.println("Velg et kjoretoy"); for (Kjoretoy k: kjoretoyene.values()) { System.out.println(k); } System.out.print("Skriv inn regNr: "); regNr = tast.nextLine(); kjoretoyet = kjoretoyene.get(regNr); if (kjoretoyet == null) { System.out.println("\nUgyldig valg, pr?v igjen\n"); } } 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]); } } }