Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Работа с базой данных

Автор: dron4ik 21.04.2010 21:54



Всем привет)) Возникла трудность в написании кода программы..дана задача..база данных "Расписание" описывает связи между учебной группой, преподавателем, временем занятия, аудиторией и её техническим состоянием(под тех состоянием понимаеться--- аудитория открыта или закрыта или компьютерный класс или лекционный класс и т.д.)
Даже не знаю с чего начать..

Автор: Client 21.04.2010 22:39

Для начала описать структуру таблиц (таблица преподавателей, групп...) и их связи друг с другом.
На чем пишешь?

Автор: volvo 21.04.2010 22:41

Вроде ж написано: "На Прологе". Так что не все так просто smile.gif

Автор: Client 21.04.2010 22:46

не заметил что в названии темы указано smile.gif ну тогда только теорией могу помочь smile.gif

Автор: dron4ik 22.04.2010 0:33

сделано)


Код
domains
    TTime = STRING
    TGroup = STRING
    TTeacher = STRING
    TRoom = STRING
    TStatus = STRING
    FILE = dbase----> ЖАЛУЕТСЯ СЮДА ЧТО ДОМАН ЭТОТ УЖЕ ГДЕ ТО ОПИСАН ИЛИ ИСПОЛЬЗОВАН.

facts
    item(TTime,TGroup,TTeacher,TRoom,TStatus)

predicates
    switch(INTEGER)    
    repeat

clauses
    repeat.
    repeat:-repeat.
            
    switch(Case):-Case='0',write("Good-bye...      "),nl,!.
    switch(Case):-Case='1',
        write('\10',"-[ ADD ]-------------------"),
        write('\10',"Time: "),readln(Time),
        write('\10',"Group: "),readln(Group),
        write('\10',"Teacher: "),readln(Teacher),
        write('\10',"Room: "),readln(Room),
        write('\10',"Tex status: "),readln(Status),
        assert(item(Time,Group,Teacher,Room,Status)),fail.
    switch(Case):-Case='2',
        write('\10',"-[ DELETE ]----------------"),
        write('\10',"Time: "),readln(Time),
        write('\10',"Group: "),readln(Group),
        write('\10',"Teacher: "),readln(Teacher),
        write('\10',"Room: "),readln(Room),
        write('\10',"Tex status: "),readln(Status),
        retract(item(Time,Group,Teacher,Room,Status)),fail.
    switch(Case):-Case='3',
        write('\10',"-[ EDIT ]------------------"),
        write('\10',"REPLACE ITEM "),
        write('\10',"Time: "),readln(Time),
        write('\10',"Group: "),readln(Group),
        write('\10',"Teacher: "),readln(Teacher),
        write('\10',"Room: "),readln(Room),
        write('\10',"Tex status: "),readln(Status),
        retract(item(Time,Group,Teacher,Room,Status)),
        write('\10',"NEW ITEM"),
        write('\10',"Time: "),readln(Time1),
        write('\10',"Group: "),readln(Group1),
        write('\10',"Teacher: "),readln(Teacher1),
        write('\10',"Room: "),readln(Room1),
        write('\10',"Tex status: "),readln(Status1),
        assert(item(Time1,Group1,Teacher1,Room1,Status1)),fail.        
    switch(Case):-Case='4',
        write('\10',"-[ SAVING ]----------------"),
        save("db.txt"),
        write('\10',"BD saved in file db.txt "),nl,fail.
    switch(Case):-Case='5',
        write('\10',"-[ LOADING ]---------------"),
        retractall(item(_,_,_,_,_)),
        consult("db.txt"),
        write('\10',"BD loaded from file db.txt "),
        fail.
    switch(Case):-Case='6',
        write('\10',"-[ PRINT ]-----------------"),
        item(Time,Group,Teacher,Room,Status),
        write('\10',"Time: ",Time),
        write('\10',"Group: ",Group),
        write('\10',"Teacher: ",Teacher),
        write('\10',"Room: ",Room),
        write('\10',"Tex status: ",Status),
        write('\10',"---------------------------"),fail.

goal
        repeat,    
        write('\10',"-[ MENU ]------------------"),
        write('\10',"[1]  ADD"),
        write('\10',"[2]  DELETE"),
        write('\10',"[3]  EDIT"),
        write('\10',"[4]  SAVE"),
        write('\10',"[5]  LOAD"),
        write('\10',"[6]  PRINT"),
        write('\10',"[0]  EXIT"),
        readchar(Sym),nl,switch(Sym),!.


Добавлено через 3 мин.
Что в этом коде можно упростить, но не так уж чтоб препод заметил что делал прогу какой нить проффи)