Железная дорога

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    5,33 Кб
  • Опубликовано:
    2012-07-20
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Железная дорога














Железная дорога


Введение


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

Таким образом, в цели курсовой работы входят пункты:

·        Создание базы данных поездов и вагонов

·        Просмотр статистики выбранного поезда и вагона

·        Поиск нужного рейса по станциям прихода и отправления

·        Продажа билетов на нужный поезд, в выбранный пассажиром вагон.

программа перевозка поезд железный

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

}

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 setinfo (const int number_vagon); // Ввести данныеint get_number_vagon() const

{slujvag:get_number_vagon(); // Вывести данные

}

3.2.9 Класс Bufvag

Поля:

Методы:

virtual int setinfo (const int number_vagon); // Ввести данныеint get_number_vagon() const

{slujvag:get_number_vagon(); // Вывести данные

}

3.2.10 Класс Poezd

Поля:

int num; // номер рейсаkol; // количество вагоновst_out; // станция отправленияst_in; // станция приходаtime_out; // время отправленияtime_in; // время прихода

Методы:

virtual int setinfo (const int number_poezd, const int kol_vagons, const int station_out, const int station_in, const int vremya_out, const int vremya_in); // Ввести данныеint get_number_poezd() const

{num;

}int get_kol_vagons() const

{kol;

}int get_st_out() const

{st_out;

}int get_st_in() const

{st_in;

}int get_time_out() const

{time_out;

}int get_time_in() const

{time_in;

}

Руководство пользователя

1)      Интерфейс программу интуитивно понятен: после запуска, программа автоматически создаёт список поездов. Параметры каждого поезда произвольно заполнены программой. Так же автоматически создаётся список вагонов с их параметрами. Каждый поезд имеет различное число вагонов и у них различные типы.

)        Пользователь может выбирать поезда и вагоны в соответствующих колонках для просмотра их статистики.

)        Продажа билетов осуществляется только в пассажирские вагоны, при наличии в них свободных мест. Для того чтобы продать билет, пользователь должен нажать кнопку «Продать Билет». Если выбран служебный вагон, или в вагоне не осталось свободных мест, эта кнопка будет заблокирована.

)        Для удобства в программе предусмотрен поиск поездов по станциям. Пользователь должен ввести названия станций с заглавной буквы в соответствующие поля и нажать кнопку «Найти». При удачном поиске, программа выделит найденный рейс в списке поездов и отобразит статистику поезда. Если поиск неудачен, программа очистит поля ввода.

)        Для создания новой базы поездов, пользователю необходимо кликнуть по кнопке «Генерировтаь». В этом случае произойдёт очистка памяти от существующей базы данных и будет создана новая.

Заключение


В результате изучения вышеуказанной проблемы была создана данная программа. Перед этим был изучен язык высокого уровня С++, среда разработки Microsoft Visual Studio 2008 и основы разработки для платформы.NET. Особое внимание потребовалось при разработке классов.

 


Список источников


1. С.В. Глушаков и Т.В. Дуравкина «Прграммирование на С++» 2-е издание.

2. Интернет-ресурс http; //msdn.microsoft.com/ru-ru/default.aspx.

Похожие работы на - Железная дорога

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!