?? exam.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 + -