import java.util.Scanner; class Dyreklinikk { private final String navn; private final Kø kø = new PrioKø<>(); private final Scanner scanner = new Scanner(System.in); private int behandlede = 0; private boolean åpen = false; Dyreklinikk(String navn) { this.navn = navn; } // antallValg er maks antall vi godtar // returnerer -1 hvis ikke gyldig private int inputTall(int antallValg) { int valg = -1; try { valg = Integer.parseInt(scanner.nextLine()); } catch (NumberFormatException e) { System.out.println("Ugyldig valg."); } if (valg < 0 || valg > antallValg) { valg = -1; } return valg; } private void registrer() { int valg = -1; while (valg < 0) { System.out.println("===== Dyreart ====="); System.out.println("1. Sau"); System.out.println("2. Giraff"); System.out.println("3. Pingvin"); System.out.println("0. Tilbake"); System.out.println("==================="); valg = inputTall(3); if (valg == 0) { return; } } System.out.print("Hva er navnet: "); String navn = scanner.nextLine(); System.out.print("Hvor gammel: "); int alder = inputTall(10000); System.out.print("Er det akutt? (j/n): "); boolean akutt = scanner.nextLine().toLowerCase().startsWith("j"); Dyr dyr = null; if (valg == 1) { dyr = new Sau(navn, alder, akutt); } if (valg == 2) { dyr = new Giraff(navn, alder, akutt); } if (valg == 3) { dyr = new Pingvin(navn, alder, akutt); } if (dyr != null) { kø.inn(dyr); System.out.println(dyr.hentArt() + " lagt til."); } } private void behandle() { Dyr dyrTilLegen = kø.ut(); if (dyrTilLegen != null) { System.out.println( "Behandler " + dyrTilLegen.hentNavn() + " som er " + dyrTilLegen.hentAlder() + " år gammel, og er en " + dyrTilLegen.hentArt() ); behandlede++; } else { System.out.println("Ingen dyr i køen"); } } private void åpnet() { åpen = true; while (åpen) { System.out.println(navn); System.out.println("==== Hovedmeny ===="); System.out.println("1. Registrer dyr"); System.out.println("2. Behandle dyr"); System.out.println("3. Status"); System.out.println("0. Avlsutt"); System.out.println("==================="); int valg = inputTall(3); if (valg == 1) { registrer(); } else if (valg == 2) { behandle(); } else if (valg == 3) { System.out.println( "Det er " + kø.størrelse() + " i kø og " + behandlede + " dyr er behandlet." ); if (kø.hvemErNeste() != null) { System.out.println( "Neste i køen er " + kø.hvemErNeste().hentNavn() ); } } else if (valg == 0) { åpen = false; } } } public static void main(String[] args) { Dyreklinikk frosken = new Dyreklinikk("🐸 Friske Frosk Dyreklinikk"); frosken.åpnet(); } }