Объектно-ориентированное программирование Автобусы и маршруты

Реферат - Компьютеры, программирование

Другие рефераты по предмету Компьютеры, программирование

Содержание

Содержание_

1. Введение_

2. Постановка задачи_

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

4. Описание основных классов_

5. Листинг программы_

6. Результат работы программы_

7. Заключение_

8. Литература_

 

1. Введение

Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. С таким умыслом первоначально задумывался C. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко. С таким умыслом предварительно задумывались средства, добавленные к C для создания C++.

Связь между языком, на котором мы думаем/программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Язык предоставляет программисту набор концептуальных инструментов; если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств. Система типов должна быть особенно полезна в нетривиальных задачах. Действительно, концепция классов в C++ показала себя мощным концептуальным средством.

 

 

2. Постановка задачи

Написать информационную систему по учёту автобусных рейсов. Информационная система должна позволять:

  • Вести учет автотранспорта (преимущественно автобусного). В свою очередь следует:
  • учитывать время отправления каждого автобуса;
  • учитывать типы автобусов;
  • привязывать автотранспорт (автобусы) к рейсам;
  • Вести учет рейсов. В свою очередь следует:
  • учитывать пути, составляющие рейс;
  • Вести учет остановочных пунктов

 

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

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

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

При редактировании следует аналогичным образом проверять редактируемые значения проверять на уникальность.

 

Для реализации поставленной задачи использовать Visual Studio C++ версии не ниже 6.0. В частности применить библиотеку Microsoft Foundation Classes (MFC), представляющую интерфейс ODBC для доступа к базам данных и другие возможности.

 

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

Программа использует СУБД Access. В ней будет разработана основная база (bus.mdb). Разрабатываемая программа будет взаимодействовать с базой путем интерфейса MFCODBC, что позволяет размещать данные как непосредственно на локальном компьютере, так и на любой машине в сети, предоставляющий открытый доступ к такого рода ресурсам.

База данных содержит в себе необходимое и достаточное количество нормализованных сущностей - таблиц:

  • Bus - таблица, размещающая информацию об автобусах. Содержит три поля: первое - это уникальный идентификатор автобуса, однозначно определяющий его во всем множестве других автобусов, второе - тип автобуса, третье - уникальный идентификатор рейса.

Название

тип

 

bus_ID

счетчик

 

busType_ID

длинное целое

 

race_ID

длинное целое

 

  • Path - таблица путей. Она предназначена для связи разрозненных остановочных пунктов в элементарный неделимый маршрут из одного остановочного пункта в другой. При этом направление не имеет значения. Таблица состоит из 4 полей: первое - это уникальный идентификатор пути, однозначно определяющий его во всем множестве других путей, второе и третье - уникальный идентификатор остановочного пункта, четвертое - расстояние между остановочными пунктами, выраженное во времени прохождения их из первого во второй либо из второго в первый.

Название

тип

 

path_ID

счетчик

 

start/end station_ID

длинное целое

 

end/start station_ID

длинное целое

 

time

длинное целое

 

  • Race - таблица, размещающая информацию о рейсах. Имеет два поля: первое - это уникальный идентификатор рейса, однозначно определяющий его во всем множестве других рейсов, второе - описание рейса.

Название

тип

 

race_ID

счетчик

 

description

поле memo

 

  • Race items - таблица, организующая связь “многие ко многим” м?/p>