Управление информацией в автобусном парке

Автор: Пользователь скрыл имя, 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.Литература___________________________________________________________

Работа содержит 1 файл

!!!!!!!!Пояснительная записка.docx

— 183.78 Кб (Скачать)

Министерство образования  республики Беларусь

Учреждение образования

Белорусский государственный  университет информатики и радиоэлектроники

 

 

 

 

Кафедра: электронных вычислительных машин

Факультет: компьютерных сетей  и систем

 

 

 

 

 

Пояснительная записка  к курсовой работе по курсу КПиЯП

на тему:

 «Управление информацией в автобусном парке»

 

 

 

 

 

Выполнил:                                         Проверила:

Студент группы 050504       Насуро Е.В.

Козак С.С.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Минск 2012

Содержание

  1. Содержание___________________________________________________________2
  2. Введение_____________________________________________________________ 3
  3. Постановка задачи_____________________________________________________4

     Условие задачи_______________________________________________________4

 Обзор методов________________________________________________________4

  1. Структура входных и выходных данных __________________________________5
  2. Диаграмма классов_____________________________________________________6
  3. Описание классов______________________________________________________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

    1. Алгоритмы по шагам_______________________________________________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.Литература___________________________________________________________59

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

            С++ - это универсальный язык программирования,  задуманный так,  чтобы сделать  программирование более приятным  для серьезного  программиста. За  исключением второстепенных деталей  С++ является надмножеством языка  программирования C. Помимо  возможностей, которые дает C, С++ предоставляет  гибкие и эффективные средства  определения  новых  типов.  Используя  определения  новых   типов, точно отвечающих концепциям  приложения, программист может разделять   разрабатываемую программу на  легко поддающиеся контролю части.  Такой метод построения программ  часто называют абстракцией данных. Информация о типах содержится  в некоторых объектах типов,  определенных пользователем. Такие  объекты просты и надежны в  использовании в тех ситуациях,  когда их тип нельзя установить  на стадии компиляции. Программирование  с применением таких объектов  часто называют объектно-ориентированным.  При правильном использовании  этот метод дает более короткие, проще понимаемые и легче контролируемые  программы. 

Ключевым понятием С++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию  данных, неявное преобразование типов  для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью  и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности  программы и проверки типов. В  языке есть также усовершенствования, не связанные непосредственно с  классами, включающие в себя символические  константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и  ссылочный тип. В С++ сохранены  возможности языка C по работе с основными  объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это  позволяет весьма эффективно реализовывать  типы, определяемые пользователем.

С++ и его стандартные  библиотеки спроектированы так, чтобы  обеспечивать переносимость. Имеющаяся  на текущий момент реализация языка  будет идти в большинстве систем, поддерживающих C. Из С++ программ можно  использовать C библиотеки, и с С++ можно использовать большую часть  инструментальных средств, поддерживающих программирование на C.

Язык С++ предназначен для  разработки высокопроизводительного  программного обеспечения и чрезвычайно  популярен среди программистов. При этом он обеспечивает концептуальный фундамент (синтаксис и стиль), на который опираются другие языки  программирования. Не случайно ведь потомками  С++ стали такие почитаемые языки , как С# и Java. Более того, С++ можно назвать универсальным языком программирования, поскольку практически все профессиональные программисты на том или ином уровне знакомы с С++.

 

 

Постановка задач

 

Условие задачи:

 

Написать программу учёта  наличия транспортных средств (автобусы) в автопарке. Программа должна иметь  удобный пользовательский интерфейс  с необходимыми пунктами меню. Работа с информацией должна проводиться  в окнах. Информация организуется в  виде структур и хранится в файле. Структура содержит следующие поля:

 

  • Марка автобуса.
  • Тип автобуса.
  • Состояние (на базе, в рейсе, на ремонте, списан).
  • Количество мест.
  • Государственный номер.
  • Водители.

 

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

 

Обзор методов:

  1.      Для решения поставленной задачи можно подключить к нашей программе базу данных, созданную в Microsoft Access. В таком случае можно создать объект DataGridView и работать напрямую с файлом, используя SQL-запросы.

     Минус данного  метода заключается в том, что  таким способом не реализуется   весь потенциал С++ как объектно-ориентированного  языка. 

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

 

Выбранный метод – 2.

Данный метод даёт больше «свободы» в работе с данными, позволяет использовать всю мощь языка, позволяет создавать новые  методы для работы с файлами, позволяет  реализовать основные принципы объектно-ориентированного программирования.   

 

 

Структура входных  и выходных данных

 

Входные данные: 

 

  1. Файл с расширением .cbd, содержащий список городских автобусов и их характеристик. Элементами файла являются объекты класса CityBus.

 

class CityBus

{

public:

----//----

private:

char RegNumber[10];      // Уникальный регистрационный номер

char BusState[6];    // Состояние автобуса

char Mark[10];     // Марка автобуса

int Seats;     // Количество сидений

char Driver1[40];             //  Имя первого водителя

char Driver2[40];    // Имя второго водителя

char ST[4];     // Тип сидений

};

 

  1. Файл с расширением .mbd, содержащий номера комфортабельных автобусов и их характеристики. Элементами файла являются объекты класса ComfortBus.

 

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

Информация о работе Управление информацией в автобусном парке