Opened 3 years ago

Closed 3 years ago

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

WW cpp_io Kiselev lab_10

Reported by: kiselev.igor Owned by: Антон Филатов
Component: WW cpp_io Version: 3.0
Keywords: Cc:

Description


Change History (5)

comment:1 Changed 3 years ago by Антон Филатов

Type: ожидается проверкаожидаются исправления

Какая-то беда с \0 в конце имён. Я до конца не разобрался, но они то есть, то нет
Из-за этого тесты падают все

Стиль:

  • add_out и семейству у employee, наверное, следует дать другое тело (или убрать вовсе)
  • а у потомках в этих функциях копипаста. Надо выносить в общую функцию (можно к родителю)
  • std::int32_t type = 2 просится в константу в классе
  • sizeof(char) * 4 - тоже в константу (кстати, чем вам sizeof(int) не угодил?)
  • Вы меня, конечно, простите, но тут какие-то не очень приятные слова просятся:
if (bonus)
        _has_bonus = true;
    else
        _has_bonus = false;
  • есть тесты, где имя длинее 100 символов. Кажется, что в этом тесте ваша программа тоже падает
  • вот это место надо изящнее делать:
    if (type == 1) {
                Developer* dev = new Developer("", -1, 0);
    

Я предполагаю такой сценарий:

Employee* e = nullprt;
file >> type
e = create_by_type(type) // эта функция возвращает пустого потомка, того или другого
file >> e
employees.push_back(e)

Пока 3/10

comment:2 Changed 3 years ago by kiselev.igor

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:3 Changed 3 years ago by Антон Филатов

Type: ожидается проверкаожидаются исправления

Тесты пройдены.
Стиль:
осталось замечание

  • а у потомках в этих функциях копипаста. Надо выносить в общую функцию (можно к родителю) (тут имелось ввиду, что add_out у Developer и SalesManager? явно содержат общую часть, которую хорошо бы вынести в отдельную функцию) - это же касается ввода и вывода в файл
  • не хотите в main 23-34 строку заменить вызовом функции EmployeesArray::create_by_type?

8,5/10

comment:4 Changed 3 years ago by kiselev.igor

Type: ожидаются исправленияожидается проверка
Version: 2.03.0

comment:5 Changed 3 years ago by Антон Филатов

Resolution: задача сдана
Status: assignedclosed
  • ну вот зачем вы отдельную функцию print в Emplyee завели? Есть же прекрасная чисто виртуальная функция add_out. Тело функции print можно было бы положить в неё. И тогда будущие наследники класса Employee не будут ломать голову, что это за print такой
  • я не очень понял, зачем вам константы developer и sales_manager и в Employee_array, и в наследниках employee. Кажется, всё можно было решить enum-ом или константой вообще в employee

9/10

Note: See TracTickets for help on using tickets.