Смекни!
smekni.com

Информационно-справочная система, обеспечивающая работу с базой данных Bit (стр. 2 из 5)

║working(0)║ ║ ║ working(1) ║ ║ ║working(2)║ ║ ║working(3)║

║──────────║ ║ ║─────────────║ ║ ║──────────║ ║ ║──────────║

║Информация║ ║ ║Корректировка║ ║ ║ Удаление ║ ║ ║ Просмотр ║

║о системе║ ║ ║ данных ║ ║ ║ данных ║ ║ ║ базы ║

╚══════════╝ ║ ╚══════╦══════╝ ║ ╚═════╦════╝ ║ ╚═════╦════╝

╔═════════════╣ ╔╝ ║ ╚╗ ║ ╚═════╗

║ ║ ║ ║ ║ ╚═╗ ║

║ ╔═════╩═════╗ ║ ╔══════╩══════╗ ║ ╔═════╩════╗ ║

║ ║ working(4)║ ║ ║ working(5) ║ ║ ║working(6)║ ║

║ ║───────────║ ║ ║─────────────║ ║ ║──────────║ ║

║ ║ Процедура ║ ║ ║ Процедура ║ ║ ║ Создание ║ ║

║ ║загрузки БД║ ║ ║сохранения БД║ ║ ║ новой БД ║ ║

║ ╚═════╦═════╝ ║ ╚══════╦══════╝ ║ ╚══════════╝ ║

║ ║ ║ ╚══════╗ ║ ║

║ ╚╗ ╠═══════╦══════╗ ║ ╚═══════════╗ ║

║ ╔══════════╗ ║ ║ ║ ║ ╚═════╗ ║ ║

║ ║working(7)║ ║ ╔════╩═════╗ ║ ╔════╩═════╗ ║ ╔═════╩═════╗ ║

╠═╣──────────║ ║ ║correct(1)║ ║ ║correct(2)║ ║ ║ accept(N) ║ ║

║ ║ Выход ║ ║ ║──────────║ ║ ║──────────║ ║ ║───────────║ ║

║ ╚══════════╝ ║ ║Изменение ║ ║ ║Ввод новых║ ║ ║Определение║ ║

║ ╔══════════╗ ║ ║ данных ║ ║ ║ данных ║ ║ ║ удаляемой ║ ║

║ ║working(_)║ ║ ╚══════════╝ ║ ╚══════════╝ ║ ║ записи ║ ║

╚═╣──────────║ ║ ╔═══════╩════════╗ ║ ╚═══════════╝ ║

║ Обработка║ ║ ║ correct(_) ║ ║ ║

║ ошибки ║ ║ ║────────────────║ ║ ║

╚══════════╝ ║ ║ выход в главное║ ║ ╔═══╝

║ ║ меню ║ ║ ║

║ ╚════════════════╝ ║ ║

║ ║ ║

║ ║ ║

(1) (2) (3)

(1) (2) (3)

║ ║ ║

║ ║ ╚══╗

║ ╚═══════════╗ ║

╔═══════╩═══════╦════════════╦══════════════╗ ║ ║

╔═════╩══════╗ ╔══════╩════╗ ╔═════╩══════╗ ╔═════╩════╗ ║ ║

║ load_bd(1) ║ ║ load_bd(2)║ ║ load_bd(3) ║ ║load_bd(4)║ ║ ║

║────────────║ ║───────────║ ║────────────║ ║──────────║ ║ ║

║ Загрузка ║ ║ Загрузка ║ ║ Загрузка ║ ║ Загрузка ║ ║ ║

║основной БД ║ ║основной БД║ ║ новой БД ║ ║ новой БД ║ ║ ║

║ из файла ║ ║ из файла ║ ║ из файла ║ ║ из файла ║ ║ ║

║пользователя║ ║ bit.dat ║ ║пользователя║ ║ bstud.dat║ ║ ║

╚════════════╝ ╚═══════════╝ ╚════════════╝ ╚══════════╝ ║ ║

║ ║

╔═══════════════╦════════════╦══════════════╦══════╝ ║

╔═════╩══════╗ ╔══════╩════╗ ╔═════╩══════╗ ╔═════╩════╗ ║

║ save_bd(1) ║ ║ save_bd(2)║ ║ save_bd(3) ║ ║save_bd(4)║ ║

║────────────║ ║───────────║ ║────────────║ ║──────────║ ║

║ Сохранение ║ ║ Сохранение║ ║ Сохранение ║ ║Сохранение║ ║

║основной БД ║ ║основной БД║ ║ новой БД ║ ║ новой БД ║ ║

║ в файле ║ ║ в файле ║ ║ в файле ║ ║ в файле ║ ║

║пользователя║ ║ bit.dat ║ ║пользователя║ ║ bstud.dat║ ║

╚════════════╝ ╚═══════════╝ ╚════════════╝ ╚══════════╝ ║

╔═══════════════════╦═══════════════════╦═════════╝

╔══════╩══════╗ ╔══════╩══════╗ ╔══════╩══════╗

║ view(1) ║ ║ view(2) ║ ║ view(_) ║

║─────────────║ ║─────────────║ ║─────────────║

║ Просмотр ║ ║ Просмотр ║ ║ Выход ║

║ основной БД ║ ║ новой БД ║ ║ в меню ║

╚═════════════╝ ╚═════════════╝ ╚═════════════╝

Процедуры создавались на основе требований, изложенных в за-

дании к курсовой работе.

С помощью процедуры Begin в разделе GOAL инициируется нача-

ло выполнения программы. Эта процедура запускает процедуру на-

чальной загрузки базы данных Autoload, после чего передает управ-

ление процедуре вывода главного меню Main_menu.

Эта процедура выводит список пунктов главного меню и ожи-

дает от пользователя ввода числа, которое будет занесено в пере-

менную C. После этого вызывается процедура обработки основных ре-

жимов Working, в которую переменная C передается в качестве аргу-

мента. В процедуре использован предикат Repeat, в связи с этим

после возврата из процедуры Working в случае, если C не равно 7

происходит повторный вывод пунктов меню и ожидание ввода числа.

Процедура Autoload предназначена для автоматической загруз-

ки основной базы данных при запуске программы. Это значительно

облегчает работу с системой, так как не требуется при запуске

программы подгружать основную БД из режима "Загрузка". Процедура

Autoload проверяет существование на диске файла bit.dat с по-

мощью встроенного предиката existfile и подгружает БД в память с

помощью предиката consult. В случае отсутствия файла выдается

сообщение об ошибке.

Данная процедура выводит информацию о языке, на котором на-

писана система и данные о создателе.

Процедура Working(1) служит для вывода меню режима коррек-

ции данных, находящихся в БД, и внесения новых записей. После ак-

тивизации процедура выводит меню в котором имеются режимы: "Изме-

нение данных", "Добавление данных" и "Выход в меню". Активизация

режимов происходит аналогично главному меню с помощью нажатия

соответствующей цифровой клавиши. Считанное с клавиатуры число

заносится в переменную X, после чего вызывается процедура

Correct, аргументом которой служит X. С помощью процедур

Correct(1) и Correct(2), описанных ниже, собственно и реализует-

ся режимы коррекции и добавления. В процедуре Working(1) также

применен предикат Repeat, с помощью которого реализован повтор-

ный вывод меню в случае ошибки ввода.

Данная процедура предназначена для удаления записей из базы

данных. В программе предусмотрена возможность задания либо номе-

ра удаляемой записи, либо фамилии абитурьента, содержащейся в

данной записи. Эта возможность реализуется процедурой Accept,

описанной ниже. Процедура Accept возвращает номер выбранной запи-

си и с помощью встроенного предиката retract запись удаляется из

базы данных. В случае ошибки (отсутствия записи, выбранной

пользователем для удаления) выводится соответствующее сообщение

(процедура Error).

Процедура Working(3) выводит меню, содержащее пункты: "Прос-

мотр основной базы", "Просмотр базы BSTUD" и "Выход в главное ме-