Фреймовые модели представления знаний

Страницы работы

17 страниц (Word-файл)

Фрагмент текста работы

dlg_addauto_eh(_Win,e_Control(idc_enterpar,_CtrlType,_CtrlWin,_CtlInfo),0):-!,

     HT=win_GetCtlHandle(_Win,idc_na),

     AutoType=win_GetText(HT),  %запрос названия авто

AutoType<>"",              %проверка корректности

not(auto(AutoType,_,_)),   %Название не может повторяться!

HL=win_GetCtlHandle(_Win,id_stts),   

     lbox_GetSel(HL,S,_),

S=[Type|_],                %Выбранный тип для этого авто

type(NType,Type,Param),        

getvalue(Param,LValue),         %Заполняем список значений параметров

asserta(auto(AutoType,NType,LValue)), %Обновление БД

     win_Destroy(_Win),

     dlg_note("Добавлен новое авто"),

!.

dlg_addauto_eh(_Win,e_Control(idc_enterpar,_CtrlType,_CtrlWin,_CtlInfo),0):-!,

dlg_error("Новое авто не удалось добавить"),

!.

%END addauto, idc_enterpar _CtlInfo

%BEGIN addauto, e_Create

dlg_addauto_eh(_Win,e_Create(_CreationData),0):-!,

HDC=win_GetCtlHandle(_Win,id_stts),

     retract(type(NType,Type1,PList)),     %извлекаем название первого типа авто

     assertz(type(NType,Type1,PList)),     %перемещаем запись в конец БД

type(_,Type2,_),                %вытаскиваем по одному типу из БД

lbox_add(HDC,Type2),            %Заносим в ListBox

Type1=Type2,                    %Пока не дойдем до конца

!.

%END addauto, e_Create

dlg_addauto_eh(_,_,_):-!,fail.

%END_DLG addauto

%BEGIN_DLG allauto

/**************************************************************************

Creation and event handling for dialog: allauto

**************************************************************************/

constants

%BEGIN allauto, CreateParms, 22:36:59-1.11.2007, Code automatically updated!

dlg_allauto_ResID = idd_allauto

dlg_allauto_DlgType = wd_Modal

dlg_allauto_Help = idh_contents

%END allauto, CreateParms

predicates

dlg_allauto_eh : EHANDLER

dlg_allauto_handle_answer(INTEGER EndButton,DIALOG_VAL_LIST)

dlg_allauto_update(DIALOG_VAL_LIST)

clauses

dlg_allauto_Create(Parent):%MARK allauto, new variables

dialog_CreateModal(Parent,dlg_allauto_ResID,"",

[

%BEGIN allauto, ControlList, 22:36:59-1.11.2007, Code automatically updated!

df(allautolist,listbox([],[0]),nopr),

df(lbxauto,listbox([],[0]),nopr)

%END allauto, ControlList

],

dlg_allauto_eh,0,VALLIST,ANSWER),

dlg_allauto_handle_answer(ANSWER,VALLIST).

dlg_allauto_handle_answer(idc_ok,VALLIST):-!,

dlg_allauto_update(VALLIST).

dlg_allauto_handle_answer(idc_cancel,_):-!.  % Handle Esc and Cancel here

dlg_allauto_handle_answer(_,_):errorexit().

dlg_allauto_update(_VALLIST):%BEGIN allauto, Update controls, 22:36:59-1.11.2007, Code automatically updated!

dialog_VLGetListBox(allautolist,_VALLIST,_ALLAUTOLIST_ITEMLIST,_ALLAUTOLIST_SELECT),

dialog_VLGetListBox(lbxauto,_VALLIST,_LBXAUTO_ITEMLIST,_LBXAUTO_SELECT),

%END allauto, Update controls

true.

%MARK allauto, new events

%BEGIN allauto, parameters _CtlInfo

dlg_allauto_eh(_Win,e_Control(parameters,_CtrlType,_CtrlWin,_CtlInfo),0):-!,

HL=win_GetCtlHandle(_Win,lbxauto),

     lbox_GetSel(HL,S,_),            %получаем название выделенного авто

S=[Auto|_],                    

auto(Auto,NType,LValue),        %получаем список значений параметров

type(NType,Type,LParam),        %получаем список названий параметров

STR="Тип авто: ",               %формируем строку вывода

concat(STR,Type,STR2),

     concat(STR2,"\n",STR3),

     allparam(LParam,LValue,STR3,STR4),   

     HT=win_GetCtlHandle(_Win,idct_allparam),

     win_SetText(HT,STR4),           %выводим строку

