package cz.muni.fi.ib053.bad; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; public class m { public static class Cls implements Comparable { public String a; public String rok; public String c; public int vyplata; public int e; public int thisIsNumberOfTheBook; @Override public int compareTo(Cls o) { return vyplata - o.vyplata; } } static Scanner keyb = new Scanner(System.in); // tato funkce načte z klávesnice, čímž se teda jako myslí ze standardního vstupu, což je ale teda většinou klávesnice // protože co jiného by to teda jako bylo a tady fa funkce načte teda jako nějakej řetětec a vrátí ho. Ona to vlastně // není funkce, ale je to metoda ve třídě. Ale je statická, no tak to je slovíčkaření. Zítra bude výplata, doufám // že budou prémie, protože se prý něco fakturovalo zákazníkům, tak by šéf mohl něco pustit, když už tady sedím // a nemám home office zatímco on si v pracovní době vyřizuje soukromé věci public static void ps(String what) { System.out.print(what); } // tiskne nový řádek public static int ci(String jmeno) { while (true) { ps(jmeno); String promenna = keyb.nextLine(); try { return Integer.parseInt(promenna); } catch(NumberFormatException ex) { ps("Musíš zadat číslo"); System.out.println(); } finally { } } } public static void main(String[] args) { Map auta = new HashMap<>(); while (true) { ps("1. přidání nové knihy"); System.out.println(); ps("2. vyhledání a vypsání knih podle názvu"); System.out.println(); ps("3. vyhledání a vypsání knih podle autora"); System.out.println(); ps("4. smazání knihy"); System.out.println(); ps("5. ukončení programu"); System.out.println(); System.out.println(); int radiobuton = ci("Vase volba: "); switch(radiobuton) { case 1: Cls brothersPencil = new Cls(); boolean b; do { brothersPencil.thisIsNumberOfTheBook = ci("Číslo knihy: "); b = auta.containsKey(brothersPencil.thisIsNumberOfTheBook); if (b) { // pokud existuje je b true ps("Kniha s tímto číslem již existuje."); System.out.println(); } } while (b); ps("Autor: "); brothersPencil.a = keyb.nextLine(); ps("Název: "); brothersPencil.rok = keyb.nextLine(); ps("Vydavatelství: "); brothersPencil.c = keyb.nextLine(); brothersPencil.vyplata = ci("Rok vydání: "); brothersPencil.e = ci("Počet stran: "); auta.put(brothersPencil.thisIsNumberOfTheBook, brothersPencil); break; case 2: // smazeme vybrana auta ps("Zadej název: "); String n = keyb.nextLine(); List kesmazani = new ArrayList<>(); for (Entry bookEntry : auta.entrySet()) { if (bookEntry.getValue().rok.startsWith(n)) { kesmazani.add(bookEntry.getValue()); }} Collections.sort(kesmazani); // and now deleting for (Cls book : kesmazani) { ps("Číslo knihy: " + book.thisIsNumberOfTheBook); System.out.println(); ps("Autor: " + book.a); System.out.println(); ps("Název: " + book.rok); System.out.println(); ps("Vydavatelství: " + book.c); System.out.println(); ps("Rok vydání: " + book.vyplata); System.out.println(); ps("Počet stran: " + book.e); System.out.println(); System.out.println(); } break; case 3: ps("Zadej autora: "); String a = keyb.nextLine(); kesmazani = new ArrayList<>(); for (Entry bookEntry : auta.entrySet()) { if (bookEntry.getValue().a.startsWith(a) == true) { kesmazani.add(bookEntry.getValue()); } } Collections.sort(kesmazani); for (Cls book : kesmazani) { ps("Číslo knihy: " + book.thisIsNumberOfTheBook); System.out.println(); ps("Autor: " + book.a); System.out.println(); ps("Název: " + book.rok); System.out.println(); ps("Vydavatelství: " + book.c); System.out.println(); ps("Rok vydání: " + book.vyplata); System.out.println(); ps("Počet stran: " + book.e); System.out.println(); System.out.println(); } break; case 4: int znacka_auta = ci("Zadej číslo knihy ke smazání: "); if (auta.containsKey(znacka_auta)) { ps("Kniha nenalezena!"); System.out.println(); break; } Cls noveAuto = auta.get(znacka_auta); auta.remove(znacka_auta); ps("Kniha " + noveAuto.rok + " od " + noveAuto.a + " smazána"); break; case 5: ps("Díky za užití tohoto programu"); System.out.println(); return; } System.out.println(); } } }