Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_#1_2сем_2012.doc
Скачиваний:
2
Добавлен:
04.05.2019
Размер:
310.78 Кб
Скачать

Структура базы данных «товаРы»

Запись 1

Запись 2

. . .

Запись i

Рис. 2. Массив записей Mas : Array [1.. ColRec] of RecType

В программе предусмотрен жесткий контроль ввода исходных данных (символьных, целочисленных и вещественных) - см. Процедуры InputString, InputNumber, InputReal. Вывод информационных и аварийных сообщений оформлен единообразно - через процедуру OutMessageXY. Для ориентации пользователя в количестве допустимых символов для каждого поля записи введена процедура OutPutString. В данной программе задействованы такие понятия, как атрибут вывода (переменная TextAttr), позиция курсора (WhereX, WhereY, GotoXY), а также обработка обычных (ESC, ENTER, пробел, символы псевдографики) и расширенных ASCII-кодов (клавиш - стрелок).

Описание программы и алгоритмов

В процессе детализации предложенного текста программы следует составить структурную схему программы, что поможет в выполнении задания.

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

Описание главной программы

Сначала очищается экран, затем в цикле REPEAT - UNTIL выводится главное меню через обращение к функции MainMenu. Условие выхода из цикла - MainMenu = TRUE.

Алгоритм выполнения функции MainMenu

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

В бесконечном цикле REPEAT...UNTIL FALSE анализируется код нажатой клавиши (Ch), если он равен #32 (код клавиши пробел) или #13 (код клавиши ENTER), то в зависимости от того, на какой строке находится курсор (номер строки запоминается в переменной I, число выводимых строк меню равно 8), управление передается следующим процедурам, используя оператор CASE:

case i of

1: InputRecord; {Создать массив записей}

2: OutRecord(MaxElem); {Вывести данные на экран}

3: Zapros1; {Вычислить общее количество товаров за определенный год}

4: KeyRec; {Вывести содержимое записи по ключу}

5: AddRecord; {Добавить запись}

6: ChangeDel(true); {Изменить запись}

7: ChangeDel(false); {Удалить запись}

8: begin

Mainmenu := true;

exit;

end;

Если курсор находится на 8 строке и нажата клавиша ENTER или пробел, функция Mainmenu получает значение true, управление передается в основную программу и программа завершает свою работу.