!.

%END allauto, parameters _CtlInfo

%BEGIN allauto, idc_finding _CtlInfo

dlg_allauto_eh(_Win,e_Control(idc_finding,_CtrlType,_CtrlWin,_CtlInfo),0):-!,

HL=win_GetCtlHandle(_Win,allautolist),

     HT=win_GetCtlHandle(_Win,lbxauto),

     lbox_Clear(HT),

lbox_GetSel(HL,S,_),            %получаем название выделенного авто

S=[AutoType|_],

     type(NType,AutoType,Lparam),

     getval(Lparam,Lval),

     retract(auto(Name,NType,Lvals)),

     assertz(auto(Name,NType,Lvals)),

     auto(Name1,NType,Lvalu),

     findauto(Name1,Lval,Lvalu,HT),

     Name1=Name,

!.

%END allauto, idc_finding _CtlInfo

%BEGIN allauto, e_Destroy

dlg_allauto_eh(_Win,e_Destroy,0):-!,

!.

%END allauto, e_Destroy

%BEGIN allauto, allautolist _CtlInfo

%BEGIN allauto, e_Create

%*****************вывод списка имеющихся названий авто**********************

dlg_allauto_eh(_Win,e_Create(_CreationData),0):-!,

HDC=win_GetCtlHandle(_win,allautolist),   

     retract(type(Num1,Name,LParam)), %считываем первой название авто из БД

assertz(type(Num1,Name,LParam)), %пееремещаем его в конец

type(Num2,Name1,_),             %считываем все названия типов авто

lbox_add(HDC,Name1),            %и заносим их в ListBox

Num1=Num2,     

lbox_SetSel(HDC,0,b_true),       %Выделяем первое

!.

%END allauto, e_Create

dlg_allauto_eh(_,_,_):-!,fail.

%END_DLG allauto

%BEGIN_DLG autotype

/**************************************************************************

Creation and event handling for dialog: autotype

**************************************************************************/

constants

%BEGIN autotype, CreateParms, 22:47:37-25.10.2007, Code automatically updated!

dlg_autotype_ResID = idd_autotype

dlg_autotype_DlgType = wd_Modal

dlg_autotype_Help = idh_contents

%END autotype, CreateParms

predicates

dlg_autotype_eh : EHANDLER

dlg_autotype_handle_answer(INTEGER EndButton,DIALOG_VAL_LIST)

dlg_autotype_update(DIALOG_VAL_LIST)

clauses

dlg_autotype_Create(Parent):%MARK autotype, new variables

dialog_CreateModal(Parent,dlg_autotype_ResID,"",

[

%BEGIN autotype, ControlList, 22:47:37-25.10.2007, Code automatically updated!

df(idc_type,editstr("",[]),nopr)

%END autotype, ControlList

],

dlg_autotype_eh,0,VALLIST,ANSWER),

dlg_autotype_handle_answer(ANSWER,VALLIST).

dlg_autotype_handle_answer(idc_ok,VALLIST):-!,

dlg_autotype_update(VALLIST).

dlg_autotype_handle_answer(idc_cancel,_):-!.  % Handle Esc and Cancel here

dlg_autotype_handle_answer(_,_):errorexit().

dlg_autotype_update(_VALLIST):%BEGIN autotype, Update controls, 22:47:37-25.10.2007, Code automatically updated!

_IDC_TYPE_VALUE = dialog_VLGetstr(idc_type,_VALLIST),

%END autotype, Update controls

true.

%MARK autotype, new events

%BEGIN autotype, idc_close _CtlInfo

dlg_autotype_eh(_Win,e_Control(idc_close,_CtrlType,_CtrlWin,_CtlInfo),0):-!,

win_Destroy(_Win),

!.

%END autotype, idc_close _CtlInfo

%BEGIN autotype, idc_param _CtlInfo

%*******************Надатие на кнопу для указания названий параметров *******************

dlg_autotype_eh(_Win,e_Control(idc_param,_CtrlType,_CtrlWin,_CtlInfo),0):HDC=win_GetCtlHandle(_Win,idc_type),

     Type=win_GetText(HDC),                %считываем новый тип

Type<>"",                  %проверка на корректность

not(type(_,Type,_)),            %он нновый

getname(L),                     %накапливаем список названий параметров

retract(ntype(N)),              %считываем прежнее число типов

N2=N+1,                         %обновляем число типов

asserta(ntype(N2)),             %записываем его

