Opened 4 years ago
Closed 4 years ago
#659 closed ожидается проверка (задача сдана)
WW #11
Reported by: | gabitov.daniil | Owned by: | Артур Гулецкий (huletski) |
---|---|---|---|
Component: | WW cpp_io | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (7)
comment:1 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 follow-up: 3 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
В задании сказано, что все входные данные корректные - не ставил failedbit для bool. Для считывания имени поставил т.к. это требует задание.
comment:3 Changed 4 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
В задании сказано, что все входные данные корректные - не ставил failedbit для bool.
Где именно в задании сказано, что _все_ входные данные (в том числе в бинарных файлах) корректные?
Для считывания имени поставил т.к. это требует задание.
Задание требует: "все операторы ввода-вывода и вспомогательные манипуляторы должны корректно обрабатывать ошибки и сигнализировать о них. Например, если read_c_str ...". Это не тоже самое что "реализуйте обработку ошибок [только] для считывания c-string".
В общем, нужны цитаты из задания, которые подтверждают ваши слова. Решение проверю после вашего ответа, чтобы не отнимать баллы из-за того, что задание было не так понято кем-то из нас.
comment:4 Changed 4 years ago by
"Все команды корректны, числа в текстовом формате записываются в обычном десятичном виде." Возможно, я это неправильно понял
comment:6 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|
"Все команды корректны, числа в текстовом формате записываются в обычном десятичном виде." Возможно, я это неправильно понял
В этом пункте речь о _командах_ CLI (add, list, ect.): валидация данных, переданных через терминал, необязательна; про гарантии для бинарных файлов не сказано ничего.
comment:7 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Замечания:
- с форматированием стало еще хуже ("Sold Items", а не "Sold items"; "Base salary", а не "Base Salary") -> -0.5;
- main.cpp:5, 6. "string.h" -> <string> или <cstring>, "assert.h" -> <cassert>
- main.cpp:20. (opt) можно было открыть файл неявно, передав аргументы в конструкторе;
- bin_manip.cpp:1, 3. <cstdint>, <cstring>
- bin_manip.cpp:14. манипуляторы чтения/записи int32_t в little-endian реализованы неполностью, т.к. не гарантируется порядок записи байтов (на big-endian машине значение будет записано неверно) -> -1;
- bin_manip.cpp:89. чтение ломается, если в базе записано имя длиной 100 -> -0.5;
- bin_manip.cpp:98. лучше считать текущее значение маски флагов, установить нужный бит, записать обновленное, а не переписать текущее состояние, т.к. могут сброситься другие биты, установленные ранее;
- employees.cpp:44, 87: списки инициализации;
- employees.cpp:54.
using std::swap
, namespace включать не обязательно; - employees.cpp:68, 69. лучше заменить связку "вызов конструктора по умолчанию, вызов оператора присваивания" на "вызов конструктора копирования" (
new Developer(*this)
).
За мелкие замечания по совокупности -1.5.
Баллы: 6.5.
Решение не собирается:
Если починить компиляцию, программа выводит данные в неверном формате ("Sold Items", а не "Sold items") .
Некоторые замечания/вопросы по стилю/корретности:
protected
, когда есть геттеры (getName, getSalary)?Employee *
, а неconst Employee *
;std::strlen
);Баллы: 3, нужно доделывать.