Startpunkten
This commit is contained in:
49
Prolog_Database/db.pl
Normal file
49
Prolog_Database/db.pl
Normal file
@@ -0,0 +1,49 @@
|
||||
/********************************/
|
||||
/* Laboration 4 i Programspråk */
|
||||
/* Prolog */
|
||||
/********************************/
|
||||
/* Christian Ohlsson */
|
||||
/* Karlstads universitet 990525 */
|
||||
/********************************/
|
||||
|
||||
|
||||
book('C Lang', 'The C Programming Language', ['Kernighan B.W.', 'Ritchie D.M.'], 'Prentice Hall', '1988').
|
||||
book('C Lang', 'From C to C: An Intro to ANSI Standard C', ['Gardner J.'], 'Harcourt:Brace Jovanovic', '1989').
|
||||
book('Compilers', 'Compilers: Principles Techniques and Tools', ['Ullman J.D.', 'Aho A.V.', 'Sethi R.'], 'Addison Wesley', '1986').
|
||||
book('Compilers', 'Compiler Design in C', ['Holub A.I.'], 'Prentice Hall', '1990').
|
||||
book('Databases', 'An Introduction to Database Systems', ['Date C.J.'], 'Addison Wesley', '1995').
|
||||
book('Databases', 'The Theory of Relational Databases', ['Maier D.'], 'Computer Science Press', '1983').
|
||||
book('HCI', 'Human-Computer Interaction', ['Dix A.', 'Finlay J.', 'Abowd G.', 'Beale R.'], 'Prentice Hall', '1993').
|
||||
book('Prog Langs', 'Programming Languages Concepts & Constructs', ['Sethi R.'], 'Addison Wesley', '1996').
|
||||
book('Prog Langs', 'Concepts of Programming Languages', ['Sebesta R.W.'], 'Addison Wesley', '1996').
|
||||
book('Prog Langs', 'Programming Languages Principles and Practice', ['Louden K.C.'], 'PWS Publishing', '1993').
|
||||
|
||||
run :- write_ln(' '),
|
||||
write_ln(' ========================================== '),
|
||||
write_ln(' Welcome to the database. '),
|
||||
write_ln(' Type search(searchstring). to search '),
|
||||
write_ln(' ========================================== '),
|
||||
write_ln(' ').
|
||||
|
||||
subject(X) :- book(X,T,A,P,Y), printbook(X,T,A,P,Y), fail.
|
||||
title(X) :- book(S,X,A,P,Y), printbook(S,X,A,P,Y), fail.
|
||||
author(X) :- book(S,T,A,P,Y), member(X,A), printbook(S,T,X,P,Y), fail.
|
||||
publisher(X) :- book(S,T,A,X,Y), printbook(S,T,A,X,Y), fail.
|
||||
year(X) :- book(S,T,A,P,X), printbook(S,T,A,P,X), fail.
|
||||
|
||||
search(X) :- subject(X).
|
||||
search(X) :- title(X).
|
||||
search(X) :- author(X).
|
||||
search(X) :- publisher(X).
|
||||
search(X) :- year(X).
|
||||
|
||||
member(X,[X|_]).
|
||||
member(X,[_|Y]) :- member(X,Y).
|
||||
|
||||
printbook(S,T,A,P,Y) :- write('Subject: '), write_ln(S),
|
||||
write('Title: '), write_ln(T),
|
||||
write('Author: '), write_ln(A),
|
||||
write('Publisher: '), write_ln(P),
|
||||
write('Year: '), write_ln(Y),
|
||||
write_ln(' ').
|
||||
|
||||
Reference in New Issue
Block a user