asserta(type(N2,Type,L)),       %записываем информацию о типах

win_Destroy(_Win),

     dlg_note("Добавлен новый тип"),

!.

dlg_autotype_eh(_Win,e_Control(idc_param,_CtrlType,_CtrlWin,_CtlInfo),0):-     

dlg_error("Не удалось добавлить новый тип"),!.

%END autotype, idc_param _CtlInfo

dlg_autotype_eh(_,_,_):-!,fail.

%END_DLG autotype

%BEGIN_DLG hlp

/**************************************************************************

Creation and event handling for dialog: hlp

**************************************************************************/

constants

%BEGIN hlp, CreateParms, 01:19:23-26.10.2007, Code automatically updated!

dlg_hlp_ResID = idd_hlp

dlg_hlp_DlgType = wd_Modal

dlg_hlp_Help = idh_contents

%END hlp, CreateParms

predicates

dlg_hlp_eh : EHANDLER

dlg_hlp_handle_answer(INTEGER EndButton,DIALOG_VAL_LIST)

dlg_hlp_update(DIALOG_VAL_LIST)

clauses

dlg_hlp_Create(Parent):%MARK hlp, new variables

dialog_CreateModal(Parent,dlg_hlp_ResID,"",

[

%BEGIN hlp, ControlList, 01:19:23-26.10.2007, Code automatically updated!

%END hlp, ControlList

],

dlg_hlp_eh,0,VALLIST,ANSWER),

dlg_hlp_handle_answer(ANSWER,VALLIST).

dlg_hlp_handle_answer(idc_ok,VALLIST):-!,

dlg_hlp_update(VALLIST).

dlg_hlp_handle_answer(idc_cancel,_):-!.  % Handle Esc and Cancel here

dlg_hlp_handle_answer(_,_):errorexit().

dlg_hlp_update(_VALLIST):%BEGIN hlp, Update controls, 01:19:23-26.10.2007, Code automatically updated!

%END hlp, Update controls

true.

%MARK hlp, new events

dlg_hlp_eh(_,_,_):-!,fail.

%END_DLG hlp


Программа и методика испытаний

Объект испытаний

Наименование системы

Полное название системы: Лабораторная №2. Фреймовая модель представления знаний.

Назначение системы

Программа предназначена для демонстрации представления знаний с помощью фреймовой модели.

Цель испытаний

Целью испытаний является выявление ошибок и недочетов, допущенных во время программирования.

Средства и порядок испытаний

Технические средства, используемые во время испытаний

Во время испытаний использовались технические средства:

·  процессор Intel Celeron с тактовой частотой 1200 MHz;

·  оперативная память 384 Mб;

·  видеокарта и монитор, поддерживающие разрешение 1024x768 точек и больше;

·  свободное дисковое пространство 1.9 Гб;

·  клавиатура;

·  манипулятор мышь.

Программные средства, используемые во время испытаний

Во время испытаний использовалось программное обеспечение:

·  операционная система Microsoft Windows 2000

·  Visual Prolog 5.2

Порядок испытаний

Испытание программы проводились в следующем порядке:

·  испытание на корректность (адекватно ли программа реагирует на ввод-вывод информации);

·  испытание на правильность;

·  испытание на надежность (процент отказа системы).


Методы испытаний

Проверка на корректность

Был произведен запуск системы. (Приложение. Рис. 1.)

Для начала работы выберем пункт меню «Работа»,  подменю «Новый тип авто». (Приложение. Рис. 2.). Далее были введены названия параметров для данного типа. (Приложение. Рис. 3.).

Далее выберем пункт меню «Новое авто» и добавим новое название авто (Приложение. Рис. 4.) и введем значения параметров для данного авто (Приложение. Рис. 5.)

Затем выберем пункт меню «Поиск» - появится список всех типов авто (Приложение. Рис. 6.) – выбираем какой-либо тип и нажимаем кнопку поиск, вводим значения параметров для поиска (Приложение. Рис. 7.) – справа в ListBox-е выводится список автомобилей с параметрами, удовлетворяющими значениям введенным для поиска. (Приложение. Рис. 8.). При нажатии на кнопку «Параметры» можно посмотреть список параметров для этого авто (Приложение. Рис. 9.).

Проверка на правильность

В результате работы программы производится добавления типов авто, конкретных названий авто и вывод информации о содержании базы данных. Программное обеспечение было проверено при различных начальных условиях. 

В процессе тестирования программа сработала правильно, результат

Похожие материалы

Информация о работе