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

📄 exam.cpp

📁 学生管理系统 一个学生管理的东西
💻 CPP
字号:
// Exam.cpp : 实现文件
//

#include "stdafx.h"
#include "StudentScore.h"
#include "Exam.h"


// CExam

CExam::CExam()
{
	this->m_TblName="Exam"; 
}

CExam::~CExam()
{
	if(this->m_TermList.GetCount()>0)
   {
      this->ClearTermList();
   }
}

// CExam 成员函数

CStringList& CExam::GetTerms()
{
   this->m_Storage.OpenSql("Term","学期编号");
   int count=this->m_Storage.GetRecordCount();
   if(this->m_TermList.GetCount()>0)
   {
      this->ClearTermList();
   }
   if(count>0)
   {
      this->m_Storage.MoveFirst();
	  CString value;
	  while(!this->m_Storage.IsEof())
	  {
         this->m_Storage.GetFieldValue(0,value);
	     m_TermList.AddTail(value);
		 this->m_Storage.MoveNext();
	  }
   }
  return this->m_TermList;
}

void CExam::ClearTermList(void)
{
	/*
	POSITION p;
	p=this->m_TermList.GetHeadPosition();
	while(p)
	{
	   delete this->m_TermList.GetNext(p);
	}
	*/
	this->m_TermList.RemoveAll();
}

CStringList* CExam::GetNos()
{
   this->m_Storage.OpenSql("Exam","考试编号");
   int count=this->m_Storage.GetRecordCount();
   if(this->m_NoList.GetCount()>0)
   {
      this->ClearNoList();
   }
   if(count>0)
   {
      this->m_Storage.MoveFirst();
	  CString value;
	  while(!this->m_Storage.IsEof())
	  {
         this->m_Storage.GetFieldValue(0,value);
	     m_NoList.AddTail(value);
		 this->m_Storage.MoveNext();
	  }
   }
  return &this->m_NoList;

}

void CExam::ClearNoList(void)
{
	/*
	POSITION p;
	p=this->m_NoList.GetHeadPosition();
	while(p)
	{
	   delete this->m_NoList.GetNext(p);
	}
	*/
	this->m_NoList.RemoveAll();
}
void CExam::GetExamByNo(CString No)//获取考试信息
{
   CString ConStr;
   ConStr="where 考试编号='"+No+"'";
   this->m_Storage.OpenSql(this->m_TblName,"*",ConStr);
   if(this->m_Storage.GetRecordCount()>0)
   {
      this->m_No=No;
	  this->m_Storage.GetFieldValue("考试日期",(COleDateTime*) &this->m_Date);
	  this->m_Storage.GetFieldValue("学期编号",this->m_TermNo);
   }
   else
   {
      this->m_No="";
	  this->m_TermNo=""; 
   }
}
bool CExam::IsNoExisted(CString No)
{
   CString ConStr;
   ConStr="where 考试编号='"+No+"'";
   this->m_Storage.OpenSql(this->m_TblName,"*",ConStr);
   if(this->m_Storage.GetRecordCount()>0)
   {
      return true;
   }
   else
   {
      return false;
   }
}
void CExam::AddExam()
{
   CString FldList,ValueList;
   FldList="考试编号,考试日期,学期编号";
   ValueList="'"+this->m_No+"','"+this->m_Date.Format()+"','"+this->m_TermNo+"'";
   this->m_Storage.ExecInsertSql(this->m_TblName,FldList,ValueList); 
}
void CExam::DeleteExamByNo(CString No)
{
	CString ConStr;
    ConStr="where 考试编号='"+No+"'";
    this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr); 
}
// CExamClass

CExamClass::CExamClass()
{
	this->m_TblName="ExamClass"; 
}

CExamClass::~CExamClass()
{
}

// CExamClass 成员函数
void CExamClass::GetExamClassByExamNo(CString ExamNo)
{
   CString SqlStr;
   SqlStr="select a.编号,a.班级编号,b.班级名称,a.班级平均成绩,a.班级总成绩 ";
   SqlStr+=" from ExamClass a,Class b where a.班级编号=b.班级编号 and ";
   SqlStr+=" a.考试编号='"+ExamNo+"'";
   this->m_Storage.Open(SqlStr,CADODataset::openQuery);
}
void CExamClass::GetGrades()
{
	if(this->m_GradeList.GetCount()>0)
	{
	  this->m_GradeList.RemoveAll();  
	}
	CFldValue value;
	this->m_Storage.OpenSql("Grade","年级编号,年级名称");
	if(this->m_Storage.GetRecordCount()>0)
	{   
		this->m_Storage.MoveFirst();
		CString fldvalue;
		while(!this->m_Storage.IsEof())
		{
		   this->m_Storage.GetFieldValue("年级编号",fldvalue);
		   strcpy(value.FieldValue,fldvalue);
    	   this->m_Storage.GetFieldValue("年级名称",fldvalue);
		   strcpy(value.DispalyFieldValue,fldvalue);
           this->m_GradeList.AddTail(value);
		   this->m_Storage.MoveNext();
		}
	
	}

}
void CExamClass::GetClassesByGradeNo(CString GradeNo)
{
	if(this->m_ClassList.GetCount()>0)
	{
	  this->m_ClassList.RemoveAll();  
	}
	CFldValue value;
	CString ConStr;
	ConStr="where 年级编号='"+GradeNo+"'";
	this->m_Storage.OpenSql("Class","班级编号,班级名称",ConStr);
	if(this->m_Storage.GetRecordCount()>0)
	{   
		this->m_Storage.MoveFirst();
		CString fldvalue;
		while(!this->m_Storage.IsEof())
		{
		   this->m_Storage.GetFieldValue("班级编号",fldvalue);
		   strcpy(value.FieldValue,fldvalue);
    	   this->m_Storage.GetFieldValue("班级名称",fldvalue);
		   strcpy(value.DispalyFieldValue,fldvalue);
           this->m_ClassList.AddTail(value);
		   this->m_Storage.MoveNext();
		}
	
	}
}

void CExamClass::AddClass()
{
   CString FldList,ValueList;
   FldList="考试编号,班级编号";
   ValueList="'"+this->m_ExamNo+"','"+this->m_ClassNo+"'";
   this->m_Storage.ExecInsertSql(this->m_TblName,FldList,ValueList); 
}
bool CExamClass::IsClassNoExisted(const CString ExamNo,CString ClassNo)//编号是否存在
{
   CString ConStr;
   ConStr="where 班级编号='"+ClassNo+"' and  考试编号='"+ExamNo+"'";
   this->m_Storage.OpenSql(this->m_TblName,"编号",ConStr);
   if(this->m_Storage.GetRecordCount()>0)
   {
      return true;
   }
   else
   {
      return false;
   }
}

void CExamClass::DelClassByNo(CString No)
{
  CString constr;
  constr="where 编号="+No;
  this->m_Storage.ExceDeleteSql(this->m_TblName,constr); 
}

//CExamStudent

CExamStudent::CExamStudent()
{
    this->m_TblName="ExamStudent" ;
}
CExamStudent::~CExamStudent()
{

}

//CExamStudent成员函数

void CExamStudent::GetExamStudentBy(const CString ExamNo,const CString ClassNo)
{
   CString SqlStr;
   SqlStr="select a.考生编号 ,a.学号,b.姓名,a.总成绩,a.平均成绩 ";
   SqlStr+=" from ExamStudent a,student b where a.考试编号='"+ExamNo+"' and  a.班级编号='"+ClassNo+"'";
   SqlStr+=" and a.学号=b.学号";
   this->m_Storage.Open(SqlStr,CADODataset::openQuery); 
}

void CExamStudent::AddStudent()
{
    CString FldList,ValueList;
   FldList="考试编号,班级编号,学号";
   ValueList="'"+this->m_ExamNo+"','"+this->m_ClassNo+"','"+this->m_StudentNo+"'";
   this->m_Storage.ExecInsertSql(this->m_TblName,FldList,ValueList); 
}

void CExamStudent::GetStudentsByClassNo(CString ClassNo)
{
	if(this->m_StudentList.GetCount()>0)
	{
	  this->m_StudentList.RemoveAll();  
	}
	CFldValue value;
	CString ConStr;
	ConStr="where 班级编号='"+ClassNo+"'";
	this->m_Storage.OpenSql("student","学号,姓名",ConStr);
	if(this->m_Storage.GetRecordCount()>0)
	{   
		this->m_Storage.MoveFirst();
		CString fldvalue;
		while(!this->m_Storage.IsEof())
		{
		   this->m_Storage.GetFieldValue("学号",fldvalue);
		   strcpy(value.FieldValue,fldvalue);
    	   this->m_Storage.GetFieldValue("姓名",fldvalue);
		   strcpy(value.DispalyFieldValue,fldvalue);
           this->m_StudentList.AddTail(value);
		   this->m_Storage.MoveNext();
		}
	
	}
}

