- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
产生式规则(动物库匹配)
【实验题目】产生式规则与问题求解【试验目的】熟悉vc++6.0的使用环境理解产生式规则问题掌握产生式的算法【实验内容】 利用产生式规则算法设计动物规则库搜索问题【实验步骤】设计程序的界面如下相关参数struct Rule{CString r_father;CString r_son;}; //规则元素结构体Rule rule[20];//用于保存规则int _rlue;代码添加规则进入规则库void CWM_RULEDlg::OnButton4() {// TODO: Add your control notification handler code hereif (m_rPrime!= m_rFinal!=){try{rule[_rlue].r_father=m_rPrime;rule[_rlue].r_son=m_rFinal; //将规则保存在数字中//动态将规则输出在规则库组中//s=s+rule[_rlue].r_father+rule[_rlue].r_son;_rlue++;//MessageBox(s);SetDlgItemText(IDC_rPrimse,);SetDlgItemText(IDC_rFinal,);}catch (CMemoryException* e){}catch (CFileException* e){}catch (CException* e){}}else{MessageBox(请输入规则!);}}(注:本算法用数组代替了数据库来暂时存储规则)搜索规则库和匹配void CWM_RULEDlg::OnButton2() {// TODO: Add your control notification handler code here//用函数将字符串分解int _find;int i=0;int temp[10]; //用于暂时保存有可能构成规则的条件int q=0;struct str_rule{int flag;CString p_rule;};str_rule s_rule[10];if(m_sRule!=){//_find=0;do{_find=m_sRule.Find( );if (_find0){_find=0;break;}s_rule[i].flag=0;s_rule[i].p_rule=m_sRule.Left(_find);m_sRule=m_sRule.Right(m_sRule.GetLength()-_find-1);i++;}while(_find0);s_rule[i].p_rule=m_sRule;s_rule[i].flag=0;//分别在规则库查找分解出来的字符串CString ruletemp=;for (int j=0;j20;j++){for(int k=0;k=i;k++){if (rule[j].r_father.Find(s_rule[k].p_rule) = 0 s_rule[k].flag!=1){if (rule[j].r_father.GetLength()==s_rule[k].p_rule.GetLength()){s_rule[k].flag=1;i++;s_rule[i].p_rule=rule[j].r_son; //如果直接找到了匹配的条件//MessageBox(rule[j].r_son);s_rule[i].flag=0;//k=0;}else if (rule[j].r_father.GetLength() s_rule[k].p_rule.GetLength()){temp[q]=k;ruletemp=ruletemp+s_rule[k].p_rule;if (rule[j].r_father.GetLength()==ruletemp.GetLength()){i++;s_rule[i].p_rule=rule[j].r_son;s_rule[i].flag=0;for (int m=0;m=q;m++){s_rule[temp[m]].flag=1;}}//k=0;q++;}}}ruletemp=;}int count=0;CString result=;for (int f=0;f=i;f++) //如果数组中的所有元素都没有匹配的规则 查找失败{if (s_rule[f].flag==0){count++;result=result+s_rule[f].p_rule;}}if (count==1 result!=s_rule[0].p_rule) //否则 将最后没有标记的匹配元素所匹配的显示出来{m_sResult=result;UpdateData(FALSE);}else{
您可能关注的文档
- 大学物理下册17.ppt
- ZARA07BTOC计划书.pptx
- 小区域大整合.ppt
- 刑法英文.doc
- 暮色生词练习.doc
- 换届选举日程表.doc
- 个人创先争优活动打算.doc
- 临时道路修整方案.doc
- 机械制造基础 第九章 锻压.ppt
- 蒙特卡罗方法在三重积分中的应用.pdf
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)