Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авиосправочник 
:(
    Опции темы
Natalia2005
Дата 17.4.2013, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 17.4.2013

Репутация: нет
Всего: нет



Здравствуйте! Помогите пожалуйста решить задачу. 
 Текст задачи: Написать программу, реализующую авиасправочник. В справочнике содержится следующая информация о каждом рейсе: номер рейса, пункт назначения, цена билета. Реализовать вывод всей информации из справочника, поиск пункта назначения по номеру рейса. Реализовать поиск по пункту назначения с указанием максимально возможной цены билета (должны быть выведены все рейсы, цена билета на которые ниже указанного значения) Для удобства работы реализовать меню с соответствующими пунктами.
 Задачу я почти решила, но мне еще надо предусмотреть случай, если, например города нет или цена билета ниже указанной цены, и если нет информации в базе то выводилось бы сообщение: "Нет информации". Я для poisk вывела, а для poisk_max и для вывода все информации вывести не могу. За ранее Вам благодарна!!!

DOMAINS 
reis, punkt = String
cena = integer
file=f 
DATABASE 
sprav(reis, punkt)
cenaa(reis, cena)
PREDICATES
print_base
reis_punkt(reis, punkt)
reis_cena(reis, cena)
poisk_max(punkt, cena)
m(char) 
menu 
start 
CLAUSES 
reis_punkt(Reis,Sprav):- 
                   sprav(Reis,Sprav),!. 
reis_punkt(_,"net informazii").
reis_cena(Reis,Cena):-cenaa(Reis,Cena),!.             
menu:-
     clearwindow, 
     write("1 poisk"),nl,
     write("2 info"),nl,
     write("3 Dobavlenie"),nl,
     write("4 Poisk2"),nl,  
     write("5 Ydalenie"),nl,
     write("0 Vixod"),nl,
     readchar©, 
m©.
m('1'):- 
       clearwindow, 
       write("Nomer reisa"), nl, 
       readln(Reis),
       reis_punkt(Reis, Sprav), 
       write("Punkt naznachenija: ",Sprav), 
       readchar(_), 
menu.
m('2'):-clearwindow,
         print_base,
         readchar(_),
         menu.
m('3'):- 
       clearwindow, 
       write("Nomer reisa"),nl,
       readln(Reis),
       write("Vvedi punkt naznachenija"),nl,
       readln(Punkt),
       write("Vvedi ceny"),nl,
       readint(Cena),
       assert(sprav(Reis,Punkt)), 
       assert(cenaa(Reis,Cena)),                  
       menu.
m('4'):- 
       clearwindow,
       write("Vvedi gorod "),nl,
       readln(Punkt),
       write("Vvedite max ceny"),nl,
       readint(Cena),       
       poisk_max(Punkt, Cena),
       readchar(_),                    
menu.                 
m('5'):- 
       clearwindow, 
       
       write("Ykajite nomer reisa zapis o kotorom nyjno ydalit"), nl, 
       readln(Reis), 
       retract(sprav(Reis,_)),
       retract(cenaa(Reis,_)), 
       menu.
m('0'):- 
save("avia"), 
retractall(_).
m(_):- 
       menu.
print_base:-sprav(Reis,Punkt),
            cenaa(Reis,Cena),
write(Reis," ",Punkt," ",Cena," "),nl,fail.
print_base.
poisk_max(Punk, Cen) :- sprav(Reis, Punk),
                        cenaa(Reis, Cena),
                        Cena<=Cen,
                        write(Reis," ",Punk," ",Cena," "), nl, fail.
                        poisk_max(Punkt, Cena).
start:-
       existfile("avia"),!, 
       consult("avia"), 
       menu. 
start:-
       openwrite(f,"avia"), 
                          
       closefile(f),
       menu. 
GOAL
Start

Нам предлагали добавить дополнительный предикат:

poisk_max1(Punk, Cen):-poisk_max(Punk, Cen),!.
poisk_max1(Punk, Cen):-write("Не нашлось рейсов в ",Punk," стоимостью не выше ",Cen).
Но куда это нужно добавить мы не знаем, у нас все равно не выдает то, что нужно!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0991 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.