Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с БД.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
109.8 Кб
Скачать

Практическая работа №8 (4 ч)

Задание

  1. Проработать нижеприведенную информацию: внимательно читать и отрабатывать практические примеры, только после этого работать над индивидуальным заданием!!!

  2. Сравнить с информацией в конспекте и дополнить недостающей информацией.

  3. По теме «Создание БД с помощью массива и в виде записей файла. Обработка БД» - 4 часа

а) разобрать описание программ и алгоритмы выполнения процедур и функций

б) отладить программу создания массива записей, приведенную в файле massiv.pas;

в) составить общую структуру взаимодействия процедур;

г) отладить программу создания файла записей, приведенную в файле db.pas, и дополнительных модулей Input.pas и File_Rec.pas;

д) составить математическое (словесное описание) программы;

е) оформить в электронном виде отчет по учебной практике, добавив п.2.3.15 Создание и обработка базы данных с описанием выполненного задания, согласно требований к оформлению курсовых и дипломных проектов;

ж) сохранить загрузочные файлы (*.exe) на сервере техникума

  1. Каждое задание рассчитано на выполнение во время занятия!!!

Создание массива записей (баз данных) и их обработка

ЦЕЛЬ РАБОТЫ: Создать массив записей (базу данных) в соответствии с заданной структурой. Количество записей не больше 10.

Рис.1. Структура записи «ТОВАР»

ПОСТАНОВКА ЗАДАЧИ

  1. Реализовать редактирование записей (изменение, добавление, удаление).

  2. Реализовать вывод содержимого записи по следующим ключам:

  • по номеру записи;

  • по наименованию товара;

  • по стоимости товара;

  • по году поступления товара.

  1. Вычислить общее количество товаров за определенный год (запрос).

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

  3. Исходные данные должны вводиться с проверкой на область допустимых значений.

  4. Все действия пользователя должны контролироваться и снабжаться осмысленными сообщениями.

Структура записи «товар»

На алгоритмическом языке Pascal структура, изображенная на рис. 1, может быть описана следующим образом:

data= record { дата поступления товара }

day : byte; {день}

year : word; {год}

month : byte; {месяц}

end;

RecType= record {Запись «товар»}

naimt : string[LenNaimt]; {наименование товара}

kolt : longint; {количество товара}

stoimt : real; {стоимость товара}

dmg : data; { дата поступления товара }

end;

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

Рисунок 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, управление передается в основную программу и программа завершает свою работу.