Курсовая работа: Разработка специализированного программного модуля для решения указанной задачи
2.1 Анализ процесса обработки информации и выбор структур данных для ее хранения
Для хранения информации была выбрана структура данных типа стек.
Стек - это частный случай однонаправленного списка, добавление элементов в который и выборка из которого выполняются с одного конца, называемого вершиной стека. Другие операции со стеком не определены. При выборке элемент исключается из стека. Говорят, что стек реализует принцип обслуживания LIFO (last in - first out, последним пришел - первым ушел).
2.2 Выбор методов и разработка основных алгоритмов решения задачи
В данной курсовой работе необходимо создать шаблон класса "стек" и написать программу, использующую этот шаблон класса для моделирования процесса прибытия и отъезда машины со стоянки. Программа формирует начальный стек. Далее с помощью меню пользователю предоставляется возможность сделать выбор – выгрузить стек на дисплей, добавить машину, удалить машину, выйти из программы. Для того чтобы выгрузить стек была создана функция pop(), а для добавления машины функция push(). Удаление машины из стека (гаражная стоянка) осуществляется путем выборки элементов стека (машин и информации о кол-ве выездов) и занесением их в вспомогательный стек temp, до тех пор, пока не будет найден удаляемый элемент (автомобиль). После чего элементы с вспомогательного стека заносятся обратно в том же порядке в начальный стек, при этом количество выездов увеличивается на 1. Таким образом, мы удаляем нужный нам автомобиль и ведем подсчет количеству раз, которое машина удалялась со стоянки. Если машина, которую мы хотим удалить, не найдена, программа выдаст соответствующее сообщение.
Так же созданная программа предусматривает обработку ошибок. При не корректном выборе в меню программа выдаст сообщение "Ошибка меню! Сделайте правильный выбор".
3. Разработка структурной схемы программного продукта
Рисунок 1 - Структурная схема программного модуля
Menu – функция меню, выбор пункта меню. Выгрузить стек – выгружает стек на дисплей. Добавить машину - добавляет машину в стек. Удалить машину - удаляет машину из стека. Выход - выход из программы.
4. Проектирование интерфейса пользователя
4.1 Построение графа диалога
Для работы с программой было реализовано меню, состоящее из 4 пунктов. При выборе пункта 1 (в программе - нажатие клавиши 0) данные выводятся на экран. При выборе пункта 2 и 3 (нажатие 1 и 2 соответственно) данные вводятся с клавиатуры. При выборе пункта 4 (нажатие 3) мы выходим из программы.
Рисунок 2 – Граф диалога
Ф – menu
Ф1 – выгрузить стек на дисплей
Ф2 – добавить машину
Ф3 – удалить машину
Ф4 – выход из программы
4.2 Разработка форм ввода-вывода информации
Входной информацией является номер автомобиля, а выходной номер автомобиля и количество раз, которое машина удалялась со стоянки.
Название | Обозначение в программе | Диапазон возможных значений |
Номер машины | mashin.num | Строка |
Количество раз, которое машина удалялась со стоянки | mashin.kol | Целое положительное число |
Вводится информация с помощью оператора cin ( cin>>mashin.num; )
Рисунок 3 – Форма ввода входных данных
Выводится на экран с помощью оператора cout
( cout<<temp.num<<"\t"<<temp.kol<<endl; )
Рисунок 4 – Форма вывода данных