Разработка информационно-справочной системы "Зарплата по НИР" — страница 7

  • Просмотров 3266
  • Скачиваний 176
  • Размер файла 20
    Кб

вывода каж- дой записи с помощью предиката @CURSOR. Процедура выполняется до тех пор пока не кончатся все записи в базе. При просмотре созданной базы происходит работа с записями базы @ALEX1 . Процедура просмотра созданной базы - @viewbase . @5.7 Процедура создания новой базы Эта процедура должна обеспечивать удобное создание новой ба- зы из основной с заданными признаками. Она вызывается из процеду- ры упрвления основным меню командой @PROCESS(6)

. Процедура имеет свое меню вида: Ъ—————————————Создание новой базы—————————————————ї і Создать базу по именам и кафедрам - 1 і і Создать базу 'все о зарплате' - 2 і і Выход в меню - 3 і і >_ і і і і і А—————————————————————————————————————————————————Щ, т.е. пользователю предлагается выбор создания одной из двух баз, а так же выход из режима. После вывода в окне этого меню происходит ввод

целочислен- ной переменной @WHAT и в зависимости от ее содержания производит- ся одна из представленных операций. A Создание базы по именам и кафедрам Из основной базы @ALEX берется каждая запись и добавляется во вторую базу @ALEX1 с удалением из нее полей, содержащих информа- цию о зарплате. Процесс создания этой базы обеспечивает процеду- ра @newbase(1) , которая вызывается из процедуры создания базы. За- тем@ следует просмотр созданной базы

с помощью процедуры @viewbase . AСоздание базы 'все о зарплате' Из основной базы @ALEX берется каждая запись и добавляется во вторую базу @ALEX1 с удалением из нее полей, содержащих информа- цию об имени и кафедре. Процесс создания этой базы обеспечивает процедура @newbase(2) , которая вызывается из процедуры создания базы. Затем@ следует просмотр созданной базы с помощью процедуры @viewbase . После создания каждой базы происходит запись созданной

базы на диск под именем "ALEX1.DAT". @6. Текст программы DOMAINS i=integer s=symbol DATABASE-alex alex(s,s,s,s,i,i,i,i,i,i,i) DATABASE-alex1 alex1(s,s,s,s,i,i,i,i,i,i,i) PREDICATES start load path process(i) newbase(i) repeat viewbase GOAL start. CLAUSES /* процедура создания основного меню и загрузки базы данных */ start:- makewindow(1,2,7,"ЗАРПЛАТА ПО НИР",0,0,25,80), clearwindow, load, path. /* процедура поиска и загрузки файла содержащего базу данных */ load:- existfile("alex.dat"), consult("alex.dat",alex), cursor(1,2), write("База загружена"). load:- cursor(1,2),

write("Нет базы на диске"). path:- repeat, cursor(7,0), write(" 0 - О пpогpамме... "),nl, write(" 1 - коррекция данных"),nl, write(" 2 - удаление данных"),nl, write(" 3 - просмотр базы"),nl, write(" 4 - загрузка базы"),nl, write(" 5 - сохранение базы"),nl, write(" 6 - создание новой базы"),nl, write(" 7 - ввод новых данных"),nl, write(" 8 - выход из программы"),nl, write(" >"), readint(Choice), Choice >= 0, Choice < 9, clearwindow, process(Choice), clearwindow, Choice = 9, retractall(_), removewindow. /* О программе */