go:-			consult(program7),
			continue.

continue:-		assert(totals(-1,-1)),
			write('1. Student total'),nl,
			write('2. Student average'),nl,
			write('3. Student bill'),nl,	
			write('4. To EXIT'),nl,nl,
			write('Select an option'),
			read(Option),
			Option<4,
			introductions(Stud),
			option(Option,Stud).

continue:- 	 	nl,nl,
			write('Program terminating - thank you.'), 
			nl,nl.

introductions(Student):-write('Enter Student name: '),
			read(Student),
			student(_,Student,_,_),
			retract(totals(_,_)),
			assert(totals(0,0)).

introductions(_):- 	nl,nl,
			write('***  INCORRECT INPUT  ***'),
			nl,nl,continue.

find_total(M):-		retract(totals(Marks,Num)),
			Total is M+Marks,
			No is Num+1,
			assert(totals(Total,No)),
			!,
			fail.

option(1,Stud):-	student(Sno,Stud,_,_),		
			option(_,Sno,Mark),
			find_total(Mark).


option(1,Stud):-	retract(totals(T,_)),
			T >= 0,
			write('Total Mark for student '),
			write(Stud),
			write(' is '),
			write(T),nl,
			continue.

option(2,Stud):-	student(Sno,Stud,_,_),		
			option(_,Sno,Mark),
			find_total(Mark).


option(2,Stud):-	retract(totals(T,N)),
			T >= 0,
			Aver is T/N,
			write('Average Mark for student '),
			write(Stud),
			write(' is '),
			write(Aver),nl,
			continue.


option(3,Stud):-	student(Sno,Stud,_,_),		
			option(Cno,Sno,Mark),
			course(Cno,_,_,Cost),
			find_total(Cost).


option(3,Stud):-	retract(totals(T,N)),
			T >= 0,
			write('Total Cost for student '),
			write(Stud),
			write(' attending '),
			write(N),
			write(' course is '),
			write(T),nl,
			continue.


option(_,_):-		nl,nl,
			write('***   NO OUTPUT   ***'),
			nl,nl,
			continue.

