ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:81.64KB ,
资源ID:8554517      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8554517.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生信息管理程序.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生信息管理程序.docx

1、学生信息管理程序MFC应用程序开发 -学生信息管理设计人:张燕 指导老师:刘老师 时间:2010-12-27设计思想:鉴于数据库的应用,对刚做完学生学籍管理系统的数据库设计的报告的同时,我想对于这一方面的社会需求也是必然的,本程序的主要功能是实现学生的相关信息的查询,修改,删除,添加等的操作。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍的增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询,修改、增加、删除等,从而减少管理方面的工作量。本系统主要用于学校学生信息管理,总体认为是实现学生信息关系的系统化

2、、规范化和自动化,其主要任务是用计算机对学生的各种信息进行日常管理,如查询、修改、删除等。针对这些要求设计了学生信息管理系统的程序。本程序没有建立数据库,就基于一般的应用程序编辑来实现相关的功能需求,编程思路:(1) 创建一个新的工程,工程名为MfcDesign,利用建立工程向导生成一个单文档的应用程序。(2) 鉴于在本工程中要实现不同的学生信息的相关操作,所以在工程中必然要更具实际的需求去新建一些让功能实现的相关类,如对话框类等。(3) 对对应的类编写代码,使得所需的功能能一一实现。即分别实现各个区域的功能。(4) 在程序的设计过程中,再根据具体的需要,可以再添加一些功能。实际操作步骤:(1

3、) 新建一个单文档的应用程序,命名为MfcDesign,生成一个单文档的应用程序。(2) 为了满足需要,需要新建几个类,如几个对话框类(添加,删除,查询,修改,以及全部信息)的学生信息的对话框类,以及成绩类和学生基本信息记录类。1 新建添加学信息类,修改信息类,查询信息类,删除信息类,分别命名为CAddDlg类,CAlterDlg类,CFindDlg类,CDelDlg类,他们都基类为对话框类,在新建的这个对话框中,一一对应对话框,添加需要的学生信息的相关控件,并对对应的控件进行消息映射,定义对应的变量。2 新建CStudent类和CScore类以及CPerson类,用来编辑学生信息的实现函数。

4、(3) 编写相应的代码,使得功能得以实现,如对话框中的相应的按钮的消息响应函数代码的编译。(4) 调试程序。添加代码:第一部分:CAddDlg类功能的实现代码:在这个添加记录类中,主要添加了如下图所示的控件:图1(对话框设计图)对图1中相应的编辑控件声明相应的变量,如图2所示:图2对对话框中的【OK】按钮添加消息相应,实现其功能的代码如下所示:void CAddDlg:OnOK() CStudent* pCStudent = new CStudent; pCStudent-m_strName = this-m_strEditName; pCStudent-m_strSex = this-m_s

5、trEditSex; 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; pCStu

6、dent-m_csScore.m_nEthic = this-m_nEditEthic; CMfcDesignDoc* pDoc = theApp.GetDocPointer();pDoc-m_StudentList.AddTail(pCStudent); MessageBox(增加成功);第二部分:CAlterDlg类功能的实现代码:在这个修改记录类中,主要添加了如下图所示的控件:图3对图3中相应的编辑控件声明相应的变量,如图4所示:(只有一部分)对话框初始化函数:BOOL CAlterDlg:OnInitDialog() this-m_Pos = NULL;对对话框中的【OK】按钮添加相应

7、映射,实现其功能的代码如下所示:void CAlterDlg:OnOK() if(this-m_Pos = NULL) AfxMessageBox(请先确定要修改的记录); else CMfcDesignDoc* pDoc = theApp.GetDocPointer(); CStudent* pCStudent = new CStudent; GetData(this, pCStudent); pDoc-m_StudentList.SetAt(this-m_Pos,pCStudent); 按钮【先查后改】添加消息响应函数,添加代码如下所示:void CAlterDlg:OnFind() in

8、t n_Status = 0; CString sz_StuNum;this-m_nEditStuNum.GetWindowText(sz_StuNum); CMfcDesignDoc* pDoc = theApp.GetDocPointer();POSITION pos =pDoc-m_StudentList.GetHeadPosition(); while (pos != NULL) CStudent* pCStudent = pDoc-m_StudentList.GetAt(pos); if(pCStudent-m_strStuNum = sz_StuNum) this-m_Pos =

9、pos; SetData(this,pCStudent); n_Status = 1; break; else pDoc-m_StudentList.GetNext(pos); if(n_Status = 0) MessageBox(没有此记录);第三部分:CDelDlg类功能的实现代码:在这个删除记录类中,主要是按学号来查询到学生的相关信息,并删除其记录,主要添加了如下图所示的控件:对对应的控件添加消息映射编写【OK】按钮的消息相应函数,添加代码如下:void CDelDlg:OnOK() int n_Status = 0; CDialog:OnOK(); CString sz_StuNum

10、; sz_StuNum = this-m_strEditStuNum; /取出要删除记录的学号 CMfcDesignDoc* pDoc = theApp.GetDocPointer();POSITION pos =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_St

