IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Работа с базой данных, База данных "расписание" на Прологе
сообщение
Сообщение #1


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +




Всем привет)) Возникла трудность в написании кода программы..дана задача..база данных "Расписание" описывает связи между учебной группой, преподавателем, временем занятия, аудиторией и её техническим состоянием(под тех состоянием понимаеться--- аудитория открыта или закрыта или компьютерный класс или лекционный класс и т.д.)
Даже не знаю с чего начать..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Для начала описать структуру таблиц (таблица преподавателей, групп...) и их связи друг с другом.
На чем пишешь?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Вроде ж написано: "На Прологе". Так что не все так просто smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


не заметил что в названии темы указано smile.gif ну тогда только теорией могу помочь smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
****

Группа: Пользователи
Сообщений: 318
Пол: Мужской

Репутация: -  0  +


сделано)


Код
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 мин.
Что в этом коде можно упростить, но не так уж чтоб препод заметил что делал прогу какой нить проффи)

Сообщение отредактировано: dron4ik -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.03.2024 17:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name