Объектно-ориентированное программирование на языке С++

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

nbsp;

Для описания предметной области Автомобильный транспорт была создана иерархия классов, базовым классом которой является абстрактный базовый класс. Иерархия имеет следующий вид (рис. 1.):

 

Рис. 1 Иерархия классов

логический программа интерфейс листинг

Класс Автомобильный транспорт является абстрактным базовым классом. Он содержит поля, которые отражают общие характеристики всего авто транспорта. Кроме этого, класс Автомобильный транспорт имеет набор функций: виртуальные функции для сохранения и вывода данных, инициализирующий конструктор

 

class AVTO

{public: AVTO (String _marka, String _model, int _year, int _power);void PRINT (TStringList *lines) {…};void GET (TStringList *lines) {…};:marka; String model; int year; int power;

};

 

Остальные классы иерархии будут производными от класса Автомобильный транспорт. При этом используется открытое наследование.

Класс Грузовики:

 

class TRACK: public AVTO

{public: TRACK (String _marka, String _model, int _year, int _power, int _gruz, String _kuzovg);void PRINT (TStringList *lines) {…};void GET (TStringList *lines) {…};:gruz; String kuzovg;

};

 

Класс Пассажирские:

 

class PASS: public AVTO

{public: PASS (String _marka, String _model, int _year, int _power, int _mesta);void PRINT (TStringList *lines) {…}void GET (TStringList *lines) {…};:mesta;

};

 

Класс Автомобили

 

class CAR: public PASS

{public: CAR (String _marka, String _model, int _year, int _power, int _mesta, String _kuzovl, String _klass);void PRINT (TStringList *lines) {…}void GET (TStringList *lines) {.}:kuzovl; String klass;

};

 

Класс Автобусы

 

class BUS: public PASS

{public: BUS (String _marka, String _model, int _year, int _power, int _mesta, String _type, int _dlina);void PRINT (TStringList *lines) {…}void GET (TStringList *lines) {…}:type; int dlina;

};

 

Для удобства работы с этими классами и обращения их к общей информации, такой как структура хранения указателей, счетчики записей и т.д., создан отдельный класс. В данном классе описаны структуры хранения информации и методы работы с этими структурами.

BAZA

{public:

/// массивы указателей конечных классов

TRACK *TRACKArray[100];

BUS *BUSArray[100];

CAR *CARArray[100];

/// массивы указателей для поиска и удаления

TRACK *TFArray[100];*BFArray[100];*CFArray[100];

int Tcount; int Bcount; int Ccount; int CFcount; int BFcount; int TFcount;

/// чтение данных в массив из файла

virtual void ReadFileBase () {…}

/// Создание объекта из файла

virtual void Create (TStringList *INFO, int clas) {…}void FIND (String value, int pole) {…}

};

 

Каждый класс имеет определенный набор компонентных функций. Они реализуют:

Создание нового объекта (инициализирующий конструктор);

Функции вывода на экран;

Функции получения данных.

 

4. Описание модульной структуры

 

Работа с программой заключена в один модуль в котором содержится:

Обработчики работы с компонентами формы;

Список классов с параметрами и методам.

Иерархия классов представлена на рис. 1.

 

5. Используемые технические средства

 

Для работы программы требуется ПК на базе микропроцессора не ниже 1GHz, 256 Mb RAM с установленной на него операционной системой Microsoft Windows XP и 20 Мb свободного места на жестком диске. Мышь, клавиатура.

 

6. Входные данные

 

Ввод данных осуществляется пользователем с клавиатуры или загрузкой текстового файла.

 

Таблица 1. Автомобили

Наименование поляТип данныхМаркаСтрокаМодельСтрокаГод выпускаЦелое числоМощностьЦелое числоВмещаемостьцелое числоТип кузоваСтрокаКлассСтрока

Таблица 2. Автобусы

Наименование поляТип данныхМаркаСтрокаМодельСтрокаГод выпускаЦелое числоМощностьЦелое числоМаркаСтрокаВмещаемостьцелое числоНазначениеСтрокаГабаритная длиннаЦелое число

Таблица 3. Грузовики

Наименование поляТип данныхМаркаСтрокаМодельСтрокаГод выпускаЦелое числоМощностьЦелое числоМаркаСтрокаГрузоподъемностьЦелое числоТип грузовикаСтрокаЗагрузка данных происходит автоматически при запуске приложения, каждый файл соответствует определенному классу.

Данные в файле расположенный построчно, изменение порядка строк может привести к неправильной работе программы.

 

7. Выходные данные

 

Выходными данными в программе являются текстовые файлы, которые содержат информацию о различном автомобильном транспорте, введенную в процессе использования программы и сохраненную в них.

Кроме этого, выходные данные в программе выводятся на форму приложения в компонент Memo.

логический программа интерфейс листинг

8. Организация хранения данных в программе

 

Работа со всеми объектами в программе происходит при помощи указателей. В программе используются три массива указателей для каждого класса Так же созданы несколько вспомогательных массива для временного хранения указателей.

При закрытии приложения все объекты, указатели на которые хранятся в этом массиве, уничтожаются.

 

. Проектирование интерфейса программы

 

Интерфейс программы имеет однооконную структуру. Основное окно программы представлено на рисунке 2.

 

Рис. 2 Основное окно

 

Слева в программе расположены панели ввода информации об объектах. В правой части экрана происходит отражение информации.

 

. Тестирование и отладка

 

В ходе разработки приложения необходимо тестирование и отладка на каждом этапе. Соответственно, после реализации иерархии классов, реализации методов этих классов, реализации дополнительного функционала проводились тесты, чтобы выявить недочеты и устранить их (результату промежуточного тестирования не приведены). Результат комплексного тестирования представл?/p>