发布时间 : 星期一 文章人工智能实验报告更新完毕开始阅读aa22a495fe4733687f21aa12
Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27}, {{21,14,15,16,-1},26}, {{21,19,-1},25}, {{21,17,18,16,-1},24}}; int flag[23]={0};//标记各个特征是否选择 int IsAnimal(int a); int inference(); void input(); void menu(); void menu() { } void input() {
int ti=0;
for(int i=0;i<24;i++) {
flag[i]=0; int i=0; for(i=0;i<24;i++) { }
if(i%4==0&&i!=0) {
cout< } cout< } while(ti!=-1) { cout<<\输入选择(-1结束):\ cin>> ti; } } if(ti>=0&&ti<=23) flag[ti]=1; else if(ti!=-1) { cout<<\输入错误!请输入0~23之间的数字!\ //notanimal=25 cin.clear();//清除流错误错误标 cin.sync(); //清空输入缓冲区 } int IsAnimal(int a) { } int inference()//正向推理 { int ti; int i,j; int tres; cout< j=0; if(a>=24&&a<=30) return 1; else return 0; ti=rule[i].relation[j]; while(ti!=-1) //-1作为结束 { if(flag[ti]==0) break; } j++; ti=rule[i].relation[j]; } if(ti==-1)//ti==-1代表规则满足 { tres=rule[i].name; flag[tres]=1; cout<<\运用了规则 : \ j=0; while(rule[i].relation[j]!=-1) { cout< } cout<<\ if(IsAnimal(tres)) { return 1; } } } if(i==15) { cout<<\没有这种动物\ } return -1; int main() { char q; while(q!='n') } { } menu(); input(); inference(); cout<<\继续?(Y/N)\ cin>>q; 六、运行结果