All pastes #2068140 Raw Edit

Something

public c v1 · immutable
#2068140 ·published 2011-05-24 08:38 UTC
rendered paste body
/* Курсовая работа */Code=3000domains	Ii = integer	Ia = integer*	S = stringdatabase - manual		disease(S,Ia)	symptom(S,Ii)database - answers		ansyes(Ii)	ansno(Ii)	predicates		/* Четвертичные предикаты */	elist(Ia)	check_name(S)	check_list(Ia)	check_num(Ii)	check_sym(S)	check_ent(Ii)	entles(Ii,Ia)	edit_d(S,S,Ia)	edit_s(S,Ii)	viev_d	viev_s	otvet(S,Ii)	verify(Ia)	verify_2(Ia)	search(Ia)	/* Троичные предикаты */	add(S)	del(S)	edit_(S)	viev(S)	clean	query	diagn	diagn2	/* Вторичные предикаты */	bdata(S)	bdw(S)	diagnosis(S)	/* Первичные предикаты */	choose(S)	/* Основные предикаты */	menu	title	repeat	program.goal	clearwindow,	program./* Santa */clauses	repeat.	repeat:-		repeat.			elist([H|T]):-		write("Ввод: "), readint(H), 		H <> 0 ,!, elist(T).	elist([]).			program:-		title, repeat, menu, fail.			bdata("1"):-	/* Сохранение БД */		makewindow(1,112,7,"Сохранение Базы Данных",1,3,22,60),		write("Введите имя файла(символом < 7)\n"),		write("Ввод: "), readln(Str), 		concat(Str,".PRO",Name),		save(Name,manual),		write("\nСохранено успешно!\n"),		removewindow, clearwindow.	bdata("2"):-	/* Загрузка БД(Удачно) */		retractall(_),		makewindow(1,112,7,"Загрузка Базы Данных",1,3,22,60),		dir("","*.pro",FILE,1,0,0),		consult(FILE,manual),		clearwindow,		write("База Данных успешно загружена\n"),		write("Нажмите [Enter] для продолжения..."),		readln(_), removewindow, clearwindow,!.	bdata("2"):-	/* Загрузка БД(Не Удачно) */		makewindow(1,112,7,"Загрузка Базы Данных",1,3,22,60),		write("База Данных не загружается! Ошибка.\n"),		write("Нажмите [Enter] для продолжения...\n"),		readln(_), removewindow, clearwindow.	bdata("3"):-	/* Возврат в главное меню */		menu.	bdata(_):-		choose("1").			bdw("1"):-	/* Добавление инфы в БД(100%) */		makewindow(1,112,7,"Добавление информации в БД",1,3,22,60),		write ("Выберите пункт меню:\n"),		write("-------------------------\n"),		write ("1. Добавление болезни\n"),		write ("2. Добавление симптома\n"),		write ("3. Возврат назад\n"),		write("-------------------------\n"),		readln(V), removewindow, clearwindow, add(V).	bdw("2"):-	/* Удаление инфы из БД(100%) */		makewindow(1,112,7,"Удаление информации в БД",1,3,22,60),		write ("Выберите пункт меню:\n"),		write("-------------------------\n"),		write ("1. Удаление болезни\n"),		write ("2. Удаление симптома\n"),		write ("3. Возврат назад\n"),		write("-------------------------\n"),		readln(V), removewindow, clearwindow, del(V).	bdw("3"):-	/* Редактирование инфы в БД(100%) */		makewindow(1,112,7,"Редактировать БД",1,3,22,60),		write ("Выберите пункт меню:\n"),		write("-------------------------\n"),		write ("1. Редактирование болезни\n"),		write ("2. Редактирование симптома\n"),		write ("3. Возврат назад\n"),		write("-------------------------\n"),		readln(V), removewindow, clearwindow, edit_(V).	bdw("4"):-	/* Просмотр БД(100%) */		makewindow(1,112,7,"Просмотр БД",1,3,22,60),		write ("Выберите пункт меню:\n"),		write("-------------------------\n"),		write ("1. Просмотр болезни\n"),		write ("2. Просмотр симптома\n"),		write ("3. Возврат назад\n"),		write("-------------------------\n"),		readln(V), removewindow, clearwindow, viev(V).	bdw("5"):-	/* Возврат в главное меню */		menu.	bdw(_):-		choose("2").			viev("1"):-		makewindow(1,112,7,"Просмотр болезни",1,3,22,60),		write("Список болезней и число характерных симптомов: "),		viev_d, write("\nНажмите [Enter] для продолжения..."), 		readln(_), removewindow, clearwindow. /* viev("1"). */	viev("2"):-		makewindow(1,112,7,"Просмотр симптома",1,3,22,60),		write("Список симптомов и их номера:"), viev_s, 		write("\nНажмите [Enter] для продолжения..."), 		readln(_), removewindow, clearwindow.	viev("3"):-		choose("2").	viev(_):-		bdw("4").			viev_s:-		symptom(Name,N),		write("\n",N," - ",Name),		fail.			viev_d:-		disease(Name,IntL),		write("\n",Name," - "),		write(IntL), fail. /*viev_d.*/			edit_("1"):-		makewindow(1,112,7,"Редактирование болезни",1,3,22,60),		write("Введите название болезни: "),		readln(Name), disease(Name,IntL),		write("\nСтарое имя болезни и список симптомов: \n"),		write(Name," - "), write(IntL),		write("\n\nВведите новое название болезни: "),		readln(NewName),		write("\nВведите новый список симптомов: "),		elist(NewL), edit_d(Name,NewName,NewL),		removewindow, clearwindow.	edit_("2"):-		makewindow(1,112,7,"Редактирование симптома",1,3,22,60),		write("Введите номер симптома: "),		readint(I), symptom(Name,I),		write("\nНомер и название старого симптома:\n"),		write(I," ",Name),nl,		write("\nВведите новое название для симптома - ",I,"\nВвод: "),		readln(NewName), edit_s(NewName,I),		removewindow, clearwindow.	edit_("3"):-		choose("2").	edit_(_):-		bdw("3").			edit_s(Name,N):-		retract(symptom(_,N)),		assert(symptom(Name,N)),!.	edit_s(_,_). 			edit_d(Name,NewName,NewL):-		retract(disease(Name,_)),		assert(disease(NewName,NewL)),!.	edit_d(_,_,_).			del("1"):-		makewindow(1,112,7,"Удалить болезнь из БД",1,3,22,60),		write("Введите название болезни: "),		readln(Name), nl, disease(Name,_),		retract(disease(Name,_)), write("\nБолезнь удалена."),		write("\nНажмите [Enter] для продолжения..."), 		readln(_), removewindow, clearwindow,!.	del("1"):-		write("\nЭта болезнь не существует! Нечего удалять!"),		write("\nНажмите [Enter] для продолжения..."), 		readln(_), removewindow, clearwindow.	del("2"):-		makewindow(1,112,7,"Удалить симптом из БД",1,3,22,60),		write("Введите номер симптома: "),		readint(N), nl, symptom(_,N),		check_ent(N), 		retract(symptom(_,N)), write("\nСимптом удалён."),		write("\nНажмите [Enter] для продолжения..."), 		readln(_), removewindow, clearwindow,!.	del("2"):-		write("\nЭтот симптом не существует! Нечего удалять!"),		write("\nНажмите [Enter] для продолжения..."), 		readln(_), removewindow, clearwindow.	del("3"):-		choose("2").	del(_):-		bdw("2").			check_ent(N):-		disease(_,IntL),		entles(N,IntL), 		fail.	check_ent(_).		entles(N,[H|T]):-		H<>N,		entles(N,T),!.	entles(_,[]):-!.	entles(_,_):-			write("\nДля начала необходимо удалить этот симптом из описания болезни"),		write("\nНажмите [Enter] для продолжения..."), 		readln(_), removewindow, clearwindow, bdw("2").			add("1"):-		makewindow(1,112,7,"Добавление болезни в БД",1,3,22,60),		write("\nВведите название новой болезни: "), readln(Name),		check_name(Name), write("\nВведите список симптомов новой болезни\n"),		write("Только в числовой форме(0 = стоп)\n"),		elist(IntL), check_list(IntL),		assert(disease(Name,IntL)), 		removewindow, clearwindow.	add("2"):-		makewindow(1,112,7,"Добавление симптома в БД",1,3,22,60),		write("Введите номер нового симптома: "), readint(N),		check_num(N), write("\nВведите имя симптома: "),		readln(Name), check_sym(Name),		assert(symptom(Name,N)),		removewindow, clearwindow,!.	add("2"):-		removewindow, clearwindow, bdw("1").	add("3"):-		choose("2").	add(_):-		bdw("1").			check_num(N):-		not(symptom(_,N)).		check_sym(Name):-		not(symptom(Name,_)),!.	check_sym(Name):-		write("\nСимптом с таким именем уже существует!!!"),		write("\nНажмите [Enter] для продолжения..."), readln(_),		removewindow, clearwindow, bdw("1").			check_name(Name):-		not(disease(Name,_)). /* dot or not dot? */			check_list([H|T]):-		symptom(_,H),		check_list(T),!.	check_list([]):-!.	check_list(_):-		write("\nОдин или несколько выбранных симптомов не существует"),		write("\nНажмите [Enter] для продолжения..."), readln(_),		removewindow, clearwindow, bdw("1").			diagnosis("1"):-	/* Установление диагноза(100%) */		makewindow(1,112,7,"Диагностическое меню",1,3,22,60),		clean, query, diagn, 		write("\nНажмите [Enter] для продолжения..."),		readln(_), removewindow,!.	diagnosis("1"):-		makewindow(1,112,7,"Диагностическое меню",1,3,22,60),		write("Вы здоровы!\n"),		write("Нажмите [Enter] для продолжения..."),		readln(_), removewindow, clearwindow.	diagnosis("2"):-	/* Объяснение диагноза */		makewindow(1,112,7,"Объяснение диагноза",1,3,22,60),		diagn2, write("\n\nНажмите [Enter] для продолжения..."),  		readln(_), removewindow, clearwindow,!.	diagnosis("2"):-		makewindow(1,112,7,"Объяснение диагноза",1,3,22,60),		write("Вы здоровы!\n"),		write("Нажмите [Enter] для продолжения..."),		readln(_), removewindow, clearwindow.	diagnosis("3"):-	/* Возврат в главное меню */		menu.	diagnosis(_):-		choose("3").			diagn2:-		disease(X,IntL), verify_2(IntL), write("Это ", X),		write("\nБолезнь складывается из следующих симптомов:"),		search(IntL).			verify_2([H|T]):-		ansyes(H),		verify_2(T).	verify_2([]).			search([H|T]):-		symptom(Name,H),		write("\n",H," - ", Name),		search(T),!.	search([]).			diagn:-		disease(X,IntL),		verify(IntL), 		write("Это ", X).			verify([H|T]):-		ansyes(H),		verify(T).	verify([]).			clean:-		retractall(_,answers).		query:-		symptom(X,Y), 		write("Есть ли у вас ",X, "? (Да/Нет) - "),		readln(Otv), otvet(Otv,Y), fail. /* query. */			otvet("Да",Y):-		assert(ansyes(Y)).	otvet("Нет",Y):-		assert(ansno(Y)).		choose("1"):-	/* База Данных(Сохранение, Загрузка)(100%) */		makewindow(1,112,7,"Файловое меню",1,3,22,60),		write("Выберите пункт меню:\n"),		write("-------------------------\n"),		write("1. Сохранить Базу Данных(БД)\n"),		write("2. Загрузить Базу Данных(БД)\n"),		write("3. Возврат в главное меню\n"),		write("-------------------------\n"),		write("Введите номер и нажмите [Enter]\n"),		write("Ввод: "), readln(V), 		removewindow, clearwindow, bdata(V).	choose("2"):-	/* База Данных(Операции)(100%) */		makewindow(1,112,7,"Редактирование",1,3,22,60),		write("Выберите пункт меню:\n"),		write("-------------------------\n"),		write("1. Добавить\n"), write("2. Удалить\n"),		write("3. Редактировать\n"), write("4. Показать\n"),		write("5. Возврат в главное меню\n"),		write("-------------------------\n"),		write("Введите номер и нажмите [Enter]\n"),		write("Ввод: "), readln(V),		removewindow, clearwindow, bdw(V).	choose("3"):-	/* Диагностика */		makewindow(1,112,7,"Диагноз",1,3,22,60),		write("Выберите пункт меню:\n"),		write("-------------------------\n"),		write("1. Диагностика\n"), write("2. Диагностика(Результат)\n"),		write("3. Возврат в главное меню\n"),		write("-------------------------\n"),		write("Введите номер и нажмите [Enter]\n"),		write("Ввод: "), readln(V),		removewindow, clearwindow, diagnosis(V).	choose("4"):-	/* О программе(100%) */		graphics(5,0,112),		write("-------------------------О программе----------------------\n"),		write("                       Курсовой проект\n"),		write("          На тему проектирования экспертных систем\n\n"),		write("       Диагностика заболеваний печени и желчных путей\n"), 		write("                Гепатит острый, хронический,\n"),		write("           цирроз печени, желчнокаменная болезнь.\n\n"),		write("                   Студент: Теремков А.П.\n"),		write("                 Преподаватель: Холкин И.И.\n\n"),		write("                  Essay, Moscow, 2011 (c.)\n"),		write("----------------------------------------------------------\n"),		write("Для продолжения нажмите [Enter]..."), readln(_), text,		clearwindow.	choose("5"):-		retractall(_),		exit.	choose(_):-		menu.			menu:-		makewindow(1,112,7,"Главное меню",1,3,22,60),		write("Выберите пункт меню:\n"),		write("-------------------------\n"),		write("1. Файл\n"), write("2. Редактирование\n"),		write("3. Диагноз\n"), write("4. О программе\n"),		write("5. Выход из программы\n"),		write("-------------------------\n"),		write("Введите номер и нажмите [Enter]\n"),		write("Ввод: "), readln(P), removewindow,		clearwindow, choose(P).			title:-		makewindow(1,112,7,"Информация",1,3,22,60),		write("	    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ"),nl,		write("	    Московский Государственный Институт"),nl,		write("	   Радиотехники, Электроники и Автоматики"),nl,		write("	         (Технический Университет)"),nl,nl,		write("	                Кафедра ИТС"),nl,nl,		write("	              Курсовая работа"),nl,nl,		write("	                  На тему:"),nl,		write("	       Разработка Экспертной Системы"),nl,nl,		write("Студент: Теремков А.П."),nl,		write("Преподаватель: Доцент кафедры ИТС Холкин И.И."),nl,		write("Группа: ИТА-1-09"),nl,nl,nl,		write("	                 Москва, 2011"),nl,		write("----------------------------------------------------------\n"),		write("Нажмите [Enter] для продолжения..."),		readln(_), removewindow, clearwindow.