From ea2824510fcac6d8c905907b4c2d11517dd96477 Mon Sep 17 00:00:00 2001 From: JoraTracktor <39220306+JoraTracktor@users.noreply.github.com> Date: Sun, 23 Dec 2018 11:48:29 +0300 Subject: [PATCH 1/3] Update Main.java --- src/flashcards/Main.java | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/flashcards/Main.java b/src/flashcards/Main.java index d1b036c..724932a 100644 --- a/src/flashcards/Main.java +++ b/src/flashcards/Main.java @@ -2,6 +2,32 @@ public class Main { public static void main(String[] args) { - System.out.print("Hello world!"); + final Scanner scanner = new Scanner(System.in); + + System.out.println("Input the number of cards:"); + int number = scanner.nextInt(); + String[] cards = new String[number]; + String[] definitions = new String[number]; + String answer; + + for (int i = 0; i < number; i++ ) { + System.out.println("The card #" + (i+1) + ":"); + cards[i] = scanner.next(); + System.out.println("The definition of the card #"+ (i+1)+ ":"); + definitions[i] = scanner.next(); + + } + + for (int i = 0; i < cards.length; i++ ) { + System.out.println("Print the definition of \"" + cards[i] + "\":"); + answer = scanner.next(); + + if (answer.equals(definitions[i])) { + System.out.println("Correct answer."); + } + else { + System.out.println("Wrong answer (the correct one is \""+definitions[i] +"\")."); + } + } } -} \ No newline at end of file +} From a358a81a0c9754c81ab5f3c28c769efeaade8264 Mon Sep 17 00:00:00 2001 From: JoraTracktor <39220306+JoraTracktor@users.noreply.github.com> Date: Sun, 23 Dec 2018 12:52:57 +0300 Subject: [PATCH 2/3] Stage #4 --- src/flashcards/Main.java | 75 +++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 27 deletions(-) diff --git a/src/flashcards/Main.java b/src/flashcards/Main.java index 724932a..33f1e30 100644 --- a/src/flashcards/Main.java +++ b/src/flashcards/Main.java @@ -1,33 +1,54 @@ package flashcards; public class Main { - public static void main(String[] args) { - final Scanner scanner = new Scanner(System.in); - - System.out.println("Input the number of cards:"); - int number = scanner.nextInt(); - String[] cards = new String[number]; - String[] definitions = new String[number]; - String answer; - - for (int i = 0; i < number; i++ ) { - System.out.println("The card #" + (i+1) + ":"); - cards[i] = scanner.next(); - System.out.println("The definition of the card #"+ (i+1)+ ":"); - definitions[i] = scanner.next(); - - } + private static Map cards = new LinkedHashMap<>(); + private static Scanner scanner = new Scanner(System.in); + + public static void main(final String[] args) { - for (int i = 0; i < cards.length; i++ ) { - System.out.println("Print the definition of \"" + cards[i] + "\":"); - answer = scanner.next(); - - if (answer.equals(definitions[i])) { - System.out.println("Correct answer."); - } - else { - System.out.println("Wrong answer (the correct one is \""+definitions[i] +"\")."); - } - } + System.out.println("Input the number of cards:"); + int numberofCards = scanner.nextInt(); + createCards(numberofCards); + checkCards(); + //System.out.println(cards); + + } + + private static void createCards(int numberOfCards) { + String card; + String definition; + for (int i = 1; i <= numberOfCards; i++) { + System.out.println("The card #" + i +":"); + while (true) { + card = scanner.next(); + if (cards.containsKey(card)) { + System.out.println("Such card is exist. Input another card:"); + } + else { + System.out.println("The definition of the card #" + i + ":"); + definition = scanner.next(); + cards.put(card, definition); + break; + } + } + } + } + + private static void checkCards() { + String answer; + for (Map.Entry card : cards.entrySet()) { + System.out.println("Print the definition of \""+ card.getKey()+"\":"); + answer = scanner.next(); + if (answer.equals(card.getValue())) { + System.out.println("Correct answer."); + } + else if (cards.containsValue(answer)) { + System.out.println("Wrong answer (The correct one is \""+ card.getValue() +"\"). You've just written a definition of another card."); + } + else { + System.out.println("Wrong answer (The correct one is \""+ card.getValue() +"\")."); + } + } + } } } From 1a234aa664f22942c7eedf8deec80ed9703a208a Mon Sep 17 00:00:00 2001 From: JoraTracktor <39220306+JoraTracktor@users.noreply.github.com> Date: Sun, 23 Dec 2018 23:19:52 +0300 Subject: [PATCH 3/3] Stage #5 --- src/flashcards/Main.java | 171 +++++++++++++++++++++++++++++++++------ 1 file changed, 147 insertions(+), 24 deletions(-) diff --git a/src/flashcards/Main.java b/src/flashcards/Main.java index 33f1e30..f21f823 100644 --- a/src/flashcards/Main.java +++ b/src/flashcards/Main.java @@ -1,39 +1,155 @@ package flashcards; public class Main { - private static Map cards = new LinkedHashMap<>(); + private static Map cards = new LinkedHashMap<>(); private static Scanner scanner = new Scanner(System.in); + private static ArrayList cardsInArray = new ArrayList(); + private static List logs = new ArrayList<>(); - public static void main(final String[] args) { - - System.out.println("Input the number of cards:"); - int numberofCards = scanner.nextInt(); - createCards(numberofCards); - checkCards(); - //System.out.println(cards); + public static void main(String[] args) { + + String action; + while (true) { + System.out.println(cards); + System.out.print("Input the action (add, remove, import, export, ask, exit): "); + action = scanner.next(); + + switch (action){ + case "add": + add(); + break; + case "remove": + remove(); + break; + case "import": + imp(); + break; + case "export": + exp(); + break; + case "ask": + ask(); + break; + case "log": + log(); + break; + case "hardest card": + hardestCard(); + break; + case "exit": + System.out.println("Bye bye!"); + System.exit(0); + break; + default : + System.out.println("Unknown operation. Repeat action: "); + } + } } - private static void createCards(int numberOfCards) { + private static void add() { String card; String definition; - for (int i = 1; i <= numberOfCards; i++) { - System.out.println("The card #" + i +":"); - while (true) { - card = scanner.next(); - if (cards.containsKey(card)) { - System.out.println("Such card is exist. Input another card:"); - } - else { - System.out.println("The definition of the card #" + i + ":"); - definition = scanner.next(); - cards.put(card, definition); - break; - } - } + System.out.print("The card: "); + + while (true) { + card = scanner.next(); + if (cards.containsKey(card)) { + System.out.print("Such card is exist. Input another card: "); + } + else { + System.out.print("The definition of the card: "); + definition = scanner.next(); + cards.put(card, definition); + cardsInArray.add(card); + break; + } + } + System.out.println("The pair (\""+ card +"\":\""+ definition +"\") is added."); + } + + private static void remove() { + String card; + System.out.print("The card: "); + card = scanner.next(); + if (cards.containsKey(card)) { + cards.remove(card); + cardsInArray.remove(card); + } + else { + System.out.println("Can't remove \""+ card +"\": there is no such card."); + } + } + + private static void exp() { + System.out.println("Enter filename: "); + String filename = scanner.next(); + File file = new File(filename); + int count = 0; + try { + BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file)); + if (!file.exists()) { + file.createNewFile(); + } + + for (Map.Entry card : cards.entrySet()) { + bufferedWriter.write(card.getKey()); + bufferedWriter.append("\n"); + bufferedWriter.write(card.getValue()); + bufferedWriter.append("\n"); + count++; + } + bufferedWriter.flush(); + bufferedWriter.close(); + } catch (IOException e) { + e.printStackTrace(); + } + System.out.println(count +" cards have been loaded."); + } + + private static void imp() { + System.out.println("Enter filename: "); + String filename = scanner.next(); + File file = new File(filename); + int count = 0; + + try { + BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); + while (bufferedReader.ready()) { + cards.put(bufferedReader.readLine(), bufferedReader.readLine()); + } + bufferedReader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private static void ask() { + int askNumber; + String answer; + Random random = new Random(); + int randomNumber; + + System.out.println("How many times to ask?"); + askNumber = scanner.nextInt(); + + for (int i = 0; i < askNumber; i++ ) { + randomNumber = random.nextInt(cardsInArray.size()); + System.out.println("Print the definition of \""+ cards.get(cardsInArray.get(randomNumber))+"\":"); + answer = scanner.next(); + if (answer.equals(cards.get(cardsInArray.get(randomNumber)))) { + System.out.println("Correct answer."); + } + else if (cards.containsValue(answer)) { + System.out.println("Wrong answer. You've just written a definition of another card."); + } + else { + System.out.println("Wrong answer."); + } } } + private static void checkCards() { String answer; for (Map.Entry card : cards.entrySet()) { @@ -50,5 +166,12 @@ else if (cards.containsValue(answer)) { } } } - } + + private static void log() { + + } + + private static void hardestCard() { + + } }