学生信息管理程序_第1页
学生信息管理程序_第2页
学生信息管理程序_第3页
学生信息管理程序_第4页
学生信息管理程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MFC应用程序开发学生信息管理设计人:张燕指导老师:刘老师时间:2010-12-27◆设计思想:鉴于数据库的应用,对刚做完学生学籍管理系统的数据库设计的报告的同时,我想对于这一方面的社会需求也是必然的,本程序的主要功能是实现学生的相关信息的查询,修改,删除,添加等的操作。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍的增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的标准管理、科学统计和快速查询,修改、增加、删除等,从而减少管理方面的工作量。本系统主要用于学校学生信息管理,总体认为是实现学生信息关系的系统化、标准化和自动化,其主要任务是用计算机对学生的各种信息进行日常管理,如查询、修改、删除等。针对这些要求设计了学生信息管理系统的程序。本程序没有建立数据库,就基于一般的应用程序编辑来实现相关的功能需求,◆编程思路:创立一个新的工程,工程名为MfcDesign,利用建立工程向导生成一个单文档的应用程序。鉴于在本工程中要实现不同的学生信息的相关操作,所以在工程中必然要更具实际的需求去新建一些让功能实现的相关类,如对话框类等。对对应的类编写代码,使得所需的功能能一一实现。即分别实现各个区域的功能。在程序的设计过程中,再根据具体的需要,可以再添加一些功能。◆实际操作步骤:新建一个单文档的应用程序,命名为MfcDesign,生成一个单文档的应用程序。为了满足需要,需要新建几个类,如几个对话框类〔添加,删除,查询,修改,以及全部信息〕的学生信息的对话框类,以及成绩类和学生根本信息记录类。新建添加学信息类,修改信息类,查询信息类,删除信息类,分别命名为CAddDlg类,CAlterDlg类,CFindDlg类,CDelDlg类,他们都基类为对话框类,在新建的这个对话框中,一一对应对话框,添加需要的学生信息的相关控件,并对对应的控件进行消息映射,定义对应的变量。新建CStudent类和CScore类以及CPerson类,用来编辑学生信息的实现函数。编写相应的代码,使得功能得以实现,如对话框中的相应的按钮的消息响应函数代码的编译。调试程序。◆添加代码:第一局部:CAddDlg类功能的实现代码:在这个添加记录类中,主要添加了如下列图所示的控件:图1(对话框设计图)对图1中相应的编辑控件声明相应的变量,如图2所示:图2对对话框中的【OK】按钮添加消息相应,实现其功能的代码如下所示:voidCAddDlg::OnOK(){CStudent*pCStudent=newCStudent;pCStudent->m_strName=this->m_strEditName;pCStudent->m_strSex=this->m_strEditSex;pCStudent->m_nAge=this->m_nEditAge;pCStudent->m_strTel=this->m_strEditTel;pCStudent->m_strStuNum=this->m_strEditStuNum;pCStudent->m_strEducation=this->m_strEditEducation;pCStudent->m_csScore.m_nComputer=this->m_nEditComputer;pCStudent->m_csScore.m_nEnglish=this->m_nEditEnglish;pCStudent->m_csScore.m_nEthic=this->m_nEditEthic;CMfcDesignDoc*pDoc=theApp.GetDocPointer();pDoc->m_StudentList.AddTail(pCStudent);MessageBox("增加成功");}第二局部:CAlterDlg类功能的实现代码:在这个修改记录类中,主要添加了如下列图所示的控件:图3对图3中相应的编辑控件声明相应的变量,如图4所示:〔只有一局部〕对话框初始化函数:BOOLCAlterDlg::OnInitDialog(){ this->m_Pos=NULL;}对对话框中的【OK】按钮添加相应映射,实现其功能的代码如下所示:voidCAlterDlg::OnOK(){if(this->m_Pos==NULL) {AfxMessageBox("请先确定要修改的记录");} else {CMfcDesignDoc*pDoc=theApp.GetDocPointer();CStudent*pCStudent=newCStudent;GetData(this,pCStudent);pDoc->m_StudentList.SetAt(this->m_Pos,pCStudent); } }按钮【先查后改】添加消息响应函数,添加代码如下所示:voidCAlterDlg::OnFind(){intn_Status=0;CStringsz_StuNum;this->m_nEditStuNum.GetWindowText(sz_StuNum);CMfcDesignDoc*pDoc=theApp.GetDocPointer();POSITIONpos=pDoc->m_StudentList.GetHeadPosition();while(pos!=NULL) { CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos);if(pCStudent->m_strStuNum==sz_StuNum){this->m_Pos=pos; SetData(this,pCStudent);n_Status=1; break; } else {pDoc->m_StudentList.GetNext(pos);} }if(n_Status==0) {MessageBox("没有此记录");}}第三局部:CDelDlg类功能的实现代码:在这个删除记录类中,主要是按学号来查询到学生的相关信息,并删除其记录,主要添加了如下列图所示的控件:对对应的控件添加消息映射编写【OK】按钮的消息相应函数,添加代码如下:voidCDelDlg::OnOK(){ intn_Status=0; CDialog::OnOK(); CStringsz_StuNum; sz_StuNum=this->m_strEditStuNum;//取出要删除记录的学号CMfcDesignDoc*pDoc=theApp.GetDocPointer();POSITIONpos=pDoc->m_StudentList.GetHeadPosition(); while(pos!=NULL) { CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos);if(pCStudent->m_strStuNum==sz_StuNum) {pDoc->m_StudentList.RemoveAt(pos);//删除记录 n_Status=1; break; } else {pDoc->m_StudentList.GetNext(pos);} }if(n_Status==0) {MessageBox("删除失败!");} else {MessageBox("删除成功!");}}第四局部:CFindDlg类功能的实现代码:在这个查询记录类中,查询学生信息:添加变量:添加代码如下所示:voidClearListBox(CListBox*List)//清空列表筐{intnum; num=List->GetCount(); for(inti=0;i<num;i++) {List->DeleteString(i);}}voidCFindDlg::OnOK(){ClearListBox(&this->m_ResultList);intn_Status=0;charsz_Buffer[200]; CStringsz_StuNum;this->m_strEditStuNum.GetWindowText(sz_StuNum);//取出要删除记录的学号CMfcDesignDoc*pDoc=theApp.GetDocPointer();POSITIONpos=pDoc->m_StudentList.GetHeadPosition();while(pos!=NULL) { CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos); if(pCStudent->m_strStuNum==sz_StuNum) {ShowRecord(sz_Buffer,pCStudent);this->m_ResultList.AddString(sz_Buffer); n_Status=1; break; } else {pDoc->m_StudentList.GetNext(pos);} }if(n_Status==0) {this->m_ResultList.AddString("没有此记录");}}第五局部:CMainDlg类功能的实现代码:在这个信息显示记录类中,主要是显示学生的主要信息,对话框设计如下所示:对应的控件列表中声明成员变量:对话框变量初始化函数:BOOLCMainDlg::OnInitDialog(){CDialog::OnInitDialog();CMfcDesignDoc*pDoc=theApp.GetDocPointer();// ar<<m_StudentList.GetCount();//节点个数 POSITIONpos=pDoc->m_StudentList.GetHeadPosition();while(pos!=NULL) { charsz_Buffer[200];CStudent*pCStudent=pDoc->m_StudentList.GetAt(pos);ShowRecord(sz_Buffer,pCStudent);this->m_MainList.AddString(sz_Buffer);pDoc->m_StudentList.GetNext(pos); }returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}显示信息函数:voidShowRecord(charBuffer[200],CStudent*pCStudent){ intj=0; j=sprintf(Buffer,"%-6s",pCStudent->m_strStuNum); j+=sprintf(Buffer+j,"%-6s",pCStudent->m_strName); j+=sprintf(Buffer+j,"%-3s",pCStudent->m_strSex); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_nAge); j+=sprintf(Buffer+j,"%-6s",pCStudent->m_strEducation); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_csScore.m_nComputer); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_csScore.m_nEnglish); j+=sprintf(Buffer+j,"%-3d",pCStudent->m_csScore.m_nEthic);j+=sprintf(Buffer+j,"%-9s",pCStudent->m_strTel);}第六局部:文档类的序列化函数:voidCMfcDesignDoc::Serialize(CArchive&ar){ if(ar.IsStoring())//保存 {//保存链表所有节点 ar<<m_StudentList.GetCount();//节点个数 POSITIONpos=m_StudentList.GetHeadPosition(); while(pos!=NULL) { CStudent*pCStudent=m_StudentList.GetAt(pos); ar<<pCStudent;//保存 m_StudentList.GetNext(pos); } } else//翻开 {CFile*pFile=ar.GetFile(); m_strFileName=pFile->GetFileName(); AfxMessageBox(m_strFileName);//释放链表所有节点 m_StudentList.RemoveAll();//加载链表所有节点 intnNodeCount=0; ar>>nNodeCount;//节点个数 for(inti=0;i<nNodeCount;i++) { CStudent*pCStudent=NULL; ar>>pCStudent;//加载 m_StudentList.AddTail(pCStudent); }MessageBox(NULL,"dd","dd",MB_OK); // CMainDlgMainDisplay; // MainDisplay.DoModal();}}第七局部:学生信息〔姓名,性别,年龄,〕的序列化函数:voidCPerson::Serialize(CArchive&ar){ //对象序列化保存 if(ar.IsStoring()) {ar<<m_strName<<m_strSex<<m_nAge<<m_strTel;} else {ar>>m_strName>>m_strSex>>m_nAge>>m_strTel;}}第八局部:学生信息〔计算机,英语,素质〕序列化函数voidCScore::Serialize(CArchive&ar){//对象序列化保存 if(ar.IsStoring()) {ar<<m_nComputer<<m_nEnglish<<m_nEthic;} else {ar>>m_nComputer>>m_nEnglish>>m_nEthic;}}第九局部:学生信息(成绩,学历,学号)序列化函数:voidCStudent::Serialize(CArchive&ar){//对象序列化保存 if(ar.IsStoring()) {ar<<this->m_strEduca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论