Железная дорога
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
Железная дорога
Введение
Целью данной работы является разработать программу, имитирующую процесс пассажирских перевозок по железной дороге.
Таким образом, в цели курсовой работы входят пункты:
Создание базы данных поездов и вагонов
Просмотр статистики выбранного поезда и вагона
Поиск нужного рейса по станциям прихода и отправления
Продажа билетов на нужный поезд, в выбранный пассажиром вагон.
программа перевозка поезд железный
1. Постановка задачи
Разработать программу, имитирующую процесс пассажирских перевозок по железной дороге.
Имеются несколько станций, соединенных железнодорожной сетью.
Между станциями курсируют поезда из нескольких вагонов.
Каждый поезд имеет номер, станцию отправления, станцию назначения, время убытия со станции отправления и время прибытия на станцию назначения.
Каждый вагон имеет номер. Все вагоны делятся на пассажирские и служебные.
Все служебные делятся почтовые, вагон-ресторан, вагон-буфет.
Все пассажирские вагоны имеют количество мест и цену места на километр расстояния.
Пассажирские вагоны подразделяются на сидячие, плацкартные и купейные.
Пассажиры, желающие уехать, покупают билеты на станциях, называя пункт отправления и пункт назначения. В зависимости от наличия таких поездов и мест кассир обеспечивает пассажира билетом.
Процесс имитации может быть остановлен пользователем программы для просмотра параметров объектов:
Состояние каждого поезда, в т.ч.: типы вагонов, их состояние, количество пассажиров по вагонам и всего.
Загруженность вагонов с разбивкой по их типам.
Выручка с разбивкой по поездам и типам вагонов.
2. Реализация задачи
.1 Алгоритм решения
Была спроецирована иерархия классов. При проектировании классов были использованы механизмы наследования и полиморфизма. Для этого были определены базовые и наследуемые классы.
2.2 Иерархия классов
2.3 Описание классов
. Класс Basevag - базовый класс для Passvag и Slujvag. Хранит значение номера вагона.
. Класс Passvag - производный от класса Basevag. Хранит методы значения и методы для пассажирских вагонов.
. Класс Slujvag - производный от класса Basevag. Хранит методы значения и методы для служебных вагонов.
. Классы Sitvag, Platsvag и Cupevag - производные от класса Passvag. Они разделяют пассажирские вагоны на типы, использующиеся в программе.
. Классы Mailvag, Restvag и Bufvag - производные от класса Slujvag. Они разделяют служебные вагоны на типы, использующиеся в программе.
. Класс Poezd - базовый класс поездов. Хранит значения и методы для каждого поезда.
3. Описание программного обеспечения
.1 Программная реализация
Общий подход к реализации программы
Среда разработки - Microsoft Visual Studio 2008 (язык C++). Программа написана в объектно-ориентированной среде.
Программа предназначена для начинающих пользователей. Программы работают в Windows Vista и Windows 7.
Алгоритм
Цель программы - наглядно показать работу простого программного обеспечения для железнодорожной станции.
3.2 Описание устройства иерархии классов
.2.1 Класс Basevag
Поля:
int numvag; // Номер вагона
Методы:
virtual int setinfo (const int number_vagon); // Ввести данныеint get_number_vagon() const // получить номер вагона
{numvag;
}
3.2.2 Класс Passvag
Поля:
int places; // Кол-во местcost; // Цена места на киометр расстоянияbuy; // Кол-во проданных билетов
Методы:
virtual int setinfo (const int number_vagon, const int kol_places, const int cost_place, const int bilets); // Ввести данныеint setdata (const int number_vagon, const int bilets);int setbilets (const int bilets);int get_number_vagon() const
{basevag:get_number_vagon(); // Вывести данные
}int get_kol_places() const
{places;
}int get_cost_place() const
{cost;
}int get_bilets() const
{buy;
}
3.2.3 Класс Slujvag
Поля:
Методы:
virtual int setinfo (const int number_vagon); // Ввести данныеint get_number_vagon() const
{basevag:get_number_vagon(); // Вывести данные
}
3.2.4 Класс Sitvag
Поля:
Методы:
virtual int setinfo (const int number_vagon, const int kol_places, const int cost_place, const int bilets); // Ввести данныеint setdata (const int number_vagon, const int bilets);int setbilets (const int bilets);int get_number_vagon() const
{passvag:get_number_vagon(); // Вывести данные
}int get_kol_places() const
{passvag:get_kol_places();
}int get_cost_place() const
{passvag:get_cost_place();
}int get_bilets() const
{passvag:get_bilets();
}
3.2.5 Класс Platsvag
Поля:
Методы:
virtual int setinfo (const int number_vagon, const int kol_places, const int cost_place, const int bilets); // Ввести данныеint setdata (const int number_vagon, const int bilets);int setbilets (const int bilets);int get_number_vagon() const
{passvag:get_number_vagon(); // Вывести данные
}int get_kol_places() const
{passvag:get_kol_places();
}int get_cost_place() const
{passvag:get_cost_place();
}int get_bilets() const
{passvag:get_bilets();
}
3.2.6 Класс Cupevag
Поля:
Методы:
virtual int setinfo (const int number_vagon, const int kol_places, const int cost_place, const int bilets); // Ввести данныеint setdata (const int number_vagon, const int bilets);int setbilets (const int bilets);int get_number_vagon() const
{passvag:get_number_vagon(); // Вывести данные
}int get_kol_places() const
{passvag:get_kol_places();
}int get_cost_place() const
{passvag:get_cost_place();
}int get_bilets() const
{passvag:get_bilets();
}
3.2.7 Класс Mailvag
Поля:
Методы:
virtual int setinfo (const int number_vagon); // Ввести данныеint get_number_vagon() const
{slujvag:get_number_vagon(); // Вывести данные
}
3.2.8 Класс Restvag
Поля:
Методы:
virtual int