⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 node.cpp

📁 数字识别
💻 CPP
字号:
// Node.cpp: implementation of the CNode class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "数字识别.h"
#include "Node.h"
#include <fstream.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CNode::CNode(char fileName[]){
	valve = 1;
	file = NULL;
	file = new char[strlen(fileName)];
	if(NULL != file){
		length = 140; // 长度可变
		int i;
		strcpy(file, fileName);
		ifstream inf(fileName);
		weight = new int[length];
		for(i = 0; i < length; i++){
			weight[i] = 0;
			inf>>weight[i];
		}
	}
}

CNode::~CNode(){
	Save();
	if(NULL != file){
		delete[] file;
		delete[] weight;
	}
}

int CNode::GetResult(int * input){ // 计算输出
	int i = 0;
	int sum = 0;
	for(i = 0;i < length; i++){
		sum += input[i] * weight[i];
	}
	return sum > valve?1:0; // 函数比较简单,大于1(初始化时value为1)则输入1,否则输出0
}

void CNode::Save(){
	if(NULL != file){
		int i;
		ofstream ofs(file, ios::out);
		for(i = 0; i < length; i++){
			ofs<<weight[i]<<" ";
		}
	}
}

void CNode::Study(int * input, int result){ // 学习函数
	int tr = GetResult(input);
	if(tr > result){
		//-
		int i = 0;
		for(i = 0;i < length; i++){
			weight[i] -= input[i];
		}
	}
	else if(tr < result){
		//+
		int i = 0;
		for(i = 0;i < length; i++){
			weight[i] += input[i];
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -