Задача «Генерация отчётов»
Необходимо реализовать семейство генераторов отчетов. Каждый генератор на вход получает файл из строк key : value (тип key и value — строка) и должен сгенерировать и вывести отчет, основанный на этих записях.
Входные данные
Пример входного файла:
reserved_tickets : 500
sold_tickets : 300
...
returned_tickets : 10
best_cashier : Kate
Выходные данные
Форматированный текст выводится на консоль, в простой текстовый файл и в HTML-файл со сложным форматированием.
Реализация
Вывод должен осуществляться постранично, причем для каждого генератора должна быть возможность переопределить:
- Вывод одной записи
- Вывод разделителя между записями
- Количество записей на странице
- Вывода верхнего колонтитула
- Вывода нижнего колонтитула
Необходимо реализовать три генератора:
Простой генератор
- Вывод одной записи — просто в консоль с каким-либо фиксированный разделителем
- Вывод разделителя между записями — ничего
- Количество записей на странице — (на усмотрение студента)
- Вывода верхнего колонтитула — ничего
- Вывода нижнего колонтитула — ничего
Генератор в файл
- Вывод одной записи — в файл.
key записывать в верхнем регистре, разделитель - на усмотрение студента, value — в нижнем регистре.
- Вывод разделителя между записями — (на усмотрение студента)
- Количество записей на странице — (на усмотрение студента)
- Вывода верхнего колонтитула — номер страницы
- Вывода нижнего колонтитула — номер страницы
Генератор в файл HTML
- Реализация всех способов вывода полностью на усмотрение студента, однако необходимо использовать базовые возможности HTML — использование цвета текста, bold, italic, возможно таблицы.
Иерархия классов объектов:
Generator
|- ConsoleGen
|- TextGen
+- HtmlGen
Примечание
Задача должна быть реализована на базе фреймворка OOC.