11、atus = 1; break; else pDoc-m_StudentList.GetNext(pos); if(n_Status = 0) MessageBox(删除失败!); else MessageBox(删除成功!);第四部分:CFindDlg类功能的实现代码:在这个查询记录类中,查询学生信息:添加变量:添加代码如下所示:void ClearListBox(CListBox * List)/清空列表筐 int num; num = List-GetCount(); for(int i = 0; i DeleteString(i);void CFindDlg:OnOK() ClearL

12、istBox(&this-m_ResultList);int n_Status = 0; char sz_Buffer200; CString sz_StuNum;this-m_strEditStuNum.GetWindowText(sz_StuNum); /取出要删除记录的学号CMfcDesignDoc* pDoc = theApp.GetDocPointer();POSITION pos =pDoc-m_StudentList.GetHeadPosition(); while (pos != NULL) CStudent* pCStudent = pDoc-m_StudentList.Ge

13、tAt(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类功能的实现代码:在这个信息显示记录类中,主要是显示学生的主要信息,对话框设计如下所示:对应的控件列表中声明

14、成员变量:对话框变量初始化函数:BOOL CMainDlg:OnInitDialog() CDialog:OnInitDialog(); CMfcDesignDoc* pDoc = theApp.GetDocPointer(); / ar m_StudentList.GetHeadPosition();while (pos != NULL) char sz_Buffer200;CStudent* pCStudent = pDoc-m_StudentList.GetAt(pos);ShowRecord(sz_Buffer, pCStudent); this-m_MainList.AddStrin

15、g(sz_Buffer);pDoc-m_StudentList.GetNext(pos); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE显示信息函数:void ShowRecord(char Buffer200, CStudent* pCStudent) int j = 0; j = sprintf( Buffer, %-6s, pCStudent-m_strStuNum); j += sprintf( Bu

16、ffer + 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,

17、 %-3d , pCStudent-m_csScore.m_nEnglish); j += sprintf( Buffer + j, %-3d , pCStudent-m_csScore.m_nEthic); j += sprintf( Buffer + j, %-9s , pCStudent-m_strTel);第六部分:文档类的序列化函数:void CMfcDesignDoc:Serialize(CArchive& ar) if (ar.IsStoring() /保存 / 保存链表所有节点 ar m_StudentList.GetCount(); / 节点个数 POSITION pos =

18、 m_StudentList.GetHeadPosition(); while (pos != NULL) CStudent* pCStudent = m_StudentList.GetAt(pos); ar GetFileName(); AfxMessageBox(m_strFileName);/ 释放链表所有节点 m_StudentList.RemoveAll();/ 加载链表所有节点 int nNodeCount = 0; ar nNodeCount; / 节点个数 for (int i=0; i pCStudent; / 加载 m_StudentList.AddTail(pCStude

19、nt); MessageBox(NULL,dd,dd,MB_OK); / CMainDlg MainDisplay; / MainDisplay.DoModal();第七部分:学生信息(姓名,性别,年龄,电话)的序列化函数:void CPerson:Serialize(CArchive &ar) / 对象序列化保存 if (ar.IsStoring() ar m_strName m_strSex m_nAge m_strName m_strSex m_nAge m_strTel;第八部分:学生信息(计算机,英语,素质)序列化函数void CScore:Serialize(CArchive &a

20、r)/ 对象序列化保存 if (ar.IsStoring() ar m_nComputer m_nEnglish m_nComputer m_nEnglish m_nEthic ;第九部分:学生信息(成绩,学历,学号)序列化函数:void CStudent:Serialize(CArchive &ar)/ 对象序列化保存 if (ar.IsStoring() ar m_strEducation m_strStuNum ; else ar this-m_strEducation this-m_strStuNum ;CPerson:Serialize(ar); this-m_csScore.Ser

21、ialize(ar);第十部分:在CMainFrame类中添加函数:void CMainFrame:OnAdd() CAddDlg AddDlg; AddDlg.DoModal();void CMainFrame:OnDelete() CDelDlg DelDlg; DelDlg.DoModal();void CMainFrame:OnDisplay() CMainDlg MainDisplay; MainDisplay.DoModal(); void CMainFrame:OnModify() CAlterDlg AlterDlg; AlterDlg.DoModal();void CMainFrame:OnSearch() CFindDlg FindDlg; FindDlg.DoModal();总结:本程序主要是实现学生信息的相关操作,添加,删除,查询,修改等信息的实现,以及显示添加了的信息显示对话框中,本程序的缺陷就是操作较为繁琐,但是还是比较实用的一个应用程序。本程序的设计过程中,参考了很多的资料,教材和网上查询相关的应用,使得我更加的了解到编程这个东西是一个要慢慢去体会和摸索的。当然还有一定的构思。其实这个程序如果用数据库的知识来设计这个应用程序,会更加的实用,鉴于时间的限制,我希望下次再做改进,使得更加的完善,希望到时候老师多多的点评。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1