?? exam.cpp
字號(hào):
// Exam.cpp : 實(shí)現(xiàn)文件
//
#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 成員函數(shù)
CStringList& CExam::GetTerms()
{
this->m_Storage.OpenSql("Term","學(xué)期編號(hào)");
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","考試編號(hào)");
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 考試編號(hào)='"+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("學(xué)期編號(hào)",this->m_TermNo);
}
else
{
this->m_No="";
this->m_TermNo="";
}
}
bool CExam::IsNoExisted(CString No)
{
CString ConStr;
ConStr="where 考試編號(hào)='"+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="考試編號(hào),考試日期,學(xué)期編號(hào)";
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 考試編號(hào)='"+No+"'";
this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr);
}
// CExamClass
CExamClass::CExamClass()
{
this->m_TblName="ExamClass";
}
CExamClass::~CExamClass()
{
}
// CExamClass 成員函數(shù)
void CExamClass::GetExamClassByExamNo(CString ExamNo)
{
CString SqlStr;
SqlStr="select a.編號(hào),a.班級(jí)編號(hào),b.班級(jí)名稱,a.班級(jí)平均成績,a.班級(jí)總成績 ";
SqlStr+=" from ExamClass a,Class b where a.班級(jí)編號(hào)=b.班級(jí)編號(hào) and ";
SqlStr+=" a.考試編號(hào)='"+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","年級(jí)編號(hào),年級(jí)名稱");
if(this->m_Storage.GetRecordCount()>0)
{
this->m_Storage.MoveFirst();
CString fldvalue;
while(!this->m_Storage.IsEof())
{
this->m_Storage.GetFieldValue("年級(jí)編號(hào)",fldvalue);
strcpy(value.FieldValue,fldvalue);
this->m_Storage.GetFieldValue("年級(jí)名稱",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 年級(jí)編號(hào)='"+GradeNo+"'";
this->m_Storage.OpenSql("Class","班級(jí)編號(hào),班級(jí)名稱",ConStr);
if(this->m_Storage.GetRecordCount()>0)
{
this->m_Storage.MoveFirst();
CString fldvalue;
while(!this->m_Storage.IsEof())
{
this->m_Storage.GetFieldValue("班級(jí)編號(hào)",fldvalue);
strcpy(value.FieldValue,fldvalue);
this->m_Storage.GetFieldValue("班級(jí)名稱",fldvalue);
strcpy(value.DispalyFieldValue,fldvalue);
this->m_ClassList.AddTail(value);
this->m_Storage.MoveNext();
}
}
}
void CExamClass::AddClass()
{
CString FldList,ValueList;
FldList="考試編號(hào),班級(jí)編號(hào)";
ValueList="'"+this->m_ExamNo+"','"+this->m_ClassNo+"'";
this->m_Storage.ExecInsertSql(this->m_TblName,FldList,ValueList);
}
bool CExamClass::IsClassNoExisted(const CString ExamNo,CString ClassNo)//編號(hào)是否存在
{
CString ConStr;
ConStr="where 班級(jí)編號(hào)='"+ClassNo+"' and 考試編號(hào)='"+ExamNo+"'";
this->m_Storage.OpenSql(this->m_TblName,"編號(hào)",ConStr);
if(this->m_Storage.GetRecordCount()>0)
{
return true;
}
else
{
return false;
}
}
void CExamClass::DelClassByNo(CString No)
{
CString constr;
constr="where 編號(hào)="+No;
this->m_Storage.ExceDeleteSql(this->m_TblName,constr);
}
//CExamStudent
CExamStudent::CExamStudent()
{
this->m_TblName="ExamStudent" ;
}
CExamStudent::~CExamStudent()
{
}
//CExamStudent成員函數(shù)
void CExamStudent::GetExamStudentBy(const CString ExamNo,const CString ClassNo)
{
CString SqlStr;
SqlStr="select a.考生編號(hào) ,a.學(xué)號(hào),b.姓名,a.總成績,a.平均成績 ";
SqlStr+=" from ExamStudent a,student b where a.考試編號(hào)='"+ExamNo+"' and a.班級(jí)編號(hào)='"+ClassNo+"'";
SqlStr+=" and a.學(xué)號(hào)=b.學(xué)號(hào)";
this->m_Storage.Open(SqlStr,CADODataset::openQuery);
}
void CExamStudent::AddStudent()
{
CString FldList,ValueList;
FldList="考試編號(hào),班級(jí)編號(hào),學(xué)號(hào)";
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 班級(jí)編號(hào)='"+ClassNo+"'";
this->m_Storage.OpenSql("student","學(xué)號(hào),姓名",ConStr);
if(this->m_Storage.GetRecordCount()>0)
{
this->m_Storage.MoveFirst();
CString fldvalue;
while(!this->m_Storage.IsEof())
{
this->m_Storage.GetFieldValue("學(xué)號(hào)",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)//編號(hào)是否存在
{
CString ConStr;
ConStr="where 考試編號(hào)='"+ExamNo+"' and 班級(jí)編號(hào)='"+ClassNo+"' and 學(xué)號(hào)='";
ConStr+=StudentNo+"'";
this->m_Storage.OpenSql(this->m_TblName,"考生編號(hào)",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 考試編號(hào)='"+ExamNo+"' and 班級(jí)編號(hào)='"+ClassNo+"' and 學(xué)號(hào)='";
ConStr+=StudentNo+"'";
this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr);
}
void CExamStudent::DelStudentByNo(const CString No)
{
CString ConStr;
ConStr="where 考生編號(hào)="+No;
this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr);
}
//CExamSubject
void CExamSubject::GetExamSubjectBy(const CString ExamNo,const CString ClassNo)
{
CString SqlStr;
SqlStr="select a.編號(hào) ,a.學(xué)號(hào),b.姓名,a.課程編號(hào),c.課程名稱,a.成績 ";
SqlStr+=" from ExamSubject a,student b,subject c where a.考試編號(hào)='"+ExamNo+"' and a.班級(jí)編號(hào)='"+ClassNo+"'";
SqlStr+=" and a.學(xué)號(hào)=b.學(xué)號(hào) and a.課程編號(hào)=c.課程編號(hào)";
this->m_Storage.Open(SqlStr,CADODataset::openQuery);
}
void CExamSubject::GetStudentsByClassNo(CString ClassNo)//獲取學(xué)生列表
{
if(this->m_StudentList.GetCount()>0)
{
this->m_StudentList.RemoveAll();
}
CFldValue value;
CString ConStr;
ConStr="where 班級(jí)編號(hào)='"+ClassNo+"'";
this->m_Storage.OpenSql("student","學(xué)號(hào),姓名",ConStr);
if(this->m_Storage.GetRecordCount()>0)
{
this->m_Storage.MoveFirst();
CString fldvalue;
while(!this->m_Storage.IsEof())
{
this->m_Storage.GetFieldValue("學(xué)號(hào)",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.課程編號(hào),b.課程名稱 from SubjectClass a,Subject b ";
SqlStr+="where a.課程編號(hào)=b.課程編號(hào) and a.班級(jí)編號(hào)='"+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("課程編號(hào)",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="考試編號(hào),班級(jí)編號(hào),學(xué)號(hào),課程編號(hào),成績";
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 編號(hào)="+No;
this->m_Storage.ExceDeleteSql(this->m_TblName,ConStr);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -