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

📄 mydataset.cs

📁 用C#开发的录井油气识别专家系统
💻 CS
📖 第 1 页 / 共 3 页
字号:
			}
		}

		public  DataTable ParamTable
		{
			get
			{
				return Tables[NAME_PARAM_TABLENAME];
			}
			set
			{
				if(ParamTable!=null)
					Tables.Remove(ParamTable);
				Tables.Add(value);

				
				
			}
		}
	
		public  DataTable SampleTable
		{
			get
			{
				if(Tables[NAME_SAMPLE_TABLENAME]==null)
					return null;
					//MessageBox.Show("本数据库总没有表:"+NAME_SAMPLE_TABLENAME, "fileName Entry Error",	MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return Tables[NAME_SAMPLE_TABLENAME];
			}
			set
			{
				if(SampleTable!=null)
					Tables.Remove(SampleTable);
				Tables.Add(value);

				
			}
		}


	}//end class myCriDataSet


	public class myExamDataSet : myDataSet
	{
		public static string NAME_EXAM_TABLENAME="数据";
		public static string NAME_RESULT_TABLENAME="结论";

		public static string NAME_TEMPLATERESUTL_FIELDNAME="模板解释结论";
		public static string NAME_TEMPLATERNUM_FIELDNAME="结论";
		public static string NAME_TEMPLATER_MATCHDEGREE_FIELDNAME="结论";
		public static string NAME_STATIS_RESULTTYPE1_FIELDNAME="统计解释结论1";
		public static string NAME_STATIS_RESULTCREDITSCORE1_FIELDNAME="统计置信度1";
		public static string NAME_STATIS_RESULTTYPE2_FIELDNAME="统计解释结论2";
		public static string NAME_STATIS_RESULTCREDITSCORE2_FIELDNAME="统计置信度2";
		public static string NAME_STATIS_RESULTTYPE3_FIELDNAME="统计解释结论3";
		public static string NAME_STATIS_RESULTCREDITSCORE3_FIELDNAME="统计置信度3";
		


		
		
		public myExamDataSet()
		{

		}
		public bool IsCriField(string field)
		{
			if(FieldSetting!=null)
			{
				DataRow[] rows=FieldSetting.Select("[NAME]="+ "\'"+field+"\'");
				if(rows.Length<=0)
					return false;
				bool bUsed = Convert.ToBoolean(rows[0]["USEIT"]);
				return bUsed;
			}

			//the old code should be discarded;
			if(field=="序号")
				return false;
			
			
			if(ExamTable==null)
				return false;
			DataColumn col=ExamTable.Columns[field];
			if(col==null)
				return false;
			if(col.DataType==typeof(Boolean) ||
				col.DataType==typeof(Byte)||
				col.DataType==typeof(Char)||
				col.DataType==typeof(DateTime )||
				col.DataType==typeof(String )||
				col.DataType==typeof(TimeSpan) 
				)
				return false;

			return true;
			
			
		}


		public DataTable CreateStatisResultTable()
		{
			if(ExamTable ==null)
			{

			//	MessageBox.Show("本数据库总没有表:"+NAME_EXAM_TABLENAME, "fileName Entry Error",					MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return null;
			}

			DataTable result=new DataTable(myResultDataSet.NAME_STATISRESULTTABLENAME);


			result.Columns.Add(new DataColumn("序号",typeof(int)));
			foreach(DataColumn col in ExamTable.Columns)
			{
				if(col.ColumnName=="序号")
					continue;
				if(!IsCriField(col.ColumnName))
					result.Columns.Add(new DataColumn(col.ColumnName,col.DataType));
                   
		
			}//end foreach
			result.Columns.Add(new DataColumn("结论",typeof(string)));
			result.Columns.Add(new DataColumn("可信等级",typeof(int)));
			foreach(DataColumn col in ExamTable.Columns)
			{
				if(col.ColumnName=="序号")
					continue;
				if(IsCriField(col.ColumnName))
					 result.Columns.Add(new DataColumn(col.ColumnName,typeof(float)));
				
			}//end foreach
			result.Columns.Add(new DataColumn("总计",typeof(float)));
			
			return result;
		}

		public DataTable CreateFuzzyResultTable()
		{
			if(ExamTable ==null)
			{

				//	MessageBox.Show("本数据库总没有表:"+NAME_EXAM_TABLENAME, "fileName Entry Error",					MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return null;
			}

			DataTable result=new DataTable(myResultDataSet.NAME_FUZZYRESULTTABLENAME);

			
			result.Columns.Add("序号",typeof(string));
			
			foreach(DataColumn col in ExamTable.Columns)
			{
				if(col.ColumnName=="序号")
					continue;
				if(!IsCriField(col.ColumnName))
					result.Columns.Add(new DataColumn(col.ColumnName,col.DataType));
                   
		
			}//end foreach

			foreach(string paratype in new string[]{"dizi","qice","dihua","cejing","zhonghe"})
			{
				
				result.Columns.Add(paratype+"结论",typeof(string));
				result.Columns.Add(paratype+"置信度",typeof(double));
			
			}


			
		
			return result;
		}

		public DataTable CreateTemplateResultTable()
		{
			if(ExamTable ==null)
			{

				//	MessageBox.Show("本数据库总没有表:"+NAME_EXAM_TABLENAME, "fileName Entry Error",					MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
				return null;
			}

			DataTable result=new DataTable(myResultDataSet.NAME_TEMPLATERESULTTABLENAME);

			
			result.Columns.Add("序号",typeof(string));
			
			foreach(DataColumn col in ExamTable.Columns)
			{
				if(col.ColumnName=="序号")
					continue;
				if(!IsCriField(col.ColumnName))
					result.Columns.Add(new DataColumn(col.ColumnName,col.DataType));
                   
		
			}//end foreach

			result.Columns.Add("结论",typeof(string));
			result.Columns.Add("匹配度",typeof(double));
			result.Columns.Add("匹配模板",typeof(int));
			
			


			
		
			return result;
		}

		public DataTable  ExamTable
		{
			get
			{
				return Tables[NAME_EXAM_TABLENAME];
			}
			set
			{
				if(ExamTable!=null)
					Tables.Remove(ExamTable);
				Tables.Add(value);
				
			}
		}
		
			public DataTable  ResultTable
			{
				get
				{
					
					return Tables[NAME_RESULT_TABLENAME];
				}
				set
				{
					if(ResultTable!=null)
						Tables.Remove(ResultTable);
					Tables.Add(value);
				
				}
			}

		
		
	}//end class myExamDataSet

	public class myItemValueDataSet : myDataSet
	{
		public myItemValueDataSet()
		{
			// 
			// TODO: 在此处添加构造函数逻辑
			//
		}
	}//end class myItemValueDataSet
	public class myResultDataSet : myDataSet
	{
		public static string NAME_STATISRESULTTABLENAME="统计推理结果";
		public static string NAME_FUZZYRESULTTABLENAME="模糊推理结果";
		public static string NAME_TEMPLATERESULTTABLENAME="模板推理结果";
		public static string NAME_CREDITLEVEL_FIELDNAME="可信等级";
		public static string NAME_RESULT_FIELDNAME="结论";
		public static string NAME_CREDITSCORE_FIELDNAME="总计";




		
		public myResultDataSet()
		{
			// 
			// TODO: 在此处添加构造函数逻辑
			//
			DataSetName="专家系统推理结论";
		}

		public ArrayList CreateEmptyStatisResultRows(ArrayList resulttypes)
		{
		
			ArrayList resultemptyrows=new ArrayList();
			foreach(object type in resulttypes)
			{
				DataRow row=StatisResultTable.NewRow();
				row["结论"]=type;
				resultemptyrows.Add(row);
			}
            
			return resultemptyrows;
			
		}

		public DataTable StatisResultTable
		{
			get
			{
				return Tables[NAME_STATISRESULTTABLENAME];
			}
			set
			{
				if(StatisResultTable!=null)
					Tables.Remove(StatisResultTable);
				Tables.Add(value);
				
			}
			
		}
		public DataTable FuzzyResultTable
		{
			get
			{
				return Tables[NAME_FUZZYRESULTTABLENAME];
			}
			set
			{
				if(FuzzyResultTable!=null)
					Tables.Remove(FuzzyResultTable);
				Tables.Add(value);
				
			}
		}

		public DataTable TemplateResultTable
		{
			get
			{
				return Tables[NAME_TEMPLATERESULTTABLENAME];
			}
			set
			{
				if(TemplateResultTable!=null)
					Tables.Remove(TemplateResultTable);
				Tables.Add(value);
				
			}
		}




	}//end class myResultDataSet

	public class myTemplateDataSet : myDataSet
	{
		public static string NAME_TEMPLATETABLENAME="template";
		public static string NAME_TEMPLATE_MAX_TABLENAME="templatemax";
		public static string NAME_TEMPLATE_MIN_TABLENAME="templatemin";
		public myTemplateDataSet()
		{
			// 
			// TODO: 在此处添加构造函数逻辑
			//
		}


		public static bool IsTemplateGene(DataColumn col)
		{
			
			
			if(col==null)
				return false;
			if(col.ColumnName=="序号")
				return false;
			if(col.ColumnName=="井号")
				return false;
		
			if(col.DataType==typeof(String ))
				return true;

			return false;
			
			
		}
		public ArrayList CreateEmptyTemplateRows(ArrayList resulttypes)
		{
		
			ArrayList resultemptyrows=new ArrayList();
			foreach(object type in resulttypes)
			{
				DataRow row=TemplateTable.NewRow();
				row["结论"]=type;
				resultemptyrows.Add(row);
			}
            
			return resultemptyrows;
			
		}

		public DataTable TemplateTable
		{
			get
			{
				return Tables[NAME_TEMPLATETABLENAME];
			}
			set
			{
				if(TemplateTable!=null)
					Tables.Remove(TemplateTable);
				Tables.Add(value);
				
			}
			
		}

		public DataTable TemplateMaxTable
		{
			get
			{
				return Tables[NAME_TEMPLATE_MAX_TABLENAME];
			}
			set
			{
				if(TemplateTable!=null)
					Tables.Remove(TemplateMaxTable);
				Tables.Add(value);
				
			}
			
		}
		
		public DataTable TemplateMinTable
		{
			get
			{
				return Tables[NAME_TEMPLATE_MIN_TABLENAME];
			}
			set
			{
				if(TemplateTable!=null)
					Tables.Remove(TemplateMinTable);
				Tables.Add(value);
				
			}
			
		}

		public unsafe void AddTemplate(sbyte* temp,float score,
										TemplateMapping tm,int indexbase)
				
			
		{
			try
			{
				DataRow minrow= TemplateMinTable.NewRow();
				DataRow maxrow= TemplateMaxTable.NewRow();
				DataRow templaterow=TemplateTable.NewRow();
				foreach(DataRow tf in tm.Rows)
				{
			
					if(tf["name"] as string =="结果类型")
						continue;
					minrow[tf["name"] as string]=tf["min"];
					maxrow[tf["name"] as string]=tf["max"];
					String s=new String(' ',0);
					int j;
					int i;
					for(j=(int)tf["offset"],i=0;i<(int)tf["width"];i++)
						s+=(char)temp[j+i];
					templaterow[tf["name"] as string]=s;
					templaterow["分值"]=score; 
				}
			
				templaterow["结论"]=tm.Resulttype;
				templaterow["目标样本号"]=tm.XUHAOinTable;
				templaterow["序号"]= indexbase+tm.XUHAOinTable;
				minrow["序号"]= templaterow["序号"];
				maxrow["序号"]= templaterow["序号"];
				TemplateMinTable.Rows.Add(minrow);
				TemplateMaxTable.Rows.Add(maxrow);
				TemplateTable.Rows.Add(templaterow);
				
				
			}
			catch(Exception e)
			{
				MessageBox.Show("错误号:" +e.Source.ToString()+"	"+e.Message,"突发错误!请详细记录本错误信息及目前的状态及操作,并报告我们!");

			}
			
		}




	}//end class myTemplateDataSet


}

⌨️ 快捷键说明

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