Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример Проект Макарова.doc
Скачиваний:
1
Добавлен:
08.11.2018
Размер:
265.22 Кб
Скачать

Комментарии

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

  1. Описание процесса проектирования

    1. Первая итерация

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

После анализа того, что нам известно, были выделены три основных класса:

  • TTrain – класс, соответствующий поездам и содержащий поля:

        • название

        • список вагонов

  • TBox – класс, соответствующий вагонам и содержащий поля:

    • название

    • список пассажиров

    • Поезд, в состав которого входит вагон

  • TPas – класс, соответствующий пассажирам:

    • Фамилия

    • Вагон, в котором находится пассажир

      1. Описание класса tTrain

В классе TTrain были выделены следующие поля и методы:

    • name – переменная строкового типа, название поезда

    • Box – список вагонов, входящих в состав поезда

    • Create() – конструктор класса

    • Free() – деструктор класса

      1. Описание класса tBox

В классе TBox были выделены следующие поля и методы:

  • name – переменная строкового типа, название вагона

  • Tr – указатель, поезд в состав которого входит вагон

  • Pas – список пассажиров, находящихся в вагоне

    • Create() – конструктор класса

    • Free() – деструктор класса

      1. Описание класса tPas

В классе TPas были выделены следующие поля и методы:

  • sname – переменная строкового типа, фамилия студента

  • Box – указатель, вагон, в котором находится пассажир

    • Create() – конструктор класса

    • Free() – деструктор класса

На данном этапе была выполнена следующая последовательность действий:

        1. Разработана титульная форма программной системы

        2. Были созданы и заполнены файлы, в которых хранятся данные поездах пассажирах, вагонах.

        3. Реализовано создание объектов всех классов и возможность просмотра их имён

        4. Разработан корректный выход из программы, в котором очищается вся занятая программой память (пункт в процессе разработки неоднократно дорабатывался)

        5. Разработана система связывания объектов вагон-поезд и пассажир-вагон, а так же разрыв этой связи

        6. Разработана возможность просмотра статистической информации о всех объектах, т.е. состояния (см. уточнённое задание)

Диаграмма классов для первой итерации:

    1. Вторая итерация

Во время второй итерации был добавлен новый класс TWay, и расширены классы TTrain, TBox, TPas.

  • TTrain – класс, соответствующий поездам и содержащий поля:

        • название

        • список вагонов

        • маршрут на котором находится

        • максимальное число вагонов

  • TBox – класс, соответствующий вагонам и содержащий поля:

    • название

    • список пассажиров

    • Поезд, в состав которого входит вагон

    • Максимальное количество пассажиров

  • TWayкласс, соответствующий маршрутам, по которым будут двигаться поезда. Этот новый класс намного расширит область задач проектируемой программы. TWay содержит поля:

    • Список поездов

    • Название маршрута

    • Станция начала маршрута

    • Станция конца маршрута

    • Список станций

  • TPas – класс, соответствующий пассажирам. В него добавлены новые поля, для того чтобы собрать больше информации о пассажирах:

    • Фамилия

    • Вагон, в котором находится пассажир

    • Имя пассажира

    • Возраст пассажира

    • Паспортные данные

      1. Описание класса TTrain

В классе TTrain были выделены следующие поля и методы:

    • name – переменная строкового типа, название поезда

    • Box – список вагонов, входящих в состав поезда

    • Way – указатель на маршрут по которому курсирует поезд

    • M_b – максимальное число вагонов, тип byte

    • Create() – конструктор класса

    • Free() – деструктор класса

      1. Описание класса TBox

В классе TBox были выделены следующие поля и методы:

  • name – переменная строкового типа, название вагона

  • Tr – указатель, поезд в состав которого входит вагон

  • Pas – список пассажиров, находящихся в вагоне

  • M_p – максимальное количество пассажиров в одном вагоне

    • Create() – конструктор класса

    • Free() – деструктор класса

      1. Описание класса TPas

В классе TPas были выделены следующие поля и методы:

  • Sname – переменная строкового типа, фамилия пассажира

  • Box – указатель, вагон, в котором находится пассажир

  • Name – имя пассажира

  • Age – возраст пассажира

  • Passport – паспортные данные пассажира

    • Create() – конструктор класса

    • Free() – деструктор класса

      1. Описание класса TWay

В классе TWay были выделены следующие поля и методы:

  • Train – указатель, список поездов, которые находятся на маршруте

  • Name – название маршрута

  • Start_s – переменная строкового типа, название станции с которой начинается маршрут

  • End_s – переменная строкового типа, название станции в которой маршрут заканчивается

  • Station – список внутренних станций

  • Create() – конструктор класса

  • Free() – деструктор класса

