Задание для КР по ООП в Golang. Школа Программистов, 2020
В данном задании мы будем писать простую консольную программу, для прохожения тестов(квизов).
Программа должна выводить пользователю вопрос, считывать ответ на вопрос с клавиатуры и проверять его на правильность.
В конце программа должна вывести, на сколько вопросов пользователь ответил правильно.
./quiz
2 + 2
4
1 + 1
2
You got 2 / 2
Задание 1.
- Реализуйте базовый функционал программы с забитым в программу списком вопросов.
- Используйте приложенный файл как шаблон
Задание 2.
- Научимся считывать вопросы из файла .csv
- Допишите функцию readCsv(), чтобы она возвращала список вопросов из .csv файла.
- Вместо списка вопросов теперь используйте вопросы из файла problems.csv
Задание 3.
- Допустим, теперь мы хотим уметь работать с разными типами файлов.
- Добавьте структуру CsvReader, которая будет реализовывать интерфейс QuestionReader (на замену функции readCsv)
- Поменяйте код, чтобы использовать эту структуру и интерфейс
Задание 4.
- Добавьте новую реализацию интерфейса QuestionReader — TxtReader.
- Реализация должна парсить вопросы из файла .txt (пример рядом). Сначала идет вопрос, потом ответ.
- Проверьте, что реализация работает на файле problems.txt
Задание 5.
- Добавьте флаг, с помощью которого программе можно будет задать файл с вопросами.
- Если передан .csv файл, то считайте вопросы с помощью CsvReader, если .txt, то с помощью TxtReader. Подумайте как сделать это красиво с помощью интерфейса QuestionReader и переменной.
- Проверьте работу программы
./quiz -f problems.csv ./quiz -f problems.txt