Разумов Антон
Подсчёт фраз (Задача 1). Ok.
Код - в процессе.
-
[Ok] В
set(SOURCE_FILES main.cpp phrases.cpp phrases.h head.h)
не нужно указывать заголовочные файлы. -
[Ok] Фразы не упорядочены по убыванию частоты.
-
[Ok] Вместо
if ((argv[1][0] == '-') && (argv[1][1] == 'n')) {
следует использовать сравнение строк (std::string) -
[Ok] Вместо
ar *buff = new char[length];
следует использовать std::string. -
[Ok] Лишние чтение файлового потока в std::string (в функции main) и преобразование std::string в строковый поток (в функции text2words).
-
[Ok] Функции
countphrases
,printres
должны принимать коллекции по константной ссылке. -
[Ok] Функция
printres
должна принимать коллекцию по константной ссылке. -
[Ok]
using namespace std;
в заголовочном файле. -
[Ok] Некорректное чтение стандартного потока ввода (считываются аргументы командной строки, а не
std::cin
). -
[Ok] Неправильный разбор аргументов:
$ ./lab1 -m 3 Makefile
There's no such file -m
Wrong input
Тесты - в процессе.
-
[Ok] Дублирование кода в репозитории (одни и те же файлы в корне проекта и в unit/)
-
[Ok] Нужны отдельные функции
main()
для тестов и для основной программы. -
[Ok] Следует удалить из репозитория лишние папки (
unit/
, ...)
Календарь (Задача 2). Ok.
Код - Ok.
-
[Ok] Методы
getMonth
,getDay
... должны иметь модификаторconst
-
[Ok] Не определен оператор присваивания (
operator=
) -
[Ok] Конструкторы должны использовать
init_date
(кроме дефолтного и копирования) -
[X] Использовать исключения вместо
std::cerr << "Invalid year: year must be >=1 and <=9999" << std::endl;
- [Ok] Вместо
int
следует выбрасывать класс-наследникstd::exception
, исключение не нужно перехватывать в том же методе.
try{
if (y < 1 || y > 9999)
throw y;
}
catch (int e) {
std::cout << "Caught exception: the year is <1 or >9999" << std::endl;
return *this;
}
- [Пожелание] Выбпасывать исключения с текстом сообщения об ошибке, например:
throw std::runtime_error("Only years from 1 to 9999 are supported");
-
[Ok]
operator++(int)
должен создавать копию текцщего значения (которую он потм вернет), а затем увеличить текущее значение на 1. -
[Ok]
operator+=
должен использоватьinit_date
Тесты - в процессе.
- [Ok] Добавить тест на
operator+=
Морской бой (Задача 3). Ok.
Код - Ok.
Жизнь (Задача 4). Ok.
Код - Ok.
- [Пожелание] Нет команды выхода из программы :)
Демонстрация - Ok
(проверено 8 янв)