Исследование принципов объектно-ориентированного программирования на базе языка программирования С . Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.
При низкой оригинальности работы "Разработка программного комплекса на языке программирования С с использованием принципов объектно-ориентированного программирования", Вы можете повысить уникальность этой работы до 80-100%
Целью курсовой работы является: изучение принципов объектно-ориентированного программирования на базе языка программирования С ; приобретение навыков высокоуровневого проектирования многомодульных программ. Согласно индивидуальному заданию необходимо разработать программный комплекс для ведения учета памятников города. Множество памятников представляют собой массив, элементами которого являются любые из следующих четырех типов памятников: здание, квартал, площадь, скульптура. По заданию программный комплекс должен быть способен выполнять следующие действия: · Загрузка массива памятников из текстового файла в формате csv (файл в котором данные разделенные символом «;», причем одна строка задает один элемент массива; · Классы для элементов множества данных должны содержать конструкторы следующих видов: а) конструктор без параметров, очищающий переменные объекта класса; б) конструктор, инициализирующий все переменные класса, значениями, заданными в качестве параметра; в) конструктор приведения из строки символов (поля класса, разделенные символом ";");Программный комплекс состоит из следующих модулей: - CLASSFILE.cpp; На рисунке 1 показана схема подключения модулей. А точнее базовый класс памятника и четыре его наследника (здание, квартал, площадь и скульптура), а также класс оболочка, который содержит динамический массив и все функции для работы с массивом памятника (добавление, удаление, сортировка и т.д.) Модуль FUNCTIONFILE.cpp содержит различные вспомогательные функции.В модуле описаны следующие классы: - Pamiatnik; Иерархия классов представлена на рисунке 2.Ко всему прочему данный класс считается абстрактным, т.е. нельзя непосредственно создавать экземпляры этого класса. Данный класс предназначен только как шаблон для создания других классов памятника. Класс Pamiatnik содержит следующие поля: - Set_God - Год основания памятника; Значение именно из этого поля будет использоваться каждым классом, когда он будет создавать строковое представление всех своих ключевых полей для сохранения в файл. При такой концепции сам массив должен знать элемент, который является первым, чтобы именно с него начать работу с массивом, а также должен знать последний элемент, для того, чтобы знать, куда добавлять следующий элемент.Класс описывает тип здание. Фактически здание наследует все поля от Pamiatnik и добавляет два поля visota и adress. Класс Zdanie знает, как себя отобразить, поэтому реализует метод Draw и TOSTRING. Так как конструкторы не наследуются, то в соответствии с заданием нужно реализовать три конструктора.Класс Kvartal расширяет базовый класс еще одним ключевым полем - Ploschad.Данный класс ничем не отличается от класса Ploschad.Класс Skulptura расширяет базовый класс еще одним ключевым полем - Avtor.Благодаря этому полю массив знает, с какого элемента необходимо, например, отображать массив или искать какой-то памятник. Для добавления в массив необходимо, чтобы памятник уже был создан, т.е. для него была выделена память. Как уже ранее упоминалось, сам массив не имеет своей памяти для расположения в ней памятников, т.к. класс массива является оболочкой, которая содержит методы для управления массивом. Метод Del_ Pamiatnik(char* name) предназначен для удаления памятника, точнее данный метод только ищет в массиве адрес памятника, номер которого передан в качестве параметра. Так как все памятники расположены последовательно, то при удалении второго памятника, необходимо изменить указатели, чтобы первый памятник указывал сразу на третий, а третий на первый.Функция MAINMENU предназначена для вывода на экран главного меню, а также для ввода пункта главного меню. Главное меню состоит из следующих пунктов: 1 - Загрузить памятники из файла csv Если пользователь введет неверный пункт, то программа сообщит об ошибке и попросит ввести пункт меню заново. Функция MENUTYPEPAMIATNIK предназначена для вывода меню и выбора типа памятника. Например, когда пользователь создает памятник, то у него спрашивается, какого типа он желает создать памятник.Данный модуль содержит точку входа в программу (метод main). Основная задача метода main - это управлять всей программой. Принцип управления программой заключается в теории конечных автоматов. Главная идея данного принципа заключается в том, что программа может находиться только в одном состоянии. Также необходима одна переменная (menu) для того, чтобы пользователь мог выбрать пункт меню и его выбор отразился на данной переменной.Результат отображен на рисунке 3. В программе предусмотрено при запуске программы загрузка файла с данными по умолчанию. Результат представлен на рисунке 4. Для продолжения нажимаем клавишу Ввод, затем выбираем пункт меню 6. Результат показан на рисунке 5.Довольно часто приходится в массиве данных производить поиск. Разработанный программный комплекс позволяет производить поиск в массиве. При этом отобразится строка, в которой нужно будет ввести искомый текст (рисунок 7).Для отображения статистики по памятникам, необходимо чтобы данные уже были загр
План
СОДЕРЖАНИЕ
Введение
1. ОПИСАНИЕ ПРОГРАММНОГО КОМПЛЕКСА
1.1 Структура программного комплекса
1.2 Модуль CLASSFILE.cpp
1.2.1 Класс Pamiatnik
1.2.2 Класс Zdanie
1.2.3 Класс Kvartal
1.2.4 Класс Square
1.2.5 Класс Skulptura
1.2.6 Класс Massiv_Pamiatnikov
1.3 Модуль FUNCTIONFILE.cpp
1.4 Модуль main.cpp
2. Описание работы программы по контрольному примеру
2.1 Описание процесса сортировки памятников
2.2 Описание процесса поиска в массиве памятников
2.3 Описание формирования статистики по памятникам
Заключение
Список использованных источников
Приложения
Введение
Целью курсовой работы является: изучение принципов объектно-ориентированного программирования на базе языка программирования С ; приобретение навыков высокоуровневого проектирования многомодульных программ.
Заданием для курсовой работы является разработка программного комплекса на языке программирования С с использованием принципов объектно-ориентированного программирования.
Согласно индивидуальному заданию необходимо разработать программный комплекс для ведения учета памятников города. Множество памятников представляют собой массив, элементами которого являются любые из следующих четырех типов памятников: здание, квартал, площадь, скульптура.
Для всех памятников имеются как общие данные, так возможно и специфические.
Общие данные содержат следующие поля: 1) год создания (integer);
2) название (string);
3) годовая стоимость расходов на содержание (longint);
По заданию программный комплекс должен быть способен выполнять следующие действия: · Загрузка массива памятников из текстового файла в формате csv (файл в котором данные разделенные символом «;», причем одна строка задает один элемент массива;
· Сохранения массива памятников в файл формата csv;
· Просмотр всех элементов массива (один элемент на одной строке);
· Добавление новых элементов в массив как вручную, так и из заданного файла;
· Удаление элементов из массива;
· Получение трех отчетов;
При выполнении работы необходимо придерживаться следующих ограничений: · Обязательно использовать объектно-ориентированный подход при проектировании приложений;
· Все поля классов, описывающих элемент множества данных должны быть private;
· Год создания, название памятника и стоимость расходов на содержание включить в базовый класс. Разработать наследуемые классы для здания, квартала, площади и скульптуры.
· Классы для элементов множества данных должны содержать конструкторы следующих видов: а) конструктор без параметров, очищающий переменные объекта класса; б) конструктор, инициализирующий все переменные класса, значениями, заданными в качестве параметра; в) конструктор приведения из строки символов (поля класса, разделенные символом ";");
· В наследуемых классах переопределить хотя бы один метод базового класса;
· Интерфейс разработанных классов продемонстрировать в форме консольного приложения;
· Выводить отчеты в виде таблицы (одна запись - одна строка таблицы).
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы