From 493a486a8e5c33bddbe07cd970fa6c849e4ddf49 Mon Sep 17 00:00:00 2001 From: Andlek Date: Sat, 6 May 2023 21:40:39 +0400 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=20=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=BC=20=D0=94=D0=97=20=D0=9E=D0=9E=D0=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../otus/java/homework/HomeworkTemplate.java | 46 ------ .../src/ru/otus/java/homework/Question.java | 131 ++++++++++++++++++ 2 files changed, 131 insertions(+), 46 deletions(-) delete mode 100644 L06-if_loops_arrays/src/ru/otus/java/homework/HomeworkTemplate.java create mode 100644 L06-if_loops_arrays/src/ru/otus/java/homework/Question.java diff --git a/L06-if_loops_arrays/src/ru/otus/java/homework/HomeworkTemplate.java b/L06-if_loops_arrays/src/ru/otus/java/homework/HomeworkTemplate.java deleted file mode 100644 index 030bfc9..0000000 --- a/L06-if_loops_arrays/src/ru/otus/java/homework/HomeworkTemplate.java +++ /dev/null @@ -1,46 +0,0 @@ -package ru.otus.java.homework; - -import java.util.Scanner; - -/** - * Заготовка для выполнения ДЗ "Система тестирования". - */ -public class HomeworkTemplate { - public static void main(String[] args) { - // Переменные для хранения количества правильных и неправильных ответов - int correctCount = 0, wrongCount = 0; - - // Ниже вместо null надо написать реализацию, - // написано так, чтобы просто компилировалось - - // TODO: Массив вопросов (вместо null надо написать определение массива) - String[] questions = null; - - // TODO: Массив вариантов ответов - String[][] answerOptions = null; - - // TODO: Массив правильных ответов - int[] correctAnswers = null; - - // Примечание - можете придумать как хранить всю информацию в одном массиве - - Scanner scanner = new Scanner(System.in); - // TODO: Цикл по всем вопросам - исправить, написать правильно - for(int i = 0; i < 0; i++) { - // TODO: Вывод вопроса на экран - - // TODO: Вывод вариантов ответов на экран - - System.out.print("Ваш ответ: "); - //TODO: Считываем с консоли ответ пользователя - - //TODO: Проверяем ответ и выводим результат - // а также увеличиваем счетчики правильных и неправильных ответов - - System.out.println(); - } - - //Выводим общий результат - System.out.println("Результат: правильно " + correctCount + ", неправильно " + wrongCount); - } -} diff --git a/L06-if_loops_arrays/src/ru/otus/java/homework/Question.java b/L06-if_loops_arrays/src/ru/otus/java/homework/Question.java new file mode 100644 index 0000000..79b6db0 --- /dev/null +++ b/L06-if_loops_arrays/src/ru/otus/java/homework/Question.java @@ -0,0 +1,131 @@ +package ru.otus.java.homework; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Question { + private String text; + private List answers; + + public Question(String text) { + this.text = text; + this.answers = new ArrayList<>(); + } + + public String getText() { + return text; + } + + public void addAnswer(Answer answer) { + answers.add(answer); + } + + public List getAnswers() { + return answers; + } +} + +class Answer { + private String text; + private boolean correct; + + public Answer(String text, boolean correct) { + this.text = text; + this.correct = correct; + } + + public String getText() { + return text; + } + + public boolean isCorrect() { + return correct; + } +} + +class Test { + private List questions; + private Scanner scanner; + + public Test() { + this.questions = new ArrayList<>(); + this.scanner = new Scanner(System.in); + } + + public void addQuestion(Question question) { + questions.add(question); + } + + public void run() { + int correctCount = 0; + int incorrectCount = 0; + + for (int i = 0; i < questions.size(); i++) { + Question question = questions.get(i); + + System.out.println((i + 1) + ". " + question.getText()); + + List answers = question.getAnswers(); + for (int j = 0; j < answers.size(); j++) { + Answer answer = answers.get(j); + System.out.println((j + 1) + ") " + answer.getText()); + } + + System.out.print("Введите номер ответа: "); + int userAnswer = scanner.nextInt(); + + if (userAnswer <= answers.size() && answers.get(userAnswer - 1).isCorrect()) { + System.out.println("Правильно!"); + correctCount++; + } else { + System.out.println("Неправильно!"); + incorrectCount++; + } + } + + System.out.println("Количество правильных ответов: " + correctCount); + System.out.println("Количество неправильных ответов: " + incorrectCount); + } + public static void main(String[] args) { + Test test = new Test(); + + Question question1 = new Question("Какой язык программирования используется для разработки Android приложений?"); + question1.addAnswer(new Answer("Java", true)); + question1.addAnswer(new Answer("Python", false)); + question1.addAnswer(new Answer("C++", false)); + question1.addAnswer(new Answer("JavaScript", false)); + + Question question2 = new Question("Какой оператор используется для логического 'и' в Java?"); + question2.addAnswer(new Answer("&&", true)); + question2.addAnswer(new Answer("||", false)); + question2.addAnswer(new Answer("!", false)); + question2.addAnswer(new Answer("&", false)); + + Question question3 = new Question("Что такое JDK в Java?"); + question3.addAnswer(new Answer("Java Development Kit", true)); + question3.addAnswer(new Answer("Java Debugging Kit", false)); + question3.addAnswer(new Answer("Java Deployment Kit", false)); + question3.addAnswer(new Answer("Java Documentation Kit", false)); + + Question question4 = new Question("Какой метод вызывается автоматически при создании объекта в Java?"); + question4.addAnswer(new Answer("init", false)); + question4.addAnswer(new Answer("main", false)); + question4.addAnswer(new Answer("start", true)); + question4.addAnswer(new Answer("run", false)); + + Question question5 = new Question("Что такое полиморфизм в Java?"); + question5.addAnswer(new Answer("Возможность объекта иметь несколько форм", true)); + question5.addAnswer(new Answer("Возможность объекта иметь несколько цветов", false)); + question5.addAnswer(new Answer("Возможность объекта иметь несколько размеров", false)); + question5.addAnswer(new Answer("Возможность объекта иметь несколько имен", false)); + + test.addQuestion(question1); + test.addQuestion(question2); + test.addQuestion(question3); + test.addQuestion(question4); + test.addQuestion(question5); + + test.run(); + } +} \ No newline at end of file