Привязка 2 книг к одному автору - Prolog

Узнай цену своей работы

Формулировка задачи:

Есть программа библиотека, и нужно привязать n-книг к одному автору. Чтобы при выборе автора выводило его книги а не только одну. Помогите это реализовать
Листинг программы
  1. Domains
  2. book_name,author=string
  3. file=f
  4. Database
  5. catalog(book_name,author)
  6. Predicates
  7. m(char)
  8. menu
  9. start
  10. Clauses
  11. menu:-
  12. clearwindow,
  13. write("1 Search book name by author;"),nl,
  14. write("2 Search information about author by book name;"),nl,
  15. write("3 New entry in the book catalog;"),nl,
  16. write("4 Change name of the book;"),nl,
  17. write("5 Delete record from the book catalog;"),nl,
  18. write("0 Exit."),nl,
  19. readchar(C), m(C).
  20. m('1'):-
  21. clearwindow,
  22. write("Enter author:"), nl,
  23. readln(Auth),
  24. catalog(Name, Auth),
  25. write("Book name: "),nl,
  26. write(Name),
  27. readchar(_),
  28. menu,!.
  29. m('1'):-write("Book with no author in the catalog!"),readchar(_),menu.
  30. m('2'):-
  31. clearwindow,
  32. write("Enter name of the book:"),nl,
  33. readln(Name),
  34. catalog(Name, Auth),
  35. write("Author: "),nl,
  36. write(Auth),
  37. readchar(_),
  38. menu.
  39. m('2'):-write("In DB is not such a book with the author!"),readchar(_),menu.
  40. m('3'):-
  41. clearwindow,
  42. write("Enter name of the book:"),nl,
  43. readln(Name),
  44. write("Enter author:"),nl,
  45. readln(Auth),
  46. assert(catalog(Name,Auth)),write("Successful adding!"),readchar(_), menu,!.
  47. m('3'):-write("Error!"),readchar(_),menu.
  48. m('4'):-
  49. clearwindow,
  50. write("Enter author:"),nl,
  51. readln(Auth),
  52. write("Enter new name of the book:"),nl,
  53. readln(Name),
  54. retract(catalog(_,Auth)),
  55. assert(catalog(Name,Auth)),write("Renaming was successful!"),readchar(_),menu,!.
  56. m('4'):-write("Error!"),readchar(_),menu.
  57. m('5'):-
  58. clearwindow,
  59. write("Enter book name,a recordof which must be removed"), nl,
  60. readln(Name),
  61. retract(catalog(Name,_)),write("Successful removed!"),readchar(_),
  62. menu,!.
  63. m('5'):-write("Error"),readchar(_),menu.
  64. m('0'):-
  65. save("catalog.ddb "),
  66. retractall(_).
  67. m(_):-
  68. menu.
  69. start:-
  70. existfile("catalog.ddb"),!,
  71. consult("catalog.ddb"),
  72. menu.
  73. start:-
  74. openwrite(f,"catalog.ddb"),
  75. closefile(f),
  76. menu.
  77. GOAL
  78. Start

Решение задачи: «Привязка 2 книг к одному автору»

textual
Листинг программы
  1. m('1') :-
  2.        clearwindow,
  3.        write("Enter author:"), nl,
  4.        readln(Auth),
  5.        write("Book names: "),nl,
  6.        catalog(Name, Auth),
  7.        write(Name), nl,
  8.        fail.
  9. m('1') :- write("--- No more book by this author in the catalog!"), readchar(_), menu.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы