СОДЕРЖАНИЕ
ВВЕДЕНИЕ 2
- НАЗНАЧЕНИЕ И ОБЛАСТЬ
ПРИМЕНЕНИЯ 3
- ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ 3
2.1. Постановка
задачи
3
2.2. Описание программы
и алгоритма программы с
описанием функций
и составных частей и связей между
ними . Описание входных
и выходных данных
3
2.3. Выбор состава технических
и программных средств
8
3. ИСТОЧНИКИ, ИСПОЛЬЗОВАННЫЕ
ПРИ РАЗРАБОТКЕ
9
- РАЗРАБОТКА ПРОГРАММЫ 9
- ТЕСТИРОВАНИЕ ПРОГРАММЫ 9
- ВНЕДРЕНИЕ 10
- ЗАКЛЮЧЕНИЕ 11
- СПИСОК ЛИТЕРАТУРЫ 12
Приложение 1. Листинг программы.
13
Приложение 2. Результат работы.
21
Приложение 3. Схема
алгоритма.
22
ВВЕДЕНИЕ
Для решения заданной задачи используется
язык Турбо Паскаль. Язык Турбо Паскаль
– это один из самых распространенных
языков программирования микрокомпьютеров.
Язык Турбо Паскаль очень быстро компилирует
программу, объединяет компилятор с интерактивным
экранным редактором, предупреждает об
ошибках на уровне исходной программы,
позволяет рисовать в графическом режиме
разные элементы конструкции и т.д.
Базовыми компонентами система программирования
Турбо Паскаль являются компилятор языка
Паскаль, средства создания и редактирования
исходных текстов программ и средства
их отладки (поиска и исправления ошибок).
Все эти компоненты объединены в единую
интегрированную среду разработчика,
с которой работает программист, создавая
свои программы.
Запись представляет
собой совокупность ограниченного числа
логически связанных компонент, принадлежащих
к разным типам. Компоненты записи называются
полями, каждое из которых определяется
именем. Поле записи содержит имя поля,
вслед за которым через двоеточие указывается
тип этого поля. Поля записи могут относиться
к любому типу, допустимому в языке Паскаль,
за исключением файлового типа.
Описание записи в языке Паскаль осуществляется
с помощью служебного слова record, вслед
за которым описываются компоненты записи.
Завершается описание записи служебным
словом end.
Данная курсовая работа представляет
собой работу с базами данных (БД) на языке
Турбо Паскаль.
1. НАЗНАЧЕНИЕ И ОБЛАСТЬ
ПРИМЕНЕНИЯ
Программа предназначена для
облегчения труда рабочего персонала аэропорта.
Программа настроена на работу
с вылетом самолета для нескольких
рейсов.
В самолете максимальное количество
мест равно 20.
2. ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
2. 1. ПОСТАНОВКА ЗАДАЧИ
Разработать алгоритм и построить приложение
справочной службы аэропорта. Программа
должна обладать следующей функциональностью:
добавление, удаление, редактирование,
просмотр информации о проданных местах
на весь месяц, просмотр информации о количестве
свободных мест на заданное число, просмотр
информации о проданных местах на заданное
число, выход. Программа должна выдавать
справки об авиарейсах из Москвы в Санкт-Петербург.
Программа должна распределять свободные
билеты автоматически на вновь обратившихся
пассажиров. Доступен один самолет в одном
направлении на 20 мест.
При загрузке программы данные
о пассажирах с жесткого диска должны
попадать в оперативную память, где над
ними производятся вышеперечисленные операции. При закрытии программы,
данные должны сохраняться на жестком
диске. Среда разработки: Turbo Pascal 7/0.
2.2. Описание программы и алгоритма программы
с описанием функций и составных частей
и связей между ними. Описание входных
и выходных данных.
В программе были использованы
следующие константы: RD – означает чтение из файла,
WR – запись в файл, Pp – массив строк (наименования
пунктов главного меню прогр.), Ai – массив
строк (наименования пунктов подменю
программы), Max – Максимальное количество
мест на самолет.
А также были использованы:
- типы записи: “Dt” – дата вылета самолета (рейса), “Kl” – данные о пассажире, “Reis” – данные рейса.
- глобальные переменные:
- Rs (переменная типа Reis) - хранится информация по текущему рейсу, с которым идет работа.
- F (переменная типа File) – описание файла, где будет храниться информация о рейсе.
- R_d (переменная целого типа) – день рейса.
- R_m (переменная целого типа) – месяц рейса.
- Ss (переменная строкового типа) – путь к текущему каталогу.
При работе в программе с уже созданным рейсом входными
данными в программе является массив записей
(тип RECORD) – это структура данных, состоящая
из фиксированного числа компонент, называемых
полями. Полями в массиве записей “Дата
рейса” в данной программе являются: d,
m, g, где: d – день рейса, m – месяц рейса,
g – год рейса.
Полями в массиве записей “Пассажир”
в данной программе являются: F, P, M, где:
F – фамилия пассажира, P – паспорт пассажира,
M – номер места в самолете.
Полями в массиве записей “Рейс”
являются: Sv, Ps, K, D, где: Sv – свободные номера
в самолете, Ps – массив записей - данные
о пассажирах текущего рейса, K – количество
пассажиров в самолете, D – дата рейса.
Данные хранятся в переменной “Rs” типа “Reis”
в файле в текущей директории и папке,
откуда был произведен запуск файла “AIRO_MOS.EXE”.
Наименование файла с данными формируется
из даты рейса (вылета самолета), которую
вводил пользователь. Входные данные можно
представить в виде следующей схемы:
Выходными данными является
также переменная “Rs” типа “Reis”. С исходными
данными в процессе выполнения программы
могли быть выполнены следующие действия:
добавление данных, удаление, редактирование,
просмотр информации по разным параметрам.
Теперь опишем используемые
процедуры.
- Procedure Enter; - выполняется в конце процедур - пунктов меню. Выводит на экран сообщение об ожидании нажатия клавиши Enter и ждет нажатие соответствующей клавиши.
- Procedure InfoFile(W_R:integer); - процедура записи/чтения в/из файл(а) информации. Записывает данные из Rs в файл и получает данные из файла в Rs. Входным параметром является W_R. Может принимать значения: RD-чтение и WR-запись, где RD и WR – это константы. Если процедуре был передан параметр RD, то с помощью процедуры reset файл открывается для чтения, SizeOf(Rs) определяет размер блока, который нужно использовать при передаче данных. Параметр F – переменная файлового типа, связанная с внешним файлом (где хранится база данных), с использованием процедуры Assign. Затем процедура BlockRead1 считывает данные из файла в Rs. Если процедуре был передан
параметр WR, то с помощью процедуры rewrite создается и открывается новый файл. Процедура BlockWrite записывает данные из Rs в файл. По окончании всех действий процедурой Close закрывается ранее открытый файл.
- Procedure Out; - процедура вывода данных о всех пассажирах текущего рейса на экран. На экране данные отображаются по одному пассажиру. Внизу экрана выводится подсказка, которая говорит, как перейти на предыдущую или следующую информацию о пассажире (управляется с помощью клавиш управления курсором стрелки влево или вправо). Выход из просмотра реализуется с помощью нажатия клавиши ESC. Рассмотрим переменные, используемые в данной процедуре: i: integer; (переменная целого типа) – используется в качестве счетчика пассажиров в массиве, Key: char; (переменная символьного типа) – используется для получения кода нажатой клавиши.
- Procedure Prosmotr(z,z2:integer); - процедура просмотра свободных мест и информации о пассажирах. Если входной параметр z равен 0, то вызывается процедура
Out, которая выводит информацию о пассажирах, иначе – выводятся
номера всех свободных мест данного рейса.
Переменная j используется в качестве счетчика цикла “for”. По окончании всех действий
выполняется процедура Enter, назначение которой было рассмотрено
выше.
- Procedure Add; - процедура добавления данных о новом пассажире в БД. Если количество пассажиров в БД не равно максимальному количеству Max, то данные можно добавлять в БД, иначе будет выдано соответствующее сообщение на экран, и выход на конец процедуры. Затем вводятся данные о пассажире и с помощью процедуры InfoFile записываются в файл. По окончании всех действий выполняется процедура Enter.
- Procedure Del; - Процедура удаления пассажира
из самолета (освобождения места). Сначала проверяется на наличие данных в БД, затем запрашивается у пользователя номер места в самолете, который
требуется освободить. Количество пассажиров Rs.K уменьшается на 1, а сами данные сдвигаются снизу вверх, затирая выбранную запись для удаления. Рассмотрим назначения переменных, используемых в данной процедуре: 1) переменная целого типа I – счетчик, который увеличивается с шагом 1, если его значение превысит значение Rs.K, то произойдет выход из цикла for; 2) переменная целого типа j – порядковый номер удаляемого пассажира. После удаления из БД, измененные данные записываются в файл процедурой InfoFile. По окончании всех действий выполняется процедура Enter.
- Procedure Izm; - процедура редактирования выбранного пассажира в БД. Сначала проверяется на наличие данных в БД (if Rs.K=0), затем запрашивается у пользователя номер места. Если номер места найдено в самолете, то на экран выводится текущее значение каждого поля найденной записи и вместо нее вводится другое значение. Рассмотрим назначения переменных: 1) переменная целого
типа n – хранит введенный номер места в самолете; 2) переменная целого типа j – счетчик цикла repeat-until, изменяется от 1 до Rs.K (максимальное количество пассажиров данного рейса) с шагом 1; 3) переменная целого типа ff – результат поиска введенного номера места в БД, если такой номер в БД не обнаружен, то переменная ff будет равна false, иначе – true. После редактирования данных в БД измененная информация записывается в файл процедурой InfoFile. По окончании всех действий выполняется процедура Enter.
- Procedure ProsmotrMonth; - процедура просмотра проданных мест за весь месяц. Сначала происходит инициализация
исходных данных: массивы M1 и M2, в которых содержится количество дней в каждом месяце и наименование месяцев соответственно. Затем происходит ввод
номера месяца, после чего вычисляется
соответствующее количество дней в заданном
месяце. В цикле “for” на диске ищутся все файлы
данного месяца, из них считывается информация
о проданных местах и выводится на экран.
Переменные I и j используются в качестве счетчиков цикла “for”. Строковая переменная N необходима для формирования имени файла. По окончании всех действий
выполняется процедура Enter.
- Procedure PodMenu; - процедура вывода подменю программы на экран. Ожидается нажатие клавиши для дальнейших действий программы (от 1 до 7). Рассмотрим назначения переменных,
используемых в данной процедуре: 1) переменная
целого типа i – счетчик цикла for; 2) переменная символьного типа key – хранит код нажатой клавиши, может принимать значения от 1 до 7 (номера пунктов меню). Если был выбран седьмой пункт меню или нажата клавиша ESC (код 27), то произойдет выход из процедуры.
- procedure Reisy(z:integer); - процедура создания/поиска рейса. Алгоритм процедуры следующий:
- Сначала вводится месяц рейса. Автоматически после
ввода значения справа появляется наименование
месяца. Если значение месяца введено
верно, то есть лежит в диапазоне от 1 до
12 включительно, то предлагается ввести
день рейса, иначе будет выведено на экран
соответствующее сообщение.
- После ввода дня рейса проверяется
на корректность данных, то есть существует
ли такое число текущего года (2006) заданного
месяца. Если значение введено неверно,
то будет выведено на экран соответствующее
сообщение.
- Далее проверяется на корректность введенной даты по условию задания, то есть рейсы должны быть через день, начиная с 1 января.
- Затем формируется наименование
файла, в котором будет храниться вся информация
о пассажирах и рейсе.
- Если был выбран пункт меню
“Создать рейс”, то выполняется инициализация переменных и создается
файл. Если был выбран пункт меню “Поиск
рейса”, то ищется соответствующий файл
по введенной дате рейса. Если файл не
найден, то выдается соответствующее сообщение
и выход в главное меню программы, иначе
– загружается подменю программы.
- Procedure MainMenu; - процедура вывода главного меню программы. Ожидается нажатие клавиши для дальнейших действий программы (1, 2 или 3). Рассмотрим назначения переменных,
используемых в данной процедуре: 1) переменная
целого типа i – счетчик цикла for; 4) переменная символьного типа key – хранит код нажатой клавиши, может принимать значения 1, 2 или 3. Если был выбран последний пункт меню или нажата клавиша ESC (код 27), то произойдет выход из программы с помощью процедуры halt(0).
- Основная программа. С помощью процедуры GetDir получаем путь текущего каталога, который сохраняется в глобальной переменной ss. Затем выводится главное меню программы. Выход из программы происходит из главного меню по нажатию клавиш Esc или 3.
2.3. Выбор состава технических
и программных средств
Технические средства, необходимые
для оптимальной работы разработанной
программы: Pentium 100MHz/16MB RAM, OS: Windows98,2000,XP,
HDD: 100kB свободного места, Наличие файла
“AIRO_MOS.EXE”.
Аппаратные средства ЭВМ, используемые при разработке курсовой
работы: IBM PC с процессором Intel Pentium III 0,8
GHz; 128МБ ОЗУ; Видеокарта 8МБ ОЗУ int; SVGA (1024
x 768 при 90 Hz) цветной монитор 17" с поддержкой
32 бита на пиксель; 1000 МБ свободного места
на диске; Cd-rom, Fdd.
А также: OS: Windows2000, Наличие файлов
“ AIRO_MOS.EXE” и “*.BD” в одной директории.
Вместо звездочки подразумевается дата
рейса, например: 1_1_06.BD или 2_1_06.BD.
3. ИСТОЧНИКИ, ИСПОЛЬЗОВАННЫЕ
ПРИ РАЗРАБОТКЕ
При разработке программы информация
по процедурам BlockRead и BlockWrite была взята
из книги “Дериев И.И., Токарь С.В. Справочник
по процедурам и функциям Borland Pascal with
Objects 7.0. Киев 1993г.”.
Материал для пункта “Введение”
был использован из источника “Белецкий
Я. Турбо Паскаль с графикой для персональных компьютеров.
Москва 1991г.”.
4. РАЗРАБОТКА ПРОГРАММЫ
- На первом этапе было создано
меню.
- На втором этапе – процедура
записи и чтение в/из файла.
- На 3-м этапе – процедура ввода
данных.
- На 4-м этапе – процедура вывода
данных.
- На 5-м этапе – процедура удаления.
- На 6-м этапе – процедура просмотра
проданных билетов за месяц.
- На 7-м этапе – процедура просмотра
проданных билетов на заданное число.
- На 8-м этапе – процедура просмотра
свободных мест на заданное число.
5. ТЕСТИРОВАНИЕ
ПРОГРАММЫ
Для проверки правильности
работы алгоритма были выполнены следующие
действия:
- По номеру пункта должны были
выполняться соответствующие процедуры
в программе. С помощью пошагового выполнения
программы (F8) была произведена проверка.
- Введенные данные должны были записаться в файл.
- Далее была произведена проверка
чтения данных из файла. Все ранее введенные
данные должны быть отражены на экране
компьютера в виде таблицы. Сравнили полученные
результаты на компьютере и сделанные
вручную. Получили положительный результат.
- Удалили пассажира по номеру
места в самолете. Выбрали пункт меню “
6. Кол-во свободных мест на заданное число”.
В списке занятый номер стал свободным.
6. ВНЕДРЕНИЕ
Программа разработана на языке
Турбо Паскаль 7.0. Программа предназначена
для формирования БД (данных рейсов самолета,
вылетавшего в одном направлении из Москвы
в Санкт-Петербург, и данных о пассажирах
данного рейса). Программа ориентирована
на служащих, работающих в аэропорте, которые
продают билета на самолет.
Найдите файл “AIRO_MOS.EXE”, установите на него
курсор и нажмите Enter. Сначала выводится
главное меню программы, где пользователю
предлагается создать новый рейс или продолжить
работу с уже имеющимся. Пункты меню выбираются
по цифровым клавишам: 1, 2, 3. При выборе
первого пункта меню пользователь с клавиатуры
задает наименование создаваемой новой
БД, которой автоматически создается файл
на компьютере. Дальше выводится подменю
программы, в котором пользователю предлагается
сделать выбор из следующих действий:
- 1. Добавить новые данные;
- 2. Удалить данные;
- 3. Изменить данные;
- 4. Проданные места за месяц;
- 5. Проданные места на заданное число;
- 6. Кол-во свободных мест на заданное число;
- 7. Выход в главное меню.
Если был выбран второй пункт
главного меню (открыть БД), то дальше предлагается ввести наименование
БД для открытия и работы с ней. Если такая
БД найдена, то выводится подменю программы.
При выборе третьего пункта главного меню
программы происходит выход из программы.
Теперь рассмотрим функционал
пунктов подменю программы:
- 1. Добавить новые данные – предлагается возможность добавить данные в БД, если есть еще место в БД.
- 2. Удалить данные – вводится номер места, по которому
будут найдены данные в БД и удалены, то есть номер в самолете становится свободным.
- 3. Изменить данные - вводится номер места, если запись найдена с таким номером, то пользователь имеет возможность изменить данные этой записи.
- 4. Проданные места за месяц – выводится полная информация
о проданных местах за каждый день выбранного
месяца.
- 5. Проданные места на заданное число, 6. Кол-во свободных мест на заданное число – осуществляется по двум направлениям:
просмотр свободных мест в самолете и
просмотр проданных мест в самолете.
- 7. Выход в главное меню - Выход из подменю программы в главное меню.
ЗАКЛЮЧЕНИЕ
В процессе выполнения курсового
проекта научилась работать с записями, файлами
Турбо Паскаль 7.0. А также научилась реализовывать
алгоритмы поиска, добавления, удаления
и просмотра информации.