Monthly Archives: May 2009

Adam Rafique (my lovely nephew)

DSC00756DSC00750DSC00759DSC00760

No idea what to do

The most bored day ever during this semester (11may2009). woke up at 11 something..then went for final year presentation….lot of thing to see nag to hear and 2 learn…. (using fuzzy,neuro,case base)…thing lots of reading to do,to discover……

nothing in my head now…..thinking of nothing….some kind of weird thing to do :-D, normally thinking of something,studying,n d most pressure thing is tried to finish up some project especially do the coding. and once u fulfill that,it gave u satisfaction.showing the result from your hard work….your hard work is worthies…

today think doing nothing…juz surfing the internet,chat with friend,update my blog…..waaaaaaaaaaaaaa. any body could give me a hand.give  me a help….”tell me what should i do”…but b4 this think a want this moment…and once u get it…it become like this…”human never satisfied”..alway have something in the mind. and hre i’m..updating my blog try to end up this bored day. hurmmmm

images

Prolog (cyber cafe)

% =====================KNOWLEDGE BASE==============================

% dynamic variables
:-dynamic(pc_member/2).
:-dynamic(pc_list/4).

% list of people registered as member. pc_member(ID,Name)
pc_member(110,ali).
pc_member(112,abdul).
pc_member(115,salmah).
pc_member(111,farah).
pc_member(118,siti).

% list of pc (all). pc_list(PcNum,Username,Usertype,Starttime)
pc_list(1,null,null,0).
pc_list(2,ali,member,2007).
pc_list(3,farah,member,1100).
pc_list(4,null,null,0).
pc_list(5,aminah,nonmember,0900).
pc_list(6,null,null,0).
pc_list(7,null,null,0).
pc_list(8,samad,nonmember,1434).

%pc_ava(X):- pc_list(X,null,_,_).

pc_available(L):-
findall(X,pc_list(X,null,_,_),L).

all_pc(L):-
findall(X,pc_list(X,_,_,_),L).

% =========================PROGRAMME===============================

% the program
run:-
greetings.

% ========================MAIN MENU================================

% main menu
greetings:-

nl,nl,
write(‘+—————————+’),nl,
write(‘| Epc-shop cybercafe Center |’),nl,
write(‘+—————————+’),nl,nl,
write(‘           Main Menu  ‘),nl,
write(‘          ———–‘),nl,
write(‘       1 . PC Menu ‘),nl,
write(‘       2 . Member Menu ‘),nl,
write(‘       3 . Payment Menu ‘),nl,
write(‘       4 . Terminate Program ‘),nl,nl,
write(‘Enter your selection : ‘),
read(X),
mainmenu(X).

% =======================PC MENU==================================

% pc menu
mainmenu(1):-
nl,nl,
write(‘          PC Menu  ‘),nl,
write(‘          ——-‘),nl,
write(‘       1 . View list of all pc ‘),nl,
write(‘       2 . Register to use ‘),nl,
write(‘       3 . Back to Main menu ‘),nl,nl,
write(‘Enter your selection : ‘),
read(X),
pcmenu(X).

% pc listing all.
pcmenu(1):-

write(‘+——————————————————+’),nl,
write(‘| PC NO | Name            | Type      | Start at       |’),nl,
write(‘+——————————————————+’),nl,
listing(pc_list),nl,

mainmenu(1).

% pc listing all.
pcmenu(2):-
write(‘Enter pc number : ‘),read(W),nl,
write(‘Enter Name : ‘),read(X),nl,
write(‘Enter User Type : ‘),read(Y),nl,
write(‘Enter Start time (24-hours format): ‘),read(Z),nl,
retract(pc_list(W,_,_,_)),
assert(pc_list(W,X,Y,Z)),
write(‘PC loaded! : ‘),nl,
mainmenu(1).

% =======================MEMBER MENU================================

% member menu
mainmenu(2):-
nl,nl,
write(‘          Member Menu  ‘),nl,
write(‘          ———–‘),nl,
write(‘       1 . View list of registered members ‘),nl,
write(‘       2 . Search existing member ‘),nl,
write(‘       3 . New member registration ‘),nl,
write(‘       4 . Back to Main menu ‘),nl,nl,
write(‘Enter your selection : ‘),
read(X),
membermenu(X).

