From 1fe77ef1b3a2600cc0e452fb28addf4b019d3179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BE=D0=BB=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=93=D0=B5?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D0=BD?= Date: Tue, 25 Aug 2026 23:56:20 +0400 Subject: [PATCH] docs: add data source update --- docs/tasks/DataSourceUpdate.md | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 docs/tasks/DataSourceUpdate.md diff --git a/docs/tasks/DataSourceUpdate.md b/docs/tasks/DataSourceUpdate.md new file mode 100644 index 0000000..c175d9c --- /dev/null +++ b/docs/tasks/DataSourceUpdate.md @@ -0,0 +1,81 @@ +# Дополнение к техническому заданию: изменение типа `recordBookNumber` + +Данное дополнение имеет **приоритет над основным ТЗ `DataSource.md`**. + +## Изменение модели `Student` + +Поле: + +```java +private final String recordBookNumber; +``` + +заменено на: + +```java +private final int recordBookNumber; +``` + +Метод: + +```java +getRecordBookNumber() +``` + +возвращает `int`. + +## Требования к `DataSource` + +Во всех реализациях источников данных необходимо учитывать новый тип `recordBookNumber`. + +### `ManualDataSource` + +`recordBookNumber` должен передаваться как `int`: + +```java +setStudent( + int index, + String groupNumber, + double averageGrade, + int recordBookNumber +); +``` + +Строковое значение номера зачётной книжки больше не используется. + +### `RandomDataSource` + +Для `recordBookNumber` необходимо задавать и генерировать **числовой диапазон**: + +```text +минимальное значение — int +максимальное значение — int +``` + +Генерируемое значение должно быть целым числом и соответствовать ограничениям `Student`. + +### `FileDataSource` + +В файле `recordBookNumber` должен записываться как целое число. + +Формат записи: + +```text +groupNumber;averageGrade;recordBookNumber +``` + +Пример: + +```text +A12;4.75;12345 +B32;3.80;12346 +C17;4.20;12347 +``` + +При чтении значение необходимо преобразовать в `int` до создания `Student`. + +## Приоритет + +При противоречии между данным дополнением и основным `DataSource.md` использовать требования этого дополнения. + +Все остальные требования основного технического задания остаются без изменений.