bool CExamStudent::IsStudentNoExisted(const CString ExamNo,const CString ClassNo,const CString StudentNo)//编号是否存在
{
	CString ConStr;
	ConStr="where 考试编号='"+ExamNo+"' and 班级编号='"+ClassNo+"' and 学号='";
	ConStr+=StudentNo+"'";
   this->m_Storage.OpenSql(this->m_TblName,"考生编号",ConStr);
   if(this->m_Storage.GetRecordCount()>0)
   {
      return true;
   }
   else
   {
      return false;
   }
}

void CExamStudent::DelStudent(const CString ExamNo,const CString ClassNo,const CString StudentNo)
{
	CString ConStr;
	ConStr="where 考试编号='"+ExamNo+"' and 班级编号='"+ClassNo+"' and 学号='";
	ConStr+=StudentNo+"'";
	this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr); 
}
void CExamStudent::DelStudentByNo(const CString No)
{
    CString ConStr;
	ConStr="where 考生编号="+No;
	this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr); 
}

//CExamSubject
void CExamSubject::GetExamSubjectBy(const CString ExamNo,const CString ClassNo)
{
   CString SqlStr;
   SqlStr="select a.编号 ,a.学号,b.姓名,a.课程编号,c.课程名称,a.成绩 ";
   SqlStr+=" from ExamSubject a,student b,subject c where a.考试编号='"+ExamNo+"' and  a.班级编号='"+ClassNo+"'";
   SqlStr+=" and a.学号=b.学号 and a.课程编号=c.课程编号";
   this->m_Storage.Open(SqlStr,CADODataset::openQuery); 
}
void CExamSubject::GetStudentsByClassNo(CString ClassNo)//获取学生列表
{
   	if(this->m_StudentList.GetCount()>0)
	{
	  this->m_StudentList.RemoveAll();  
	}
	CFldValue value;
	CString ConStr;
	ConStr="where 班级编号='"+ClassNo+"'";
	this->m_Storage.OpenSql("student","学号,姓名",ConStr);
	if(this->m_Storage.GetRecordCount()>0)
	{   
		this->m_Storage.MoveFirst();
		CString fldvalue;
		while(!this->m_Storage.IsEof())
		{
		   this->m_Storage.GetFieldValue("学号",fldvalue);
		   strcpy(value.FieldValue,fldvalue);
    	   this->m_Storage.GetFieldValue("姓名",fldvalue);
		   strcpy(value.DispalyFieldValue,fldvalue);
           this->m_StudentList.AddTail(value);
		   this->m_Storage.MoveNext();
		}
	
	}
}
void CExamSubject::GetSubjectsByClassNo(CString ClassNo)//科目列表
{
   	if(this->m_SubjectList.GetCount()>0)
	{
	  this->m_SubjectList.RemoveAll();  
	}
	CFldValue value;
	CString SqlStr;
	SqlStr="select a.课程编号,b.课程名称 from SubjectClass a,Subject b ";
	SqlStr+="where a.课程编号=b.课程编号 and a.班级编号='"+ClassNo+"'";
    this->m_Storage.Open(SqlStr,CADODataset::openQuery); 
	if(this->m_Storage.GetRecordCount()>0)
	{   
		this->m_Storage.MoveFirst();
		CString fldvalue;
		while(!this->m_Storage.IsEof())
		{
		   this->m_Storage.GetFieldValue("课程编号",fldvalue);
		   strcpy(value.FieldValue,fldvalue);
    	   this->m_Storage.GetFieldValue("课程名称",fldvalue);
		   strcpy(value.DispalyFieldValue,fldvalue);
           this->m_SubjectList.AddTail(value);
		   this->m_Storage.MoveNext();
		}
	
	}
}
void CExamSubject::AddSubject()//添加科目
{
   CString FldList,ValueList;
   char a[50];
   FldList="考试编号,班级编号,学号,课程编号,成绩";
   ValueList="'"+this->m_ExamNo+"','"+this->m_ClassNo+"','";
   ValueList+=this->m_StudentNo+"','"+this->m_SubjectNo+"',";
   sprintf(a,"%f",this->m_Score); 
   ValueList+=a;
   this->m_Storage.ExecInsertSql(this->m_TblName,FldList,ValueList); 
}
void CExamSubject::DelSubjectByNo(const CString No)//删除科目
{
    CString ConStr;
	ConStr="where 编号="+No;
	this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr); 
}

⌨️ 快捷键说明

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