资源简介
用C语言编写的基于神经网络的专家系统代码

代码片段和文件信息
// ExpertSystem.cpp : Defines the entry point for the console application.
//模拟一个专家系统,由外提供规则库,自行生成事实库(文件)和解释系统(输出);
//人机交互方式
#include “stdafx.h“
#include “Stack.h“
#include
#include
#include
#include
#include
#include
#include
using namespace std;
double reason(char conclusion[]vector &rules
Stack &rulenumberStack &jielundouble gailv[]ofstream &factvector &xuliehaoint &size);
double combination(double orarray[]int c);//求并集
double min(double andarr[]int size);//求交集
void charToDouble(vector &rulesdouble gailv[]);//将读到的字符串转化为DOUBLE型
void interpretation(char outfile[]);//解释系统
void main()
{
int i;
int j;
int kp;
int findnumber;//用于保存查找的位置
bool mark;
int goalnumber=0;
/////////////////读取规则库(前提是规则文件是正确的)////////////////////////
vector rules;//引入容器类模板
vector xuliehao;
Stack rulenumber;//存放压入规则栈的规则号
Stack jielun;//存放压入规则栈的结论
rulenumber.MakeEmpty();
jielun.MakeEmpty();
//////////////////////////////////////////////////////////////////
//打开文件读取
char outfile[20]=“shishiku.txt“;
char filename[20];
cout<<“请输入规则库文件名:“;
cin>>filename;
ifstream ku(filenameios::in);
if(!ku){
cerr<<“file can not open“< exit(1);
}
string rule;//用于读取文件中的字符串
while(ku>>rule){
rules.push_back(rule);//将文件中的字符串压入容器类中
xuliehao.push_back(rule);
}
int size=rules.size();//规则类的长度
double *gailv=new double[size/2];//用于存放规则的概率
///////////////////////////////////////////////////////////////
//建立事实数据库
ofstream fact(outfileios::out);
if(!fact){
cerr<<“file can not open“< exit(1);
}
fact<
/////////////////////////////////////////////////////////////////
//test
//for(i=0;i //cout<
char* conclusion=new char[size/2];//存放结论的动态数组
char* ptr;//指针
bool in;//用于判断
int * number=new int [size/2];//用于判断最终目标即结论
int *finalGoalNumber=new int [size/2];//总目标对应的规则号
double *result=new double[size/2];
int jishu;
double finalResult;
int *pass=new int [size/2];
if(rules.empty()||(size%2!=0))
cout<<“规则库不完备“< else{
for(i=0;i number[i]=0;//初始化数组
for(i=0j=0;i ptr=rules[i].begin();//字符串的起始指针
findnumber=rules[i].find(“→“);//用于查找结论在字符串里的位置
conclusion[j]=*(ptr+findnumber+2);//将结论存入数组里
rules[i].erase(findnumber);//将“→”和结论从数组中删去
findnumber=rules[i].find(“∧“);
while(findnumber!=string::npos){
rules[i].replace(findnumber2““);//将“∧”从数组中删去
findnumber=rules[i].find(“∧“);
}
findnumber=rules[i].find(“:“);
while(findnumber!=string::npos){
rules[i].replace(0findnumber+1““);//将规则序列号从数组中删去
findnumber=rules[i].find(“:“);
}
findnumber=rules[i+1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 912 2005-01-11 10:09 基于神经网络方法的专家系统源代码\shishiku.txt
文件 1351 2004-12-28 09:06 基于神经网络方法的专家系统源代码\Stack.h
文件 4662 2004-12-27 11:37 基于神经网络方法的专家系统源代码\ExpertSystem.dsp
文件 667 2004-12-27 09:55 基于神经网络方法的专家系统源代码\StdAfx.h
文件 299 2004-12-27 09:55 基于神经网络方法的专家系统源代码\StdAfx.cpp
文件 1244 2004-12-27 09:55 基于神经网络方法的专家系统源代码\ReadMe.txt
文件 549 2004-12-27 09:55 基于神经网络方法的专家系统源代码\ExpertSystem.dsw
文件 50176 2005-01-13 14:58 基于神经网络方法的专家系统源代码\ExpertSystem.ncb
文件 258 2005-01-11 08:41 基于神经网络方法的专家系统源代码\ExpertSystem.plg
文件 149 2004-12-30 09:09 基于神经网络方法的专家系统源代码\rules.txt
文件 11743 2005-01-11 08:38 基于神经网络方法的专家系统源代码\ExpertSystem.cpp
文件 81920 2005-01-13 14:58 基于神经网络方法的专家系统源代码\ExpertSystem.opt
目录 0 2005-03-31 13:21 基于神经网络方法的专家系统源代码\Debug
目录 0 2005-03-31 13:21 基于神经网络方法的专家系统源代码
----------- --------- ---------- ----- ----
154148 15
- 上一篇:C语言 华容道源代码
- 下一篇:图书信息管理系统设计源代码C++
相关资源
- BP神经网络C语言工程当前最终版
- 可以在单片机上计算的BP神经网络C语
- BP算法的C++实现
- 用C++建造专家系统
- 基于VC++的人脸定位系统
- 基于ANN的神经网络识别数字系统
- 利用Hopfield神经网络解决TSP问题-论文
- 深度学习之卷积神经网络CNN用于人脸
- 深度学习之卷积神经网络CNN模式识别
- 卷积神经网络代码c++
- BP神经网络实现人脸识别包含软件源码
- LeNet-5神经网络——C源代码
- c++开发的人工神经网络做人脸识别
- RBF神经网络C++源码
- 人工神经网络之BP网络模拟三角函数
- Fast ANN神经网络算法源码
- 车牌识别 openCV mfc BP神经网络
- deep learning卷积神经网络CNN在C++环境下
- 基于C++版本的Bp神经网络,数据拟合,
- c++版神经网络实现
- C++ bp神经网络算法
- c-c++写的卷积神经网络
- 基于SVM与人工神经网络的车牌识别O
- Hopfield神经网络解决TSP问题C++程序
- 基于SVM与人工神经网络的车牌识别C
- BP神经网络的c++实现
- 基于BP神经网络的简单字符识别算法自
- rbf神经网络c语言编程
- BP三层神经网络实现C++代码注释详细
- RBF神经网络的C++源码
评论
共有 条评论