Opened 4 years ago

Closed 4 years ago

#945 closed ожидается проверка (задача сдана)

HW #3

Reported by: podoprigora.ivan Owned by: Vasily Alferov
Component: HW #3 (Huffman) Version: 2.0
Keywords: Cc:

Description


Change History (2)

comment:1 Changed 4 years ago by podoprigora.ivan

Owner: changed from Vasily Alferov to Vasily Alferov

comment:2 Changed 4 years ago by Vasily Alferov

Resolution: задача сдана
Status: assignedclosed

=(

Всё это выглядит как код из контеста, криво прилепленный к бинарному выводу, чтобы пара ручных тестов под валгриндом работала. Я расстроен.

Поскольку требования к промежуточной попытке не выполнены, это окончательный результат, следующая попытка не даётся.

Во-первых, не компилируется.

$ make
mkdir -p obj
g++ -c -o obj/main.o -std=c++17 -Wall -Werror -Wextra -g -Iinclude  src/main.cpp
src/main.cpp: In function ‘int main(int, char**)’:
src/main.cpp:31:25: error: catching polymorphic type ‘class CLIException’ by value [-Werror=catch-value=]
   31 |     catch (CLIException ex){
      |                         ^~
cc1plus: all warnings being treated as errors
make: *** [Makefile:12: obj/main.o] Error 1

Эксепшны надо ловить по ссылке, а не по значению.
Потому что иначе наследники не поймаются.

Теперь по делу.

Корректность: 2/9
Тесты: 0/8 (отсутствуют)
Архитектура: 0/5
Стиль: 4/8

  • Корректность
    • Падает на пустом файле
    • Стабильно неправильно пишет размер сжатого файла
    • На тесте "все байты подряд от 00 то ff" сжатие-разжатие выдаёт пустой файл.
    • За условно корректные текстовые файлы готов поставить 2/9.
  • Архитектура + стиль. Это кошмар. Мы вроде пишем на языке C++, а не на языке C. У нас есть классные фичи в языке. У нас в языке есть, например, деструкторы (материал 1 семестра!). У нас есть ООП, инкапсуляция, осуществляющаяся, в частности, разделением методов и данных на публичные и приватные. Наши функции не умрут, если мы из них будем возвращать сложные значения, а не передавать место, куда их записать по ссылке. Короче, даже если бы третья попытка была, это всё надо было бы переписать с нуля.
Note: See TracTickets for help on using tickets.