На данном этапе была выполнена следующая последовательность действий:

        1. Были обновлены файлы, в которых хранятся данные поездах пассажирах, вагонах.

        2. Реализовано создание объектов всех классов и возможность просмотра их имён

        3. Разработана система связывания объектов вагон-поезд и пассажир-вагон, а также маршрут-поезд, а также разрыв этой связи

        4. Разработана возможность просмотра статистической информации о всех объектах, т.е. состояния (см. уточнённое задание)

        5. Также были устранены все ошибки допущенные при первой итерации

Диаграмма классов для второй итерации

Были построены диаграммы классов, для более полного представления о том какие объекты взаимодействуют в системе, и какие между ними складываются отношения. Так например из диаграммы видно, что одному маршруту может соответствовать любое количество поездов, в том числе и ноль. Такие же отношения складываются и у поездов с вагонами, и у вагонов с пассажирами.

Диаграмма прецедентов

Приведенные ниже диаграммы показывают внутреннее взаимодействие системы, отношения и динамика работы. На диаграммах были изображены самые важные части программы : редактирование и моделирование.

Диаграмма деятельности (редактирование)

Диаграмма деятельности (моделирование)

Тест-план программы

теста

Описание теста

Ожидаемый результат

Пройден/ Не пройден

Часть 1. Добавление новых объектов

1.1

Добавление нового маршрута.(других Маршрутов нет).

Маршрут добавился

Пройден.

1.2

Добавление нового маршрута.(маршрут с таким именем уже есть)

Вывод сообщения «Такой маршрут уже есть»

Пройден

1.3

Добавление нового маршрута.(маршруты уже есть)

Маршрут добавился

Пройден

1.4

Добавление нового Маршрута с пустым именем

Вывод сообщения «Бессмысленное название»

Пройден

1.5

Добавление новой станции в маршрут (других станций нет).

Станция добавляется

Пройден.

1.6

Добавление новой станции в маршрут (другие станции есть).

Станция добавляется

Пройден.

1.7

Редактирование добавленной станции в маршрут

Станция редактируется

Пройден.

1.8

Добавление новой станции (такая станция уже есть).

Вывод сообщения «Станция с таким именем уже есть»

Пройден.

Часть2. Прикрепление поездов к маршрутам, вагонов к поездам, пассажиров к вагонам.

2.1

Прикрепление поездов к Маршруту(других поездов в Маршрута нет).

Поезд добавляется

Пройден.

2.2

Прикрепление поездов к Маршруту(другие поезда в Маршруте есть).

Поезд добавляется

Пройден.

2.3

Прикрепление вагона к поезду (других вагонов у поезда нет).

Вагон добавляется

Пройден.

2.4

Прикрепление вагона к поезду (другие вагоны у поезда есть).

Вагон добавляется

Пройден.

2.5

Прикрепление пассажира к вагонам (пассажиров в вагоне нет)

Пассажир добавляется

Пройден.

2.6

Прикрепление пассажира к вагонам (пассажиры в вагоне есть)

Пассажир добавляется

Пройден.

Часть 3. Просмотр информации.

3.1

Просмотр поездов при нажатии кнопки Button1

Вывод списка всех поездов в listview1

Пройден.

3.2

Просмотр вагонов при нажатии кнопки Button2

Вывод списка всех вагонов в listview1

Пройден.

3.3

Просмотр пассажиров при нажатии кнопки Button3

Вывод списка всех пассажиров в listview1

Пройден.

3.4

Выбор поезда из listview1, просмотр данных о поезде

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

Пройден

3.4.1

Нажатие кнопки «Список», простор всех вагонов в поезде

Открытие listview1, в котором показывается список вагонов

Пройден

3.4.2

Выбор вагона из listview1, просмотр данных о вагоне

Открытие нового окна с данными о вагоне

Пройден

3.4.3

Нажатие кнопки «Список», простор всех пассажиров в вагоне

Открытие listview1, в котором показывается список пассажиров

Пройден

3.4.4

Выбор пассажира из listview1, просмотр данных о пассажире

Открытие нового окна с данными о пассажире

Пройден

Часть 4. Удаление поездов из маршрутов, вагонов из поездов, пассажиров из вагонов.

4.1

Удаление поезда из маршрута

Поезд удалился

Пройден.

4.2

Удаление вагона из поезда

Вагон удалился

Пройден.

4.3

Удаление пассажира из вагона

Пассажир удалился

Пройден

Часть5. Моделирование.

5.1

Выбор МАРШРУТА, выбор времени нажатие кнопки button1

В listview1 информация о текущем расположении поездов на данном маршруте в данное временя

Пройден.