Predmet je členený do nasledujúcich aktivít:
Na konzultačných cvičeniach
Priebežné hodnotenie:
Minimálny zápočet:
Skúška:
Bodové hodnotenie Vášho zadania (za funkčnú časť) môže overiť pomocou nasled. testu. Každý test má v názve číslo, reprezentujúc získané body v prípade, že Vám zbehne test.
Osobné odovzdanie zadania bude v CPU v termíne 2.5.2024 v čase od 8:00 do 14:00 podľa nasledovného harmonogramu.
Na odovzdávanie treba prísť v predstihu a na určenú hodinu. Počas hodiny budú zatvorené dvere a nebudeme nikoho púštať do vnútra. Na odovzdávanie je potrebné prísť len v prípade, že sa nachádzate v zozname.
Chceli by sme ešte raz zdôrazniť, že keď odovzdáte niečo iné ako priečinok src so štruktúrou podľa šablóny (po rozbalení ZIP súboru tam má byť koreňový priečinok src, žiadne iné priečinky, ani tie testovacie unit testy), alebo pozmeníte štruktúru, automaticky máte 0 bodov! Čiže keď po rozbalení Vášho zadania tam je hocičo iné ako src/sk/stuba/fei/uim/oop/ … (napr. src/main/java/sk/stuba/fei/uim/oop/… , alebo ste pridali src/test/…), tak to máte zle!
Aktualizácia zadania:
V zadaní na str. 6 sme odstránili slovo „ročné“:
„…celkové ročné financovanie projektu P4 je 16000…“ -> „celkové financovanie projektu P4 je 16000“
Okrem prednášok a seminárov máte v rozvrhu vyhradený čas na konzultácie – tzv. konzultačné cvičenia. Konzultačné cvičenia nie sú povinné, odporúčame na ne chodiť podľa potreby. Slúžia na konzultáciu prebraného učiva (prednášky, semináre a domáce úlohy). Konzultovať bude možné len počas konzultačných hodín (čiže e-mailom a iným spôsobom nie)! Na konzultáciu treba prísť podľa rovrhu, keďže je obmedzená kapacita učební. Semestrálne zadanie sa bude odovzdávať na konzultačných cvičeniach koncom semestre (čas upresníme).
Počas semestra zverejníme 8 úloh, ktoré slúžia na precvičenie prebraného učiva. Úlohy treba vypracovať doma, odovzdávajú sa do AIS. Na vypracovanie každej úlohy bude 1 týždeň. Tieto úlohy nie sú bodované (ani povinné), odporúčame však, aby ste ich vypracovali a odovzdali do AIS. Tieto úlohy môžete konzultovať počas konzultačných cvičení podľa rozvrhu (štvrtok 12-14).
Úlohy (budú postupne pribúdať):
Do AIS sa odovzdávajú len súbory s príponou .java (priečinok src).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
package sk.stuba.fei.oop; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.function.Predicate; import java.util.function.Supplier; public class KeyboardInput { public static final String INPUT_FAILURE_TEXT = "Your input has failed. Please try again!"; public static final int INFINITE_TRIES = Integer.MAX_VALUE; public static final String[] TRUE_INPUTS = {"y", "yes", "true", "1", "ano", "áno"}; public static final String[] FALSE_INPUTS = {"n", "no", "false", "0", "nie"}; public static char readChar(String promptText, int numberOfTries, String failureText) { printPrompt(promptText); return readChar(numberOfTries, failureText); } public static char readChar(String promptText, int numberOfTries) { printPrompt(promptText); return readChar(numberOfTries); } public static char readChar(int numberOfTries, String failureText) { return repeatInput(numberOfTries, failureText, c -> c == (char) 0, KeyboardInput::readChar); } public static char readChar(int numberOfTries) { return readChar(numberOfTries, INPUT_FAILURE_TEXT); } public static char readChar(String promptText) { printPrompt(promptText); return readChar(); } public static char readChar() { try { InputStreamReader inputStreamReader = new InputStreamReader(System.in); return trimChar((char) inputStreamReader.read()); } catch (IOException e) { e.printStackTrace(); return (char) 0; } } public static String readString(String promptText, int numberOfTries, String failureText) { printPrompt(promptText); return readString(numberOfTries, failureText); } public static String readString(String promptText, int numberOfTries) { printPrompt(promptText); return readString(numberOfTries); } public static String readString(int numberOfTries, String failureText) { return repeatInput(numberOfTries, failureText, String::isEmpty, KeyboardInput::readString); } public static String readString(int numberOfTries) { return readString(numberOfTries, INPUT_FAILURE_TEXT); } public static String readString(String promptText) { printPrompt(promptText); return readString(); } public static String readString() { try { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); return bufferedReader.readLine().trim(); } catch (IOException e) { e.printStackTrace(); return ""; } } public static int readInt(String promptText, int numberOfTries, String failureText) { printPrompt(promptText); return readInt(numberOfTries, failureText); } public static int readInt(String promptText, int numberOfTries) { printPrompt(promptText); return readInt(numberOfTries, INPUT_FAILURE_TEXT); } public static int readInt(int numberOfTries, String failureText) { return repeatInput(numberOfTries, failureText, i -> i == Integer.MIN_VALUE, KeyboardInput::readInt); } public static int readInt(int numberOfTries) { return readInt(numberOfTries, INPUT_FAILURE_TEXT); } public static int readInt(String promptText) { printPrompt(promptText); return readInt(); } public static int readInt() { try { String s = readString(); return s.isEmpty() ? Integer.MIN_VALUE : Integer.parseInt(s); } catch (NumberFormatException e) { e.printStackTrace(); return Integer.MIN_VALUE; } } public static double readDouble(String promptText, int numberOfTries, String failureText) { printPrompt(promptText); return readDouble(numberOfTries,failureText); } public static double readDouble(String promptText, int numberOfTries) { printPrompt(promptText); return readDouble(numberOfTries, INPUT_FAILURE_TEXT); } public static double readDouble(int numberOfTries, String failureText) { return repeatInput(numberOfTries,failureText, d -> d == Double.MIN_VALUE, KeyboardInput::readDouble); } public static double readDouble(int numberOfTries) { return readDouble(numberOfTries, INPUT_FAILURE_TEXT); } public static double readDouble(String promptText) { printPrompt(promptText); return readDouble(); } public static double readDouble() { try { String s = readString(); return s.isEmpty() ? Double.MIN_VALUE : Double.parseDouble(s); } catch (NumberFormatException e) { e.printStackTrace(); return Double.MIN_VALUE; } } public static boolean readBooleanOrElse(boolean defaultValue) { try { return readBoolean(); } catch (IllegalArgumentException e) { e.printStackTrace(); return defaultValue; } } public static boolean readBoolean() throws IllegalArgumentException { String input = readString(); if (input.isEmpty() || Arrays.stream(FALSE_INPUTS).anyMatch(s -> s.equalsIgnoreCase(input))) { return false; } if (Arrays.stream(TRUE_INPUTS).anyMatch(s -> s.equalsIgnoreCase(input))) { return true; } else { throw new IllegalArgumentException("Invalid boolean input! Input " + input + " cannot be parsed into boolean value."); } } private static void printPrompt(String prompt) { System.out.print(prompt + ": "); } private static char trimChar(char c) { String s = ("" + c).trim(); return s.isEmpty() ? (char) 0 : s.charAt(0); } private static T repeatInput(int repetition, String failureMessage, Predicate predicate, Supplier supplier) { T o = supplier.get(); while (predicate.test(o) && repetition != 0) { System.out.println(failureMessage != null ? failureMessage : ""); o = supplier.get(); repetition--; } return o; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
package sk.stuba.fei.oop; import java.io.*; public class ZKlavesnice { public static char readChar(String napis_pre_uzivatela) { char c = ' '; InputStreamReader zklavesnice = new InputStreamReader(System.in); try { System.out.println(napis_pre_uzivatela); c = (char) zklavesnice.read(); } catch (Exception e) { System.out.println("nepodarilo sa"); c = readChar(napis_pre_uzivatela); } return c; } public static String readString(String napis_pre_uzivatela) { String s = ""; BufferedReader zklavesnice = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println(napis_pre_uzivatela); s = zklavesnice.readLine(); } catch (Exception e) { System.out.println("nepodarilo sa"); s = readString(napis_pre_uzivatela); } return s; } public static int readInt(String napis_pre_uzivatela) { int n = 0; String s; BufferedReader zklavesnice = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println(napis_pre_uzivatela); s = zklavesnice.readLine(); n = Integer.parseInt(s); } catch (Exception e) { System.out.println("nepodarilo sa"); n = readInt(napis_pre_uzivatela); } return n; } public static double readDouble(String napis_pre_uzivatela) { double x = 0.0; String s; BufferedReader zklavesnice = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println(napis_pre_uzivatela); s = zklavesnice.readLine(); x = Double.parseDouble(s); } catch (Exception e) { System.out.println("nepodarilo sa"); x = readDouble(napis_pre_uzivatela); } return x; } } |
Pracujeme s JAVA verziou 21.