Объектно-ориентированное программирование на языке С++
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
µн в таблице3.
Таблица 3. Результат тестирования программы
№ТестРезультат1Реализация иерархии классов: создание объектов (модули реализации классов)Успешно2Реализация иерархии классов: работа с полями (модули реализации классов)Отладка функций GET для доступа к полям объектов классов. Успешно3Вод из файла (модуль работы с объектами классов и модуль реализации классов)Откладка функции ReadFileBase для извлечения данных из файла. Успешно.4Сохранение в файл (модуль работы с объектами классов и модуль реализации классов)Успешно5Просмотр данных (модуль самого приложения и модуль реализации классов)Успешно6Добавление (модуль самого приложения и модуль реализации классов)Отладка процедуры добавления, добавление обработчиков ошибок. Успешно7Поиск (использование дополнительного класса)Успешно8Удаление (использование дополнительного класса)Успешно
Таким образом, функционал приложения и его реализация соответствуют требованиям, предъявленным в техническом задании.
Заключение
В ходе выполнения курсовой работы были закреплены теоретические знания в области объектно-ориентированного программирования на зыке С++. Была разработана иерархия классов предметной области Автомобильный транспорт, закреплены знания о создании и использовании динамических структур данных.
Также научился работать с объектами иерархии классов.
Применение объектно-ориентированного подхода к программированию и широкие возможности языка С++ в среде визуального программирования С++ Builder является мощным и гибким средством при создании программ имитирующих поведение объектов реального мира.
Список литературы
- Википедия - свободная энциклопедия (www.wikipedia.org)
- Айра Пол ООП на С++ - СПб.: Бином, Невский диалект, 2001 - 461 с.
- Р. Лафоре ООП в С++ - М.: Питер, 2004 - 923 с.
- Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы - М.: Издательский дом Вильямс, 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