/* * INF100, øving 7, oppgave 5.2 * VareAdmin.java */ /** * Et menystyrt program for å lagre og finne varebeskrivelser. * Programmet bruker et Varekatalog-objekt til dette. */ public class VareAdmin { /** Varekatalogen alle varedataene lagres i */ private static Varekatalog katalog; /** Hoveddelen av programmet med menyvalg */ public static void main(String[] args) { int menyvalg; // brukerens valg fra menyen // Innledning System.out.println("Velkommen til VareAdmin!"); // opprett en varekatalog med plass til 100 varer katalog = new Varekatalog(100); // Hovedløkke do { // Skriv meny System.out.println(); System.out.println("Mulige valg:"); System.out.println("1: Sette inn en ny vare"); System.out.println("2: Få skrevet ut informasjon om en vare"); System.out.println("3: Lagre til fil"); System.out.println("4: Lese fra fil"); System.out.println("5: Avslutte programmet"); System.out.print("Ditt valg: "); menyvalg = Terminal.lesInt(); // Utfør valgt operasjon switch(menyvalg) { case 1: settInn(); break; case 2: skriv(); break; case 3: katalog.skrivFil("varedata.txt"); break; case 4: katalog.lesFil("varedata.txt"); break; case 5: System.out.println("Avslutter programmet."); break; default: System.out.println("Ugyldig menyvalg."); } } while (menyvalg != 5); // Slutt på hovedløkke } // Slutt på main() /** * Leser inn data om en ny vare fra terminalen * og setter den inn i katalogen. */ private static void settInn() { // Les inn varedata System.out.print("\tVarenavn: "); String navn = Terminal.lesString(); System.out.print("\tPris: "); double pris = Terminal.lesDouble(); // Opprett nytt vareobjekt Vare nyVare = new Vare(navn,pris); nyVare.settMoms(bekreft("\tEr denne varen momspålagt?")); if (katalog.settInn(nyVare)) System.out.println("\tVaren er lagt inn i katalogen."); else System.out.println("\tIkke plass til flere varer."); } /** * Søker etter en vare i katalogen med navn innlest fra terminalen. * Skriver ut informasjon om varen hvis den finnes. */ private static void skriv() { System.out.print("\tVarenavn: "); String navn = Terminal.lesString(); Vare vare = katalog.finn(navn); if (vare == null) System.out.println("\tIngen vare med navn \"" + navn + "\" i katalogen."); else System.out.println("\tUtsalgsprisen varen \"" + navn + "\" er kr " + vare.hentUtsalgspris()); } /** * Ber brukeren svare j eller n på et spørsmål * og leser inn svaret fra terminalen. * @param tekst Spørsmålsteksten * @return true hvis j, false hvis n */ static boolean bekreft(String tekst) { String svar; System.out.print(tekst + " (j/n) "); // løkken avbrytes med return-setninger inne i løkkekroppen while (true) { // Les inn et svar og "normaliser" svarstrengen svar = Terminal.lesString().toLowerCase().trim(); if (svar.equals("j") || svar.equals("ja")) return true; else if (svar.equals("n") || svar.equals("nei")) return false; else System.out.print("Svar j eller n! "); } } }