Автор: Пользователь скрыл имя, 15 Мая 2012 в 01:26, курсовая работа
С++ - это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных
Содержание
Содержание___________________________________________________________2
Введение_____________________________________________________________ 3
Постановка задачи_____________________________________________________4
Условие задачи_______________________________________________________4
Обзор методов________________________________________________________4
Структура входных и выходных данных __________________________________5
Диаграмма классов_____________________________________________________6
Описание классов______________________________________________________7 6.1 CityBus____________________________________________________________7
6.2 ComfortBus________________________________________________________8
6.3 List_______________________________________________________________9
6.4 mylist ____________________________________________________________10
6.8 ListNotFree________________________________________________________11
7. Описание алгоритмов_________________________________________________10
7.1 Блок схемы алгоритмов программы___________________________________10
Алгоритмы по шагам_______________________________________________12
8.Текст программы______________________________________________________13
8.1 CityBus.h _________________________________________________________13
8.2 CityBus.cpp _______________________________________________________13
8.3 ComfortBus.h______________________________________________________16 8.4 ComfortBus.cpp ____________________________________________________17
8.5 mylist.h _________________________________________________________ 19 8.6 Iterator.h _________________________________________________________25
8.7 Iterator.cpp ________________________________________________________26 8.8 exceptions.h _______________________________________________________28
8.9 database.cpp _______________________________________________________28
8.10 Form1.h _________________________________________________________29
9. Результат работы программы___________________________________________56
10.Заключение__________________________________________________________58
11.Литература___________________________________________________________
Министерство образования республики Беларусь
Учреждение образования
Белорусский государственный
университет информатики и
Кафедра: электронных вычислительных машин
Факультет: компьютерных сетей и систем
Пояснительная записка к курсовой работе по курсу КПиЯП
на тему:
«Управление информацией в автобусном парке»
Выполнил:
Студент группы 050504 Насуро Е.В.
Козак С.С.
Минск 2012
Содержание
Условие задачи________________________
Обзор методов________________
6.2 ComfortBus____________________
6.3 List__________________________
6.4 mylist ______________________________
6.8 ListNotFree___________________
7. Описание алгоритмов___________
7.1 Блок схемы алгоритмов
программы_____________________
8.Текст программы_____________________
8.1 CityBus.h ______________________________
8.2 CityBus.cpp ______________________________
8.3 ComfortBus.h__________________
8.5 mylist.h ______________________________
8.7 Iterator.cpp ______________________________
8.9 database.cpp ______________________________
8.10 Form1.h ______________________________
9. Результат
работы программы_____________________
10.Заключение_________________
11.Литература_________________
Введение
С++ - это универсальный язык
Ключевым понятием С++ является
класс. Класс - это тип, определяемый
пользователем. Классы обеспечивают сокрытие
данных, гарантированную инициализацию
данных, неявное преобразование типов
для типов, определенных пользователем,
динамическое задание типа, контролируемое
пользователем управление памятью
и механизмы перегрузки операций.
С++ предоставляет гораздо лучшие,
чем в C, средства выражения модульности
программы и проверки типов. В
языке есть также усовершенствования,
не связанные непосредственно с
классами, включающие в себя символические
константы, inline-подстановку функций,
параметры функции по умолчанию,
перегруженные имена функций, операции
управления свободной памятью и
ссылочный тип. В С++ сохранены
возможности языка C по работе с основными
объектами аппаратного
С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.
Язык С++ предназначен для разработки высокопроизводительного программного обеспечения и чрезвычайно популярен среди программистов. При этом он обеспечивает концептуальный фундамент (синтаксис и стиль), на который опираются другие языки программирования. Не случайно ведь потомками С++ стали такие почитаемые языки , как С# и Java. Более того, С++ можно назвать универсальным языком программирования, поскольку практически все профессиональные программисты на том или ином уровне знакомы с С++.
Постановка задач
Условие задачи:
Написать программу учёта наличия транспортных средств (автобусы) в автопарке. Программа должна иметь удобный пользовательский интерфейс с необходимыми пунктами меню. Работа с информацией должна проводиться в окнах. Информация организуется в виде структур и хранится в файле. Структура содержит следующие поля:
По запросу выдавать информацию о свободных автобусах, автобусах в рейсе, ремонтируемых, списанных. Выдаваемая информация должна быть отсортирована по разным признакам. При реализации операции редактирования, добавления, удаления информации предусмотреть операцию отмены последних действий.
Обзор методов:
Минус данного
метода заключается в том, что
таким способом не реализуется
Выбранный метод – 2.
Данный метод даёт больше «свободы» в работе с данными, позволяет использовать всю мощь языка, позволяет создавать новые методы для работы с файлами, позволяет реализовать основные принципы объектно-ориентированного программирования.
Структура входных и выходных данных
Входные данные:
class CityBus
{
public:
----//----
private:
char RegNumber[10]; // Уникальный регистрационный номер
char BusState[6]; // Состояние автобуса
char Mark[10]; // Марка автобуса
int Seats; // Количество сидений
char Driver1[40]; // Имя первого водителя
char Driver2[40]; // Имя второго водителя
char ST[4]; // Тип сидений
};
class ComfortBus
{
public:
---//---
private:
char RegNumber[10]; // Уникальный регистрационный номер
char BusState[6]; // Состояние автобуса
char Mark[10]; // Марка автобуса
int Seats; // Количество сидений
char Driver1[40]; // Имя первого водителя
char Driver2[40] // Имя второго водителя
bool wc; // Наличие отхожего места
bool tv; // Наличме телевизора
};
Выходные данные имеют тот же формат, что и входные.
Диаграмма классов
Рисунок 1 – Диаграмма классов
Описание классов
class CityBus //Информация о городском автобусе
{
private:
char RegNumber[10]; //Регистрационный номер автобуса
char BusState[6]; //Состояние автобуса
char Mark[10]; //Марка автобуса
int Seats; //Количество мест для сидения
char Driver1[40]; //Первый водитель
char Driver2[40]; //Второй водитель
char ST[4]; //Тип сидений
public:
CityBus(void); //Консруктор по умолчанию
CityBus(int a7, System::String ^a1 , System::String ^ a2, System::String ^ a3, System::String ^ a4, System::String ^ a5, System::String ^ a6) ; //Конструктор c параметрами
CityBus (CityBus &tmp) ; //Конструктор копирования
~CityBus(void); //Деструктор
const CityBus& CityBus::operator = (const CityBus &tmp) ; //Перегрузка «=»
bool CityBus::operator < (const CityBus &ptr) const; // Перегрузка «<»
char* getST(); //Получить тип сидений
char* getRegNumber(); //Получить регистрационный номер автобуса
char* getMark(); // Получить марку автобуса
int getSeats(); // Получить количество мест для сидения
char* getState(); // Получить состояние автобуса
char* getDriver1(); // Получить первого водителя
char* getDriver2(); // Получить второго водителя
void setRegNumber(char *) ; //Задать регистрационный номер автобуса
void setMark(char * tmp) ; // Задать марку автобуса
void setSeats(int tmp) ; // Задать количество мест для сидения
void setState(char * tmp) ; // Задать состояние автобуса
void setDriver1(char * tmp) ; // Задать первого водителя
void setDriver2(char * tmp) ; // Задать второго водителя
void setST(char * tmp) ; // Задать тип сидений
};
class ComfortBus //Информация о комфортабельном автобусе
{
private:
char RegNumber[10]; //Регистрационный номер автобуса
char BusState[6]; //Состояние автобуса
char Mark[10]; //Марка автобуса
int Seats; //Количество мест для сидения
char Driver1[40]; //Первый водитель
char Driver2[40]; //Второй водитель
bool wc; //Наличие туалета
bool tv; //Наличие телевизора
public:
ComfortBus (void); //Консруктор по умолчанию
ComfortBus (int a7, System::String ^a1 , System::String ^ a2, System::String ^ a3, System::String ^ a4, System::String ^ a5, System::String ^ a6, bool a8, bool a9) ; //Конструктор с параметрами
ComfortBus (ComfortBus &tmp) ; //Конструктор копирования
~ ComfortBus (void); //Деструктор
const ComfortBus & CityBus::operator = (const ComfortBus &tmp) ; //Перегрузка «=»
bool ComfortBus::operator < (const ComfortBus &ptr) const; // Перегрузка «<»
char* getST(); //Получить тип сидений
char* getRegNumber(); //Получить регистрационный номер автобуса
char* getMark(); // Получить марку автобуса
int getSeats(); // Получить количество мест для сидения
char* getState(); // Получить состояние автобуса
char* getDriver1(); // Получить первого водителя
char* getDriver2(); // Получить второго водителя
bool getbwc(); // Получить наличие туалета
bool gettv(); // Получить наличие телевизора
void setRegNumber(char *) ; //Задать регистрационный номер автобуса
void setMark(char * tmp) ; // Задать марку автобуса
void setSeats(int tmp) ; // Задать количество мест для сидения
void setState(char * tmp) ; // Задать состояние автобуса
void setDriver1(char * tmp) ; // Задать первого водителя
void setDriver2(char * tmp) ; // Задать второго водителя
void setwc(bool tmp); // Задать наличие туалета
void settv(bool tmp); // наличие телевизора
};
template <typename T> class List // класс – контейнер (список)
{
friend class listIter<T>;
friend class Algoritm<T>;
public:
List(): top(NULL), end(NULL) {} // конструктор по умолчанию
List(const List<T> &p): top(p.top), end(p.end) {} // конструктор
void push_front(T); // добавить элемент в начало
void push_back(T); // добавить элемент в конец
T pop_front(); // достать первый элемент
T pop_back(); // достать последний элемент
void Delete(listIter<T> *); // удалить произвольный элемент
void Add(listIter<T> *, T); // добавить элемент по месту итератора
void SendToFile(char*); // поместить все элементы в бинарный файл
void PopFromFile(char*); // загрузить список из бинарного файла
bool getweight(); // показывает наличие хотя бы одного элемента
mylist<T>* front() const { return top;} // возвращает указатель на первый
mylist<T>* back() const { return end;} // возвращает указатель на
последний элемент
private:
mylist<T> *top, *end; // указатели на начало и конец списка
};
template <typename T> class mylist
Информация о работе Управление информацией в автобусном парке