Привязка 2 книг к одному автору - Prolog
Формулировка задачи:
Есть программа библиотека, и нужно привязать n-книг к одному автору. Чтобы при выборе автора выводило его книги а не только одну. Помогите это реализовать
Листинг программы
- Domains
- book_name,author=string
- file=f
- Database
- catalog(book_name,author)
- Predicates
- m(char)
- menu
- start
- Clauses
- menu:-
- clearwindow,
- write("1 Search book name by author;"),nl,
- write("2 Search information about author by book name;"),nl,
- write("3 New entry in the book catalog;"),nl,
- write("4 Change name of the book;"),nl,
- write("5 Delete record from the book catalog;"),nl,
- write("0 Exit."),nl,
- readchar(C), m(C).
- m('1'):-
- clearwindow,
- write("Enter author:"), nl,
- readln(Auth),
- catalog(Name, Auth),
- write("Book name: "),nl,
- write(Name),
- readchar(_),
- menu,!.
- m('1'):-write("Book with no author in the catalog!"),readchar(_),menu.
- m('2'):-
- clearwindow,
- write("Enter name of the book:"),nl,
- readln(Name),
- catalog(Name, Auth),
- write("Author: "),nl,
- write(Auth),
- readchar(_),
- menu.
- m('2'):-write("In DB is not such a book with the author!"),readchar(_),menu.
- m('3'):-
- clearwindow,
- write("Enter name of the book:"),nl,
- readln(Name),
- write("Enter author:"),nl,
- readln(Auth),
- assert(catalog(Name,Auth)),write("Successful adding!"),readchar(_), menu,!.
- m('3'):-write("Error!"),readchar(_),menu.
- m('4'):-
- clearwindow,
- write("Enter author:"),nl,
- readln(Auth),
- write("Enter new name of the book:"),nl,
- readln(Name),
- retract(catalog(_,Auth)),
- assert(catalog(Name,Auth)),write("Renaming was successful!"),readchar(_),menu,!.
- m('4'):-write("Error!"),readchar(_),menu.
- m('5'):-
- clearwindow,
- write("Enter book name,a recordof which must be removed"), nl,
- readln(Name),
- retract(catalog(Name,_)),write("Successful removed!"),readchar(_),
- menu,!.
- m('5'):-write("Error"),readchar(_),menu.
- m('0'):-
- save("catalog.ddb "),
- retractall(_).
- m(_):-
- menu.
- start:-
- existfile("catalog.ddb"),!,
- consult("catalog.ddb"),
- menu.
- start:-
- openwrite(f,"catalog.ddb"),
- closefile(f),
- menu.
- GOAL
- Start
Решение задачи: «Привязка 2 книг к одному автору»
textual
Листинг программы
- m('1') :-
- clearwindow,
- write("Enter author:"), nl,
- readln(Auth),
- write("Book names: "),nl,
- catalog(Name, Auth),
- write(Name), nl,
- fail.
- m('1') :- write("--- No more book by this author in the catalog!"), readchar(_), menu.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д