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

    Дисциплина: Программирование
    Тип работы: Курсовая
    Тема: Объектно-ориентированное программирование Автобусы и маршруты

    Содержание
    Содержание
    1. Введение
    Постановка задачи
    Структура выходных и входных данных
    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). Разрабатываемая программа будет взаимодействовать с базой путем интерфейса
    ODBC, что позволяет размещать данные как непосредственно на локальном компьютере, так и на любой машине в сети, предоставляющий открытый доступ к такого рода ресурсам.
    База данных содержит в себе необходимое и достаточное количество нормализованных сущностей - таблиц:
    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 - таблица, организующая связь “многие ко многим” между таблицами
    Race и
    Path. Содержит два поля: первое - уникальный идентификатор рейса, второе - уникальный идентификатор пути.
    Название
    тип
    race_ID
    счетчик
    path_ID
    поле
    memo
    Station - таблица, размещающая информацию об остановочных пунктах автобусов. Имеет два поля - это уникальный идентификатор остановочного пункта, однозначно определяющий его
    во всем множестве других остановочных пунктах,
    и поле с его названием.
    Название
    тип
    station_ID
    длинное целое
    name
    длинное целое
    Time - таблица, размещающая информацию о временах отправлений автобусов
    . Автобусы, привязанные к одному рейсу, в течении определенного периода могут неоднократно отправляться в рейс в разные часы, что и отражается структурой данной таблицы. Таблица
    состоит из 3 полей: первое - это уникальный идентификатор времени, однозначно определяющий его во всем множестве других времен отправлений, второе поле - это идентификатор автобуса,
    свеянный с таблицей
    Bus (поскольку таблица
    Bus связанна с
    Time связью “один ко многим”, в
    Time может присутствовать несколько идентификаторов одного автобуса), третье поле - время отправления.
    Название
    тип
    time_ID
    счетчик
    bus_ID
    длинное целое
    time
    длинное целое
    Type - таблица, размещающая информацию о типах автобусов (классов). Имеет два поля - это уникальный идентификатор типа, однозначно определяющий его во всем множестве других
    типов,
    и поле с названием типа.
    Название
    тип
    busType_ID
    счетчик
    name
    поле
    memo
    Схема данных представлена в таблице 1. Она отражает сущности, а также связи и их типы.
    Таблица 1 - схема данных
    4. Описание основных классов
    На рисунке 1 изображена диаграмма классов. Она отражает все классы проекта. Практически все классы являются пользовательскими. Они переопределены от встроенных классов путем
    однократного и множественного наследования.
    Класс
    CMyDBVariant представляет собой объект, способный хранить различные типы данных. Он незаменим для ...

    Забрать файл

    Похожие материалы:


ПИШЕМ УНИКАЛЬНЫЕ РАБОТЫ
Заказывайте напрямую у исполнителя!


© 2006-2016 Все права защищены