% member listing.
membermenu(1):-
write(‘+———————————————-+’),nl,
write(‘|    ID    |                Name               |’),nl,
write(‘+———————————————-+’),nl,
listing(pc_member),nl,
mainmenu(2).

% searching existing member.
membermenu(2):-
nl,nl,
write(‘          Searching Menu  ‘),nl,
write(‘          ————–‘),nl,
write(‘       1 . By ID ‘),nl,
write(‘       2 . By Name ‘),nl,
write(‘       3 . Back ‘),nl,nl,
write(‘Enter your selection : ‘),
read(X),
searchmenu(X).

% search existing member by ID.
searchmenu(1):-
write(‘Enter member”s ID : ‘),
read(Z),
searching(Z).

searching(Z):-
pc_member(X,Y),nl,
Z=:=X,
write(‘Member information are :’),
write(‘ID: ‘),write(X),nl,
write(‘Name: ‘),write(Y),nl,
membermenu(2).

searching(Z):-
pc_member(X,Y),
Z=\=X,
write(‘Member not exist! :’),
membermenu(2),!.

% search existing member by name.
searchmenu(2):-
write(‘Enter member”s Name: ‘),
read(M),
searching2(M).

searching2(M):-
pc_member(X,Y),nl,
M=:=Y,
write(‘Member information are : ‘),
write(‘ID: ‘),write(X),nl,
write(‘Name: ‘),write(Y),nl,
membermenu(2).

searching2(M):-
pc_member(X,Y),
Z=\=Y,
write(‘Member not exist! :’),
membermenu(2),!.

%register new member
membermenu(3):-
write(‘Enter your name : ‘),
read(X),nl,
write(‘Enter your secret id : ‘),
read(K),nl,
assert(pc_member(X,K)),
write(‘Successfully add!’),nl,
mainmenu(2).

% ======================PAYMENT MENU================================

% payment menu
mainmenu(3):-
nl,nl,
write(‘List of available pc: ‘),nl,
write(‘+——————————————————+’),nl,
write(‘| PC NO | Name            | Type      | Start at       |’),nl,
write(‘+——————————————————+’),nl,
listing(pc_list),nl,nl,
write(‘Enter pc number : ‘),read(W),nl,
pc_list(A,B,C,D),
W =:= A,
write(‘pc number : ‘),write(A),nl,
write(‘Customer Name : ‘),write(B),nl,
memberstatus(C,D).

% if PC not in use
memberstatus(null,0):-
write(‘PC not being use!’),nl,
greetings,!.

% for member PC usage
memberstatus(member,D):-
write(‘Enter current time (24-hours format) : ‘),read(X),nl,
Time is X-D,
Time2 is D/60,
Time3 is (Time2*2*0.9),
write(‘Status : ‘),write(‘member’),nl,
write(‘Start using pc at : ‘),write(D),nl,
write(‘End using pc at : ‘),write(X),nl,
write(‘Total time using : ‘),write(Time2),write(‘ hour’),nl,
write(‘Total payment is : RM’),write(Time3),nl,

total(1,Time3).

total(1,Time3):-

write(‘RM: ‘),write(Time3),

greetings.

% for non member PC usage
memberstatus(nonmember,D):-
write(‘Enter current time (24-hours format) : ‘),read(X),nl,
Time is X-D,
Time2 is D/60,
Time3 is (Time2*2),
write(‘Status : ‘),write(‘nonmember’),nl,
write(‘Start using pc at : ‘),write(D),nl,
write(‘End using pc at : ‘),write(X),nl,
write(‘Total time using : ‘),write(Time2),write(‘ hour’),nl,
write(‘Total payment is : RM’),write(Time3),nl,
greetings.

% ====================ERROR HANDLING===============================

% back to previous menu
membermenu(4):- greetings,!.
pcmenu(3):- greetings,!.
searchmenu(3):- mainmenu(2),!.

% to exit the program
mainmenu(4):-
nl,write(‘Exiting program..thank you’),nl,!.

% invalid data input
mainmenu(X):-
nl,write(‘Invalid input.Reenter again: ‘),nl,
greetings,!.
membermenu(X):-
nl,write(‘Invalid input.Reenter again: ‘),nl,
mainmenu(2),!.
searchmenu(X):-
nl,write(‘Invalid input.Reenter again: ‘),nl,
membermenu(2),!.
pcmenu(X):-
nl,write(‘Invalid input.Reenter again: ‘),nl,
mainmenu(1),!.