Максимальная оценка за реализацию данного задания составляет 10 (десять) баллов.
Тема курсового проекта – «Управление массивом указателей средствами ООП».
Проект содержит описание разработанного студентом программного комплекса по обработке заданного множества данных. Множество данных представляет собой массив указателей. Для всех вариантов обеспечить реализацию следующих запросов к массиву:
1) загрузка массива из текстовых файлов в форматах csv (данные, разделенные символом ";", причем одна строка задает один элемент массива) или ini (последовательность строк вида key=value); примеры файлов приведены ниже;
2) просмотр всех элементов массива (один элемент на одной строке);
3) добавление новых элементов в конец массива из заданного файла;
4) удаление элементов массива;
5) сохранение массива в заданном файле в формате csv или ini;
6) получение трех отчетов (например, сортировка массива, поиск элемента в массиве, расчет групповых итогов по количеству, сумме, среднему, минимуму, максимуму, условию и т.п.).
Пример файла в формате csv
Belarusbank;USD;3050;3055
Belinvestbank;USD;3045;3053
Belarusbank;EUR;4050;4070
Belarusbank;RUB;100.1;102.2
Belinvestbank;RUB;99.8;101.5
Пример файла в формате ini
bank1=Belarusbank
currency1=USD
buy1=3050
sell1=3055
bank2=Belinvestbank
buy2=3045
sell2=3053
currency2=USD
bank4=Belarusbank
currency4=RUB
sell4=102.2
buy4=100.1
Условия и ограничения
1 Использование объектно–ориентированного подхода при проектировании приложения обязательно.
2 Все поля классов, описывающих элементы множества данных, – private (за исключением констант).
3 Поля 1–3 варианта задания включить в базовый класс. Разработать наследуемые классы согласно поля 4 варианта задания (см. пример ниже).
4 Классы для элементов множества данных должны содержать конструкторы следующих видов: а) конструктор без параметров, очищающий переменные объекта класса; б) конструктор, инициализирующий все переменные класса, значениями, заданными в качестве параметра; в) конструктор приведения из строки символов (поля класса, разделенные символом ";");
5 В наследуемых классах переопределить хотя бы один метод базового класса.
6 Интерфейс разработанных классов продемонстрировать в форме консольного приложения.
7 Выводить отчеты в виде таблицы (одна запись – одна строка таблицы).
8 Варианты заданий приведены ниже.
Пример к пункту 3
Множество данных – покупки.
1) наименование (string);
2) цена (long);
3) количество приобретенных единиц (integer);
4) тип скидки или надбавки: по цене, по проценту от стоимости, с надбавкой за транспортные расходы.
Базовый класс – Покупка.
Поля класса: наименование, цена, количество приобретенных единиц.
Методы: геттеры/сеттеры, вывод на консоль, расчет стоимости покупки.
Наследуемые классы: покупка со скидкой по цене, покупка со скидкой по проценту от стоимости, покупка с надбавкой за транспортные расходы.
В наследуемые классы добавить необходимые поля и переопределить метод расчета стоимости покупки.