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

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

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

µн в таблице3.

 

Таблица 3. Результат тестирования программы

№ТестРезультат1Реализация иерархии классов: создание объектов (модули реализации классов)Успешно2Реализация иерархии классов: работа с полями (модули реализации классов)Отладка функций GET для доступа к полям объектов классов. Успешно3Вод из файла (модуль работы с объектами классов и модуль реализации классов)Откладка функции ReadFileBase для извлечения данных из файла. Успешно.4Сохранение в файл (модуль работы с объектами классов и модуль реализации классов)Успешно5Просмотр данных (модуль самого приложения и модуль реализации классов)Успешно6Добавление (модуль самого приложения и модуль реализации классов)Отладка процедуры добавления, добавление обработчиков ошибок. Успешно7Поиск (использование дополнительного класса)Успешно8Удаление (использование дополнительного класса)Успешно

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

 

Заключение

 

В ходе выполнения курсовой работы были закреплены теоретические знания в области объектно-ориентированного программирования на зыке С++. Была разработана иерархия классов предметной области Автомобильный транспорт, закреплены знания о создании и использовании динамических структур данных.

Также научился работать с объектами иерархии классов.

Применение объектно-ориентированного подхода к программированию и широкие возможности языка С++ в среде визуального программирования С++ Builder является мощным и гибким средством при создании программ имитирующих поведение объектов реального мира.

 

Список литературы

 

  1. Википедия - свободная энциклопедия (www.wikipedia.org)
  2. Айра Пол ООП на С++ - СПб.: Бином, Невский диалект, 2001 - 461 с.
  3. Р. Лафоре ООП в С++ - М.: Питер, 2004 - 923 с.
  4. Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы - М.: Издательский дом Вильямс, 2001 - 384 с.

 

Приложение 1

 

Текст программы

 

// -

#include

#pragma hdrstop

#include

#include first_u.h

// -

#pragma package (smart_init)

#pragma resource *.dfm*First;

///////////////////////////////////////////////// Базовый класс АВТО /////////////////////////////////////////////////////////////// AVTO

{public: AVTO (String _marka, String _model, int _year, int _power);void PRINT (TStringList *lines)

{>Add (Марка: + marka);>Add (Модель: + model);>Add (Год выпуска: + IntToStr(year));>Add (Мощность: + IntToStr(power));

};void GET (TStringList *lines)

{>Add(marka);>Add(model);>Add (IntToStr(year));>Add (IntToStr(power));

};:marka;model;year;power;

};:AVTO (String _marka, String _model, int _year, int _power): marka(_marka), model(_model), year(_year), power (_power) {};

////////////////////////////////////// Подкласс ГРУЗОВИКИ класса АВТО /////////////////////////////////////////////////////////////// TRACK: public AVTO

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

{:PRINT(lines);>Add (Грузоподъемность: + IntToStr(gruz));>Add (Тип грузовика: + kuzovg);

}void GET (TStringList *lines)

{:GET(lines);>Add (IntToStr(gruz));>Add(kuzovg);

};:gruz;kuzovg;

};:TRACK (String _marka, String _model, int _year, int _power, int _gruz, String_kuzovg): AVTO (_marka,_model,_year,_power), gruz(_gruz), kuzovg(_kuzovg) {};

///////////////////////////////////// Подкласс ПАССАЖИРСКИЕ класса АВТО /////////////////////////////////////////////////////////////// PASS: public AVTO

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

{:PRINT(lines);>Add (Вместимость: + IntToStr(mesta));

}void GET (TStringList *lines)

{:GET(lines);>Add (IntToStr(mesta));

};:mesta;

};:PASS (String _marka, String _model, int _year, int _power, int _mesta):AVTO (_marka, _model, _year, _power), mesta(_mesta)

{};

 

///////////////////////////////////// Подкласс АВТОМОБИЛИ класса ПАССАЖИРСКИЕ /////////////////////////////////////////////////////////////// CAR: public PASS

{public: CAR (String _marka, String _model, int _year, int _power, int _mesta, String _kuzovl, String _klass);void PRINT (TStringList *lines)

{:PRINT(lines);>Add (Кузов: + kuzovl);>Add (Класс авто: + klass);

}void GET (TStringList *lines)

{:GET(lines);>Add(kuzovl);>Add(klass);

}:kuzovl;klass;

};:CAR (String _marka, String _model, int _year, int _power, int _mesta, String _kuzovl, String _klass):PASS (_marka, _model, _year, _power,_mesta), kuzovl(_kuzovl), klass(_klass) {};

////////////////////////////////////// Подкласс АВТОБУСЫ класса ПАССАЖИРСКИЕ /////////////////////////////////////////////////////////////// BUS: public PASS

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

{:PRINT(lines);>Add (Назначение: + type);>Add (Габаритная длинна: + IntToStr(dlina));

}void GET (TStringList *lines)

{:GET(lines);>Add(type);>Add (IntToStr(dlina));

}:type;dlina;

};:BUS (String _marka, String _model, int _year, int _power, int _mesta, String _type, int _dlina):PASS (_marka, _model,_year, _power, _mesta), type(_type), dlina(_dlina) {};

class BAZA

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

TRACK *TRACKArray[100];

BUS *BUSArray[100];*CARArray[100];

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

TRACK *TFArray[100];*BFArray[100];*CFArray[100];Tcount;Bcount;Ccount;CFcount;BFcount;TFcount;

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

virtual void ReadFileBase ()

LoadFromFile(track_info.txt);->LoadFromFile(bus_info.txt);->LoadFromFile(car_info.txt);lenCar=7;>Clear();(intj=0;jCount/lenCar-1); j++)

{(int i = 0; i <= lenCar-1; i++)

{>Add (CARbase->Strings [j*lenCar+i]);

}(INFO, 1);>Clear();

}lenBus = 7;>Clear();(int j = 0; j Count/lenBus-1); j++)

{(int i = 0; i <= lenBus-1; i++)

{>Add (BUSbase->Strings [j*lenBus+i]);

}(INFO, 2);>Clear();

}lenTrack = 6;>Clear();(int j = 0; j Count/lenTrack-1); j++)

{(int i = 0; i <= lenTrack-1; i++)

{>Add (TRACKbase->Strings [j*lenTrack+i]);

}(INFO, 3);>Clear();

}

}

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

virtual void Create (TStringList *INFO, int clas)

{(clas)

{1:[Ccount] = new CAR

(INFO->Strings[0].c_str(),>Strings[1].c_str(),(INFO->Strings[2]),(INFO->Strings[3]),(INFO->Strings[4]),>Strings[5].c_str(),>Strings[6].c_str());

++Ccount;;2:[Bcount] = new BUS

(INFO->Strings[0].c_str(),>Strings[1].c_str(),(INFO->Strings[2]),(INFO->Strings[3]),(INFO->Strings[4]),>Strings[5].c_str(),(INFO->S