Задание 3
Реализовать программу, которая считывает из исходного текстового файла записи определенной структуры в динамический массив. Записи в текстовом файле хранятся построчно – каждая запись в одной строке. Программа обрабатывает их и записывает в результирующий бинарный файл. Дополнительно необходимо разработать программу просмотра бинарного файла. Имя исходного файла передается в параметрах командной строки, а имя результирующего файла образуется из имени исходного файла путем замены расширения на .bin. Если в исходных данных содержится ошибка, то необходимо выводить сообщение об ошибке с указанием номера строки в файле и продолжать обработку. Выполнение данного задания оценивается в 20 баллов рейтинга.
ДОПОЛНИТЕЛЬНО (по желанию разработчика): Реализовать ввод с клавиатуры в том же формате, если имя файла не указано или указано неверно (такого файла нет). Имя результирующего файла, в этом случае, - result.bin. Выполнение дополнительно оценивается 20 баллами рейтинга.
№ |
Структура |
Обработка |
1 |
ФИРМА |
Упорядочить записи по названию (направление выбирает пользователь) |
2 |
НАКЛАДНАЯ |
Отфильтровать накладные на конкретную дату (вводится пользователем) |
3 |
СООБЩЕНИЕ |
Отфильтровать по номеру устройства (вводится пользователем). |
4 |
БИЛЕТ |
Упорядочить записи по названию сеанса (направление выбирает пользователь) |
5 |
САМОЛЕТ |
Отфильтровать записи по году выпуска (вводится пользователем) |
6 |
ПРОЦЕССОР |
Отфильтровать записи по производителю (вводится пользователем) |
7 |
ФАЙЛ |
Упорядочить записи по имени файла (направление выбирает пользователь) |
8 |
МАШИНА |
Отфильтровать записи по году выпуска (вводится пользователем) |
9 |
КНИГА |
Отфильтровать записи по году издания (вводится пользователем) |
10 |
СТУДЕНТ |
Упорядочить записи по ФИО студента (направление выбирает пользователь) |
11 |
ФИРМА |
Отфильтровать записи по дате основания (вводится пользователем) |
12 |
НАКЛАДНАЯ |
Отфильтровать накладные меньше определенной суммы (вводится пользователем) |
13 |
СООБЩЕНИЕ |
Упорядочить по номеру устройства (направление выбирает пользователь) |
14 |
БИЛЕТ |
Отфильтровать записи по номеру ряда (вводится пользователем) |
15 |
САМОЛЕТ |
Отфильтровать записи по времени налета (вводится пользователем) |
16 |
ПРОЦЕССОР |
Упорядочить записи по порядковому номеру (направление выбирает пользователь) |
17 |
ФАЙЛ |
Отфильтровать записи по дате создания (вводится пользователем) |
18 |
МАШИНА |
Отфильтровать записи по марке (вводится пользователем) |
19 |
КНИГА |
Упорядочить записи по названию (направление выбирает пользователь) |
20 |
СТУДЕНТ |
Отфильтровать записи по дате рождения (вводится пользователем) |
21 |
ФИРМА |
Отфильтровать записи по дате основания (вводится пользователем) |
22 |
НАКЛАДНАЯ |
Упорядочить записи по ФИО оператора (направление выбирает пользователь) |
23 |
СООБЩЕНИЕ |
Отфильтровать по длине сообщения меньшей определенного значения (вводится пользователем). |
24 |
БИЛЕТ |
Отфильтровать записи по номеру места (вводится пользователем) |
25 |
САМОЛЕТ |
Упорядочить записи по серийному номеру (направление выбирает пользователь) |
26 |
ПРОЦЕССОР |
Отфильтровать записи по тактовой частоте (вводится пользователем) |
27 |
ФАЙЛ |
Отфильтровать записи по размеру (вводится пользователем) |
28 |
МАШИНА |
Упорядочить записи по серийному номеру (направление выбирает пользователь) |
29 |
КНИГА |
Отфильтровать записи по ФИО автора (вводится пользователем) |
30 |
СТУДЕНТ |
Отфильтровать записи по дате рождения (вводится пользователем) |
СТУДЕНТ:
фамилия, имя, отчество (строки по 15 символов);
номер зачетной книжки (целое шестизначное число);
дата рождения (в формате дд.мм.гггг).
Формат ввода: Фамилия Имя Отчество [№ зачетной книжки], Дата рождения
КНИГА:
фамилия и инициалы автора (строка 15 символов);
название книги (строка 20 символов);
год издания (целое четырехзначное число);
количество страниц (целое десятизначное число).
Формат ввода: код ISBN: Фамилия И. О. «Название», год
МАШИНА:
марка (строка 15 символов);
модель (строка 5 символов);
серийный номер (целое семизначное число);
год выпуска (целое четырехзначное число).
Формат ввода: Марка Модель [Серийный номер], Год выпуска
ФАЙЛ:
имя файла (строка 30 символов, уникальное поле);
размер файла (целое число);
дата создания (в формате дд.мм.гггг);
время создания (в формате чч:мм).
Формат ввода: Имя файла, размер файла, дата и время создания
ПРОЦЕССОР:
производитель (строка 10 символов);
модель (строка 15 символов);
тактовая частота (целое число);
порядковый номер (целое десятизначное число в 16-ричной системе).
Формат ввода: Производитель Модель Тактовая частотаMHz Порядковый номер
САМОЛЕТ:
серийный номер (целое восьмизначное число)
марка - модель (строка 20 символов);
год выпуска (целое четырехзначное число);
время налета (целое число, в часах).
Формат ввода: Серийный номер Марка – модель, Год выпуска, Время начета
БИЛЕТ:
название сеанса (строка 30 символов);
дата и время сеанса (в формате дд.мм.гггг чч:мм);
номер ряда (целое число);
номер места (целое число).
Формат ввода: Номер «Название сеанса» Дата и время, Номер ряда, Номер места
СООБЩЕНИЕ:
номер устройства (целое трехзначное число)
ID сообщения (целое восьмизначно число в 16-ричной системе);
текст (строка 30 символов);
дата и время отправления (в формате дд.мм.гггг чч:мм).
Формат ввода: Номер устройства: ID сообщения «Текст» Дата и время отправления
НАКЛАДНАЯ:
номер накладной (целое число, уникальное поле);
дата накладной (в формате дд.мм.гггг);
общая сумма по накладной (вещественное число);
ФИО оператора (строка 20 символов).
Формат ввода: Номер: «Дата», Сумма, ФИО оператора
ФИРМА:
название (строка 20 символов);
УНН (целое десятизначное число, уникальное поле);
ФИО владельца (строка 20 символов);
дата основания (в формате дд.мм.гггг).
Формат ввода: Название [УНН], ФИО владельца, Дата основания