VC++课程设计学生成绩管理系统详解和源码讲课教案.docx
《VC++课程设计学生成绩管理系统详解和源码讲课教案.docx》由会员分享,可在线阅读,更多相关《VC++课程设计学生成绩管理系统详解和源码讲课教案.docx(30页珍藏版)》请在冰豆网上搜索。
VC++课程设计学生成绩管理系统详解和源码讲课教案
VC++课程设计
设计项目:
学生成绩管理系统
设计者:
张守阳(20102973)
班级:
计本10级二班
使用软件:
VC++6.0
使用数据库:
ACCESS
设计流程
一、设计理念
开发一款学生成绩管理程序,实现学生基本信息的录入、查询及浏览和修改操作。
以及学生成绩的录入、查询、浏览以及统计分析等功能。
以上功能以可视化界面方式进行操作,并将学生成绩信息保存。
二、数据库设计
在这个程序中,所用到的数据库是ACCESS数据库。
在数据库中,添加了8个表,分别是NO1OBJECT、NO1STUDENT、NO1STUINFO、NO1TEACHER、NO2OBJECT、NO2STUDENT、NO2STUINFO、NO2TEACHER.
这8个表分别记录着两个班的:
成绩概况、学生成绩、学生信息、教师信息。
三、程序设计
此成绩管理系统共有两个模块:
一个是学生成绩管理模块,一个是学生信息管理模块。
在登录成功后(登录用户名和密码都是:
admin)会出现主窗口。
在主窗口中可以通过单击两个模块的按钮实现来实现两个模块间的切换。
学生成绩模块所实现的功能是:
根据班级选项显示学上成绩信息,并且实现成绩的添加、修改、删除、查询功能。
学生信息模块能够实现学生信息的显示、添加、修改和删除功能。
四、此程序的介绍
此程序是基于对话框的MFC程序。
所有的弹出式对话框是模态对话框,由于用到的对话框较多,所以定义的类较多,看起来有点眼花缭乱。
由于我对MFC掌握程度有限,这个程序做的有点粗糙,既不美观,在功能上也有许多不尽人意的地方,或许还会存在bug。
五、程序的实现
1)、修改APP类
由于此程序用到数据库,所以需要先连接数据源。
此程序通过采用代码来连接到所设计的数据源。
首先将设计的数据库复制到工程所在根目录下,再在APP中的initInstance()函数中添加如下代码:
///////加载数据源
if(!
AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
returnFALSE;
}
CStringsPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer();
intnPos;
nPos=sPath.ReverseFind('\\');
sPath=sPath.Left(nPos);
CStringlpszFile=sPath+"\\mydb.mdb";
char*szDesc;
intmlen;
szDesc=newchar[256];
sprintf(szDesc,"DSN=%s?
DESCRIPTION=TOCsupportsource?
DBQ=%s?
FIL=MicrosoftAccess?
DEFAULTDIR=%s?
?
","mydb",lpszFile,sPath);
mlen=strlen(szDesc);
for(inti=0;i{if(szDesc[i]=='?')szDesc[i]='\0';}if(FALSE==SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MicrosoftAccessDriver(*.mdb)\0",(LPCSTR)szDesc))AfxMessageBox("SQLConfigDataSourceFailed");try{CStringstrConnect;strConnect.Format("DSN=mydb;");if(!m_DB.OpenEx(strConnect,CDatabase::useCursorLib)){AfxMessageBox("UnabletoConnecttotheSpecifiedDataSource");returnFALSE;}}catch(CDBException*pE){pE->ReportError();pE->Delete();returnFALSE;}//////////////////////////////其中m_DB是定义的一个CDatabase对象,用来指向数据库mymdb。2)、新建CRecordset数据集类在项目中,共有四个数据集类,分别是CDRecordset、CBRecordset、CTRecordset、CSinfoRecordset。它们分别对应学生成绩表、成绩概况表、教师表和学生信息表。3)、学生成绩模块的代码BOOLCBaDialog::OnInitDialog(){CDialog::OnInitDialog();CDRecordsetm_Set(&theApp.m_DB);CBRecordsetm_bSet(&theApp.m_DB);CTRecordsetm_tSet(&theApp.m_DB);//////////初始化列表控件ListCtrlxunsignedi=0;CODBCFieldInfoInfo;m_Set.Open();m_ListCtrlx.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);for(i=0;i{m_Set.GetODBCFieldInfo(i,Info);m_ListCtrlx.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);}m_Set.Close();//////////初始化列表控件ListCtrlbm_bSet.Open();m_ListCtrlb.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);for(i=0;i{m_bSet.GetODBCFieldInfo(i,Info);m_ListCtrlb.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);}m_bSet.Close();/////////////////////////////////////////////////初始化列表控件ListCtrllm_ListCtrll.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_ListCtrll.InsertColumn(0,_T("科目"),LVCFMT_IMAGE|LVCFMT_LEFT);m_ListCtrll.InsertColumn(1,"任课老师");for(i=0;i<2;i++)m_ListCtrll.SetColumnWidth(i,80);m_cob.SetCurSel(1);this->Enable(FALSE);m_Timer=SetTimer(1,2,NULL);m_bIsAsc=TRUE;m_bS=TRUE;returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidCBaDialog::OnStatr(){//TODO:Addyourcontrolnotificationhandlercodeherem_ListCtrlx.DeleteAllItems();m_ListCtrlb.DeleteAllItems();m_ListCtrll.DeleteAllItems();if(m_Set.IsOpen())m_Set.Close();if(m_bSet.IsOpen())m_bSet.Close();m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);this->Select();if(m_Getstring=="计本一班")m_tSet.Open();if(m_Getstring=="计本二班")m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");m_nRecordCount=this->Show();//初始化“学生成绩详单”,并返回字段数this->display();//初始化“各科成绩概况”this->exhibit();//将teacher表中的记录加载到“任课教师”m_bS=GetDlgItem(IDC_STATR)->EnableWindow(true);this->Enable(TRUE);}intCBaDialog::Show(){inti=0;m_Set.MoveFirst();do{CStrings;s.Format("%d",m_Set.m_column1);m_ListCtrlx.InsertItem(i,s,0);m_ListCtrlx.SetItemText(i,1,m_Set.m_column2);s.Format("%.1f",m_Set.m_column3);m_ListCtrlx.SetItemText(i,2,s);s.Format("%.1f",m_Set.m_column4);m_ListCtrlx.SetItemText(i,3,s);s.Format("%.1f",m_Set.m_column5);m_ListCtrlx.SetItemText(i,4,s);s.Format("%.1f",m_Set.m_column6);m_ListCtrlx.SetItemText(i,5,s);s.Format("%.1f",m_Set.m_column7);m_ListCtrlx.SetItemText(i,6,s);s.Format("%.1f",m_Set.m_column8);m_ListCtrlx.SetItemText(i,7,s);s.Format("%.2f",m_Set.m_column9);m_ListCtrlx.SetItemText(i,8,s);i++;m_Set.MoveNext();}while(!m_Set.IsEOF());m_Set.Close();returni;}voidCBaDialog::display(){inti=0;m_bSet.MoveFirst();do{CStrings;m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);s.Format("%.1f",m_bSet.m_column2);m_ListCtrlb.SetItemText(i,1,s);s.Format("%.2f",m_bSet.m_column3);m_ListCtrlb.SetItemText(i,2,s);s.Format("%d",m_bSet.m_column4);m_ListCtrlb.SetItemText(i,3,s);s.Format("%d",m_bSet.m_column5);m_ListCtrlb.SetItemText(i,4,s);i++;m_bSet.MoveNext();}while(!m_bSet.IsEOF());m_bSet.Close();}voidCBaDialog::exhibit(){inti=0;do{m_ListCtrll.InsertItem(i,m_tSet.m_column1,0);m_ListCtrll.SetItemText(i,1,m_tSet.m_column2);i++;m_tSet.MoveNext();}while(!m_tSet.IsEOF());m_tSet.Close();}voidCBaDialog::Enable(BOOLp){BOOLHB;HB=p;GetDlgItem(IDC_ADD)->EnableWindow(HB);GetDlgItem(IDC_DELECT)->EnableWindow(HB);GetDlgItem(IDC_EDIT)->EnableWindow(HB);GetDlgItem(IDC_FIND)->EnableWindow(HB);GetDlgItem(IDC_ALL)->EnableWindow(HB);}CStringCBaDialog::Select()//班级的选择{if(m_Getstring=="计本一班"){m_Set.Open();m_bSet.Open();}else{m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]");m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]");}returnm_Getstring;}voidCBaDialog::Equal(){for(inti=0;i<5;i++){floatp=0;if(i==0)p=m_Set.m_column3;if(i==1)p=m_Set.m_column4;if(i==2)p=m_Set.m_column5;if(i==3)p=m_Set.m_column6;if(i==4)p=m_Set.m_column7; m_bSet.Edit();if(Selec==FALSE){m_bSet.m_column2-=p;m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);if(p>=60)m_bSet.m_column4-=1;if(p>=80)m_bSet.m_column5-=1;}else{m_bSet.m_column2+=p;m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);if(p>=60)m_bSet.m_column4+=1;if(p>=80)m_bSet.m_column5+=1;}m_bSet.Update();if(!m_bSet.IsEOF())m_bSet.MoveNext();elsebreak;}}voidCBaDialog::Xuan(){m_ListCtrlb.DeleteAllItems();this->display();m_ListCtrlx.DeleteAllItems();this->Show();}voidCBaDialog::OnTimer(UINTnIDEvent){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCStringm_string;m_cob.GetLBText(m_cob.GetCurSel(),m_string);if(m_Getstring!=m_string){GetDlgItem(IDC_STATR)->EnableWindow(TRUE);this->Enable(FALSE);}CDialog::OnTimer(nIDEvent);}voidCBaDialog::OnAdd(){//TODO:AddyourcontrolnotificationhandlercodehereSelec=TRUE;CAddialogdlg;/////////////////////////////if(m_Set.IsOpen())m_Set.Close();if(m_bSet.IsOpen())m_bSet.Close();if(m_tSet.IsOpen())m_tSet.Close();m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);this->Select();if(m_Getstring=="计本一班")m_tSet.Open();if(m_Getstring=="计本二班")m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");/////////////////////////////////if(dlg.DoModal()==IDOK){m_Set.AddNew();m_nRecordCount+=1;m_Set.m_column1=dlg.m_nxue;m_Set.m_column2=dlg.m_strName;m_Set.m_column3=dlg.m_fmaths;m_Set.m_column4=dlg.m_fphysical;m_Set.m_column5=dlg.m_fchemistry;m_Set.m_column6=dlg.m_fenglish;m_Set.m_column7=dlg.m_fpolitic;m_Set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic;m_Set.m_column9=(float)(m_Set.m_column8/5);this->Equal();m_Set.Update();//Update()一定放在Equal()后m_Set.Requery();this->Xuan();}} voidCBaDialog::OnDelect(){//TODO:AddyourcontrolnotificationhandlercodehereCDelectDialogdlg;Selec=FALSE;if(dlg.DoModal()==IDOK){this->Select();m_Set.MoveFirst();BOOLsel=FALSE;do{if(m_Set.m_column1!=dlg.m_nxue)m_Set.MoveNext();else{m_nRecordCount-=1;sel=TRUE;m_bSet.MoveFirst();this->Equal();m_Set.Delete();m_Set.Requery();break;}}while(!m_Set.IsEOF());if(sel==FALSE){AfxMessageBox("没有此记录");return;}elsethis->Xuan();}}voidCBaDialog::OnFind(){//TODO:AddyourcontrolnotificationhandlercodehereCFinDialogdlg;if(dlg.DoModal()==IDOK){this->Select();//选择班级m_bSet.Close();if(dlg.m_Getstring2==">=")m_Set.m_strFilter.Format("[%s]>=%.2f",dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=="=")m_Set.m_strFilter.Format("[%s]=%.2f",dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=="<=")m_Set.m_strFilter.Format("[%s]<=%.2f",dlg.m_Getstring1,dlg.m_find);m_ListCtrlx.DeleteAllItems();m_Set.Requery();if(m_Set.IsEOF()){AfxMessageBox("没有符合条件的记录");m_Set.Close();return;}elsethis->Show();}}voidCBaDialog::OnAll(){//TODO:Addyourcontrolnotificationhandlercodeherethis->Select();m_bSet.Close();m_Set.m_strFilter.Empty();m_Set.Requery();m_ListCtrlx.DeleteAllItems();this->Show();}voidCBaDialog::OnEdit()
if(szDesc[i]=='?
')
szDesc[i]='\0';
if(FALSE==SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MicrosoftAccessDriver(*.mdb)\0",(LPCSTR)szDesc))
AfxMessageBox("SQLConfigDataSourceFailed");
try
CStringstrConnect;
strConnect.Format("DSN=mydb;");
m_DB.OpenEx(strConnect,CDatabase:
:
useCursorLib))
AfxMessageBox("UnabletoConnecttotheSpecifiedDataSource");
catch(CDBException*pE)
pE->ReportError();
pE->Delete();
//////////////////////////////
其中m_DB是定义的一个CDatabase对象,用来指向数据库mymdb。
2)、新建CRecordset数据集类
在项目中,共有四个数据集类,分别是CDRecordset、CBRecordset、CTRecordset、CSinfoRecordset。
它们分别对应学生成绩表、成绩概况表、教师表和学生信息表。
3)、学生成绩模块的代码
BOOLCBaDialog:
OnInitDialog()
CDialog:
OnInitDialog();
CDRecordsetm_Set(&theApp.m_DB);
CBRecordsetm_bSet(&theApp.m_DB);
CTRecordsetm_tSet(&theApp.m_DB);
//////////初始化列表控件ListCtrlx
unsignedi=0;
CODBCFieldInfoInfo;
m_Set.Open();
m_ListCtrlx.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
for(i=0;i{m_Set.GetODBCFieldInfo(i,Info);m_ListCtrlx.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);}m_Set.Close();//////////初始化列表控件ListCtrlbm_bSet.Open();m_ListCtrlb.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);for(i=0;i{m_bSet.GetODBCFieldInfo(i,Info);m_ListCtrlb.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);}m_bSet.Close();/////////////////////////////////////////////////初始化列表控件ListCtrllm_ListCtrll.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_ListCtrll.InsertColumn(0,_T("科目"),LVCFMT_IMAGE|LVCFMT_LEFT);m_ListCtrll.InsertColumn(1,"任课老师");for(i=0;i<2;i++)m_ListCtrll.SetColumnWidth(i,80);m_cob.SetCurSel(1);this->Enable(FALSE);m_Timer=SetTimer(1,2,NULL);m_bIsAsc=TRUE;m_bS=TRUE;returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidCBaDialog::OnStatr(){//TODO:Addyourcontrolnotificationhandlercodeherem_ListCtrlx.DeleteAllItems();m_ListCtrlb.DeleteAllItems();m_ListCtrll.DeleteAllItems();if(m_Set.IsOpen())m_Set.Close();if(m_bSet.IsOpen())m_bSet.Close();m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);this->Select();if(m_Getstring=="计本一班")m_tSet.Open();if(m_Getstring=="计本二班")m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");m_nRecordCount=this->Show();//初始化“学生成绩详单”,并返回字段数this->display();//初始化“各科成绩概况”this->exhibit();//将teacher表中的记录加载到“任课教师”m_bS=GetDlgItem(IDC_STATR)->EnableWindow(true);this->Enable(TRUE);}intCBaDialog::Show(){inti=0;m_Set.MoveFirst();do{CStrings;s.Format("%d",m_Set.m_column1);m_ListCtrlx.InsertItem(i,s,0);m_ListCtrlx.SetItemText(i,1,m_Set.m_column2);s.Format("%.1f",m_Set.m_column3);m_ListCtrlx.SetItemText(i,2,s);s.Format("%.1f",m_Set.m_column4);m_ListCtrlx.SetItemText(i,3,s);s.Format("%.1f",m_Set.m_column5);m_ListCtrlx.SetItemText(i,4,s);s.Format("%.1f",m_Set.m_column6);m_ListCtrlx.SetItemText(i,5,s);s.Format("%.1f",m_Set.m_column7);m_ListCtrlx.SetItemText(i,6,s);s.Format("%.1f",m_Set.m_column8);m_ListCtrlx.SetItemText(i,7,s);s.Format("%.2f",m_Set.m_column9);m_ListCtrlx.SetItemText(i,8,s);i++;m_Set.MoveNext();}while(!m_Set.IsEOF());m_Set.Close();returni;}voidCBaDialog::display(){inti=0;m_bSet.MoveFirst();do{CStrings;m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);s.Format("%.1f",m_bSet.m_column2);m_ListCtrlb.SetItemText(i,1,s);s.Format("%.2f",m_bSet.m_column3);m_ListCtrlb.SetItemText(i,2,s);s.Format("%d",m_bSet.m_column4);m_ListCtrlb.SetItemText(i,3,s);s.Format("%d",m_bSet.m_column5);m_ListCtrlb.SetItemText(i,4,s);i++;m_bSet.MoveNext();}while(!m_bSet.IsEOF());m_bSet.Close();}voidCBaDialog::exhibit(){inti=0;do{m_ListCtrll.InsertItem(i,m_tSet.m_column1,0);m_ListCtrll.SetItemText(i,1,m_tSet.m_column2);i++;m_tSet.MoveNext();}while(!m_tSet.IsEOF());m_tSet.Close();}voidCBaDialog::Enable(BOOLp){BOOLHB;HB=p;GetDlgItem(IDC_ADD)->EnableWindow(HB);GetDlgItem(IDC_DELECT)->EnableWindow(HB);GetDlgItem(IDC_EDIT)->EnableWindow(HB);GetDlgItem(IDC_FIND)->EnableWindow(HB);GetDlgItem(IDC_ALL)->EnableWindow(HB);}CStringCBaDialog::Select()//班级的选择{if(m_Getstring=="计本一班"){m_Set.Open();m_bSet.Open();}else{m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]");m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]");}returnm_Getstring;}voidCBaDialog::Equal(){for(inti=0;i<5;i++){floatp=0;if(i==0)p=m_Set.m_column3;if(i==1)p=m_Set.m_column4;if(i==2)p=m_Set.m_column5;if(i==3)p=m_Set.m_column6;if(i==4)p=m_Set.m_column7; m_bSet.Edit();if(Selec==FALSE){m_bSet.m_column2-=p;m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);if(p>=60)m_bSet.m_column4-=1;if(p>=80)m_bSet.m_column5-=1;}else{m_bSet.m_column2+=p;m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);if(p>=60)m_bSet.m_column4+=1;if(p>=80)m_bSet.m_column5+=1;}m_bSet.Update();if(!m_bSet.IsEOF())m_bSet.MoveNext();elsebreak;}}voidCBaDialog::Xuan(){m_ListCtrlb.DeleteAllItems();this->display();m_ListCtrlx.DeleteAllItems();this->Show();}voidCBaDialog::OnTimer(UINTnIDEvent){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCStringm_string;m_cob.GetLBText(m_cob.GetCurSel(),m_string);if(m_Getstring!=m_string){GetDlgItem(IDC_STATR)->EnableWindow(TRUE);this->Enable(FALSE);}CDialog::OnTimer(nIDEvent);}voidCBaDialog::OnAdd(){//TODO:AddyourcontrolnotificationhandlercodehereSelec=TRUE;CAddialogdlg;/////////////////////////////if(m_Set.IsOpen())m_Set.Close();if(m_bSet.IsOpen())m_bSet.Close();if(m_tSet.IsOpen())m_tSet.Close();m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);this->Select();if(m_Getstring=="计本一班")m_tSet.Open();if(m_Getstring=="计本二班")m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");/////////////////////////////////if(dlg.DoModal()==IDOK){m_Set.AddNew();m_nRecordCount+=1;m_Set.m_column1=dlg.m_nxue;m_Set.m_column2=dlg.m_strName;m_Set.m_column3=dlg.m_fmaths;m_Set.m_column4=dlg.m_fphysical;m_Set.m_column5=dlg.m_fchemistry;m_Set.m_column6=dlg.m_fenglish;m_Set.m_column7=dlg.m_fpolitic;m_Set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic;m_Set.m_column9=(float)(m_Set.m_column8/5);this->Equal();m_Set.Update();//Update()一定放在Equal()后m_Set.Requery();this->Xuan();}} voidCBaDialog::OnDelect(){//TODO:AddyourcontrolnotificationhandlercodehereCDelectDialogdlg;Selec=FALSE;if(dlg.DoModal()==IDOK){this->Select();m_Set.MoveFirst();BOOLsel=FALSE;do{if(m_Set.m_column1!=dlg.m_nxue)m_Set.MoveNext();else{m_nRecordCount-=1;sel=TRUE;m_bSet.MoveFirst();this->Equal();m_Set.Delete();m_Set.Requery();break;}}while(!m_Set.IsEOF());if(sel==FALSE){AfxMessageBox("没有此记录");return;}elsethis->Xuan();}}voidCBaDialog::OnFind(){//TODO:AddyourcontrolnotificationhandlercodehereCFinDialogdlg;if(dlg.DoModal()==IDOK){this->Select();//选择班级m_bSet.Close();if(dlg.m_Getstring2==">=")m_Set.m_strFilter.Format("[%s]>=%.2f",dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=="=")m_Set.m_strFilter.Format("[%s]=%.2f",dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=="<=")m_Set.m_strFilter.Format("[%s]<=%.2f",dlg.m_Getstring1,dlg.m_find);m_ListCtrlx.DeleteAllItems();m_Set.Requery();if(m_Set.IsEOF()){AfxMessageBox("没有符合条件的记录");m_Set.Close();return;}elsethis->Show();}}voidCBaDialog::OnAll(){//TODO:Addyourcontrolnotificationhandlercodeherethis->Select();m_bSet.Close();m_Set.m_strFilter.Empty();m_Set.Requery();m_ListCtrlx.DeleteAllItems();this->Show();}voidCBaDialog::OnEdit()
m_Set.GetODBCFieldInfo(i,Info);
m_ListCtrlx.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);
m_Set.Close();
//////////初始化列表控件ListCtrlb
m_bSet.Open();
m_ListCtrlb.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
for(i=0;i{m_bSet.GetODBCFieldInfo(i,Info);m_ListCtrlb.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);}m_bSet.Close();/////////////////////////////////////////////////初始化列表控件ListCtrllm_ListCtrll.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_ListCtrll.InsertColumn(0,_T("科目"),LVCFMT_IMAGE|LVCFMT_LEFT);m_ListCtrll.InsertColumn(1,"任课老师");for(i=0;i<2;i++)m_ListCtrll.SetColumnWidth(i,80);m_cob.SetCurSel(1);this->Enable(FALSE);m_Timer=SetTimer(1,2,NULL);m_bIsAsc=TRUE;m_bS=TRUE;returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidCBaDialog::OnStatr(){//TODO:Addyourcontrolnotificationhandlercodeherem_ListCtrlx.DeleteAllItems();m_ListCtrlb.DeleteAllItems();m_ListCtrll.DeleteAllItems();if(m_Set.IsOpen())m_Set.Close();if(m_bSet.IsOpen())m_bSet.Close();m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);this->Select();if(m_Getstring=="计本一班")m_tSet.Open();if(m_Getstring=="计本二班")m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");m_nRecordCount=this->Show();//初始化“学生成绩详单”,并返回字段数this->display();//初始化“各科成绩概况”this->exhibit();//将teacher表中的记录加载到“任课教师”m_bS=GetDlgItem(IDC_STATR)->EnableWindow(true);this->Enable(TRUE);}intCBaDialog::Show(){inti=0;m_Set.MoveFirst();do{CStrings;s.Format("%d",m_Set.m_column1);m_ListCtrlx.InsertItem(i,s,0);m_ListCtrlx.SetItemText(i,1,m_Set.m_column2);s.Format("%.1f",m_Set.m_column3);m_ListCtrlx.SetItemText(i,2,s);s.Format("%.1f",m_Set.m_column4);m_ListCtrlx.SetItemText(i,3,s);s.Format("%.1f",m_Set.m_column5);m_ListCtrlx.SetItemText(i,4,s);s.Format("%.1f",m_Set.m_column6);m_ListCtrlx.SetItemText(i,5,s);s.Format("%.1f",m_Set.m_column7);m_ListCtrlx.SetItemText(i,6,s);s.Format("%.1f",m_Set.m_column8);m_ListCtrlx.SetItemText(i,7,s);s.Format("%.2f",m_Set.m_column9);m_ListCtrlx.SetItemText(i,8,s);i++;m_Set.MoveNext();}while(!m_Set.IsEOF());m_Set.Close();returni;}voidCBaDialog::display(){inti=0;m_bSet.MoveFirst();do{CStrings;m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);s.Format("%.1f",m_bSet.m_column2);m_ListCtrlb.SetItemText(i,1,s);s.Format("%.2f",m_bSet.m_column3);m_ListCtrlb.SetItemText(i,2,s);s.Format("%d",m_bSet.m_column4);m_ListCtrlb.SetItemText(i,3,s);s.Format("%d",m_bSet.m_column5);m_ListCtrlb.SetItemText(i,4,s);i++;m_bSet.MoveNext();}while(!m_bSet.IsEOF());m_bSet.Close();}voidCBaDialog::exhibit(){inti=0;do{m_ListCtrll.InsertItem(i,m_tSet.m_column1,0);m_ListCtrll.SetItemText(i,1,m_tSet.m_column2);i++;m_tSet.MoveNext();}while(!m_tSet.IsEOF());m_tSet.Close();}voidCBaDialog::Enable(BOOLp){BOOLHB;HB=p;GetDlgItem(IDC_ADD)->EnableWindow(HB);GetDlgItem(IDC_DELECT)->EnableWindow(HB);GetDlgItem(IDC_EDIT)->EnableWindow(HB);GetDlgItem(IDC_FIND)->EnableWindow(HB);GetDlgItem(IDC_ALL)->EnableWindow(HB);}CStringCBaDialog::Select()//班级的选择{if(m_Getstring=="计本一班"){m_Set.Open();m_bSet.Open();}else{m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]");m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]");}returnm_Getstring;}voidCBaDialog::Equal(){for(inti=0;i<5;i++){floatp=0;if(i==0)p=m_Set.m_column3;if(i==1)p=m_Set.m_column4;if(i==2)p=m_Set.m_column5;if(i==3)p=m_Set.m_column6;if(i==4)p=m_Set.m_column7; m_bSet.Edit();if(Selec==FALSE){m_bSet.m_column2-=p;m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);if(p>=60)m_bSet.m_column4-=1;if(p>=80)m_bSet.m_column5-=1;}else{m_bSet.m_column2+=p;m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);if(p>=60)m_bSet.m_column4+=1;if(p>=80)m_bSet.m_column5+=1;}m_bSet.Update();if(!m_bSet.IsEOF())m_bSet.MoveNext();elsebreak;}}voidCBaDialog::Xuan(){m_ListCtrlb.DeleteAllItems();this->display();m_ListCtrlx.DeleteAllItems();this->Show();}voidCBaDialog::OnTimer(UINTnIDEvent){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCStringm_string;m_cob.GetLBText(m_cob.GetCurSel(),m_string);if(m_Getstring!=m_string){GetDlgItem(IDC_STATR)->EnableWindow(TRUE);this->Enable(FALSE);}CDialog::OnTimer(nIDEvent);}voidCBaDialog::OnAdd(){//TODO:AddyourcontrolnotificationhandlercodehereSelec=TRUE;CAddialogdlg;/////////////////////////////if(m_Set.IsOpen())m_Set.Close();if(m_bSet.IsOpen())m_bSet.Close();if(m_tSet.IsOpen())m_tSet.Close();m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);this->Select();if(m_Getstring=="计本一班")m_tSet.Open();if(m_Getstring=="计本二班")m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");/////////////////////////////////if(dlg.DoModal()==IDOK){m_Set.AddNew();m_nRecordCount+=1;m_Set.m_column1=dlg.m_nxue;m_Set.m_column2=dlg.m_strName;m_Set.m_column3=dlg.m_fmaths;m_Set.m_column4=dlg.m_fphysical;m_Set.m_column5=dlg.m_fchemistry;m_Set.m_column6=dlg.m_fenglish;m_Set.m_column7=dlg.m_fpolitic;m_Set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic;m_Set.m_column9=(float)(m_Set.m_column8/5);this->Equal();m_Set.Update();//Update()一定放在Equal()后m_Set.Requery();this->Xuan();}} voidCBaDialog::OnDelect(){//TODO:AddyourcontrolnotificationhandlercodehereCDelectDialogdlg;Selec=FALSE;if(dlg.DoModal()==IDOK){this->Select();m_Set.MoveFirst();BOOLsel=FALSE;do{if(m_Set.m_column1!=dlg.m_nxue)m_Set.MoveNext();else{m_nRecordCount-=1;sel=TRUE;m_bSet.MoveFirst();this->Equal();m_Set.Delete();m_Set.Requery();break;}}while(!m_Set.IsEOF());if(sel==FALSE){AfxMessageBox("没有此记录");return;}elsethis->Xuan();}}voidCBaDialog::OnFind(){//TODO:AddyourcontrolnotificationhandlercodehereCFinDialogdlg;if(dlg.DoModal()==IDOK){this->Select();//选择班级m_bSet.Close();if(dlg.m_Getstring2==">=")m_Set.m_strFilter.Format("[%s]>=%.2f",dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=="=")m_Set.m_strFilter.Format("[%s]=%.2f",dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=="<=")m_Set.m_strFilter.Format("[%s]<=%.2f",dlg.m_Getstring1,dlg.m_find);m_ListCtrlx.DeleteAllItems();m_Set.Requery();if(m_Set.IsEOF()){AfxMessageBox("没有符合条件的记录");m_Set.Close();return;}elsethis->Show();}}voidCBaDialog::OnAll(){//TODO:Addyourcontrolnotificationhandlercodeherethis->Select();m_bSet.Close();m_Set.m_strFilter.Empty();m_Set.Requery();m_ListCtrlx.DeleteAllItems();this->Show();}voidCBaDialog::OnEdit()
m_bSet.GetODBCFieldInfo(i,Info);
m_ListCtrlb.InsertColumn(i,Info.m_strName,LVCFMT_LEFT,80);
m_bSet.Close();
////////////////////////////////////
/////////////初始化列表控件ListCtrll
m_ListCtrll.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ListCtrll.InsertColumn(0,_T("科目"),LVCFMT_IMAGE|LVCFMT_LEFT);
m_ListCtrll.InsertColumn(1,"任课老师");
for(i=0;i<2;i++)
m_ListCtrll.SetColumnWidth(i,80);
m_cob.SetCurSel
(1);
this->Enable(FALSE);
m_Timer=SetTimer(1,2,NULL);
m_bIsAsc=TRUE;
m_bS=TRUE;
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
voidCBaDialog:
OnStatr()
//TODO:
Addyourcontrolnotificationhandlercodehere
m_ListCtrlx.DeleteAllItems();
m_ListCtrlb.DeleteAllItems();
m_ListCtrll.DeleteAllItems();
if(m_Set.IsOpen())
if(m_bSet.IsOpen())
m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);
this->Select();
if(m_Getstring=="计本一班")
m_tSet.Open();
if(m_Getstring=="计本二班")
m_tSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2TECHER]");
m_nRecordCount=this->Show();//初始化“学生成绩详单”,并返回字段数
this->display();//初始化“各科成绩概况”
this->exhibit();//将teacher表中的记录加载到“任课教师”
m_bS=GetDlgItem(IDC_STATR)->EnableWindow(true);
this->Enable(TRUE);
intCBaDialog:
Show()
inti=0;
m_Set.MoveFirst();
do
CStrings;
s.Format("%d",m_Set.m_column1);
m_ListCtrlx.InsertItem(i,s,0);
m_ListCtrlx.SetItemText(i,1,m_Set.m_column2);
s.Format("%.1f",m_Set.m_column3);
m_ListCtrlx.SetItemText(i,2,s);
s.Format("%.1f",m_Set.m_column4);
m_ListCtrlx.SetItemText(i,3,s);
s.Format("%.1f",m_Set.m_column5);
m_ListCtrlx.SetItemText(i,4,s);
s.Format("%.1f",m_Set.m_column6);
m_ListCtrlx.SetItemText(i,5,s);
s.Format("%.1f",m_Set.m_column7);
m_ListCtrlx.SetItemText(i,6,s);
s.Format("%.1f",m_Set.m_column8);
m_ListCtrlx.SetItemText(i,7,s);
s.Format("%.2f",m_Set.m_column9);
m_ListCtrlx.SetItemText(i,8,s);
i++;
m_Set.MoveNext();
}while(!
m_Set.IsEOF());
returni;
display()
m_bSet.MoveFirst();
m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);
s.Format("%.1f",m_bSet.m_column2);
m_ListCtrlb.SetItemText(i,1,s);
s.Format("%.2f",m_bSet.m_column3);
m_ListCtrlb.SetItemText(i,2,s);
s.Format("%d",m_bSet.m_column4);
m_ListCtrlb.SetItemText(i,3,s);
s.Format("%d",m_bSet.m_column5);
m_ListCtrlb.SetItemText(i,4,s);
m_bSet.MoveNext();
m_bSet.IsEOF());
exhibit()
m_ListCtrll.InsertItem(i,m_tSet.m_column1,0);
m_ListCtrll.SetItemText(i,1,m_tSet.m_column2);
m_tSet.MoveNext();
m_tSet.IsEOF());
m_tSet.Close();
Enable(BOOLp)
BOOLHB;
HB=p;
GetDlgItem(IDC_ADD)->EnableWindow(HB);
GetDlgItem(IDC_DELECT)->EnableWindow(HB);
GetDlgItem(IDC_EDIT)->EnableWindow(HB);
GetDlgItem(IDC_FIND)->EnableWindow(HB);
GetDlgItem(IDC_ALL)->EnableWindow(HB);
CStringCBaDialog:
Select()//班级的选择
else
m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]");
m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2OBJECT]");
returnm_Getstring;
Equal()
for(inti=0;i<5;i++)
floatp=0;
if(i==0)
p=m_Set.m_column3;
if(i==1)
p=m_Set.m_column4;
if(i==2)
p=m_Set.m_column5;
if(i==3)
p=m_Set.m_column6;
if(i==4)
p=m_Set.m_column7;
m_bSet.Edit();
if(Selec==FALSE)
m_bSet.m_column2-=p;
m_bSet.m_column3=(float)(m_bSet.m_column2/m_nRecordCount);
if(p>=60)
m_bSet.m_column4-=1;
if(p>=80)
m_bSet.m_column5-=1;
m_bSet.m_column2+=p;
m_bSet.m_column4+=1;
m_bSet.m_column5+=1;
m_bSet.Update();
m_bSet.IsEOF())
break;
Xuan()
this->display();
this->Show();
OnTimer(UINTnIDEvent)
Addyourmessagehandlercodehereand/orcalldefault
CStringm_string;
m_cob.GetLBText(m_cob.GetCurSel(),m_string);
if(m_Getstring!
=m_string)
GetDlgItem(IDC_STATR)->EnableWindow(TRUE);
OnTimer(nIDEvent);
OnAdd()
Selec=TRUE;
CAddialogdlg;
/////////////////////////////
if(m_tSet.IsOpen())
/////////////////////////////////
if(dlg.DoModal()==IDOK)
m_Set.AddNew();
m_nRecordCount+=1;
m_Set.m_column1=dlg.m_nxue;
m_Set.m_column2=dlg.m_strName;
m_Set.m_column3=dlg.m_fmaths;
m_Set.m_column4=dlg.m_fphysical;
m_Set.m_column5=dlg.m_fchemistry;
m_Set.m_column6=dlg.m_fenglish;
m_Set.m_column7=dlg.m_fpolitic;
m_Set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic;
m_Set.m_column9=(float)(m_Set.m_column8/5);
this->Equal();
m_Set.Update();//Update()一定放在Equal()后
m_Set.Requery();
this->Xuan();
OnDelect()
CDelectDialogdlg;
Selec=FALSE;
BOOLsel=FALSE;
if(m_Set.m_column1!
=dlg.m_nxue)
m_nRecordCount-=1;
sel=TRUE;
m_Set.Delete();
if(sel==FALSE)
AfxMessageBox("没有此记录");
return;
OnFind()
CFinDialogdlg;
this->Select();//选择班级
if(dlg.m_Getstring2==">=")
m_Set.m_strFilter.Format("[%s]>=%.2f",dlg.m_Getstring1,dlg.m_find);
if(dlg.m_Getstring2=="=")
m_Set.m_strFilter.Format("[%s]=%.2f",dlg.m_Getstring1,dlg.m_find);
if(dlg.m_Getstring2=="<=")
m_Set.m_strFilter.Format("[%s]<=%.2f",dlg.m_Getstring1,dlg.m_find);
if(m_Set.IsEOF())
AfxMessageBox("没有符合条件的记录");
OnAll()
m_Set.m_strFilter.Empty();
OnEdit()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1