湖南科技大学数学与计算科学学院《面向对象程序设计》数学与计算机学院VC++课程设计设计题目:学生信息管理系统学生学号:1007020304学生姓名:刘正学生专业:信息与计算科学学生班级:10级信计三班指导老师:李建湘制作时间:2011年12月14日湖南科技大学数学与计算科学学院-1-目录一、前言……………………………………………2二、系统需求分析…………………………………3三、程序设计思路…………………………………3四、模块分析………………………………………5五、主要功能图示及代码………………………9六、创新内容………………………………………17七、存在的问题与不足……………………………17八、收获与感想……………………………………18九、程序其它重要源代码…………………………19十、后记……………………………………………27十一、参考文献…………………………………28湖南科技大学数学与计算科学学院-2-前言作为大二的一名学生,我们已经学习汇编语言快一年了,但是自己从来没有做过一个有实用价值的程序。总是怀疑我们学的c语言,c++以后会有用吗?几乎都是编写一些数学计算题。直到老是教我们MFC编程后,才知道应用程序的设计过程。说实话,在课程设计之前,我没有听过什么MFC编程,所以在设计的过程中也是困难重重,每走一步都是相当艰难的。从开始设计到完成设计,我花了两个多星期,中间重做了无数次。真的难以想象爱迪生发明电灯时是怎么熬过来的。这个程序虽然不完美,但是花了我不少的心血。这将是我程序生涯的开始!学习MFC编程,最重要的就是自学。刚开始,什么都不懂,为什么要这么做?好多函数都不不知道是干什么用的,更不用说使用它们。因此,不得不借助图书馆和网络了解它们。MFC函数库很庞大,我这次用到的微乎其微,以后还得不断的学习和熟悉。一个那么庞大的函数库,我们该如何掌握它呢?通过这半个多月的学习,我个人觉得最重要的就是多练习,只有不断的练习,才能掌握它们的规律,帮助我们学好MFC函数库。接下来,我将把这些天的成果在这里展现出来,与大家一起分享这份来之不易的喜悦!湖南科技大学数学与计算科学学院-3-一、系统需求分析随着互联网的发展,利用internet技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,如何利用现有的资源,来更好地服务于学校的教学,服务于学校的管理工作,是摆在我们面前的一个共同的命题。该系统适用于小学、初中、高中以及大学学生的成绩简单管理。由于某些学校管理有所不同大或者过于复杂,本系统不能满足其需要,因此本系统也具有一定的局限性。就目前而言,许多小学、初中和高中的学籍管理方式还停留在手工操作基础上,每个学期和学年,教师需要花费大量的时间来登录学生信息,本来教学任务就繁重的教师,再加上这些学生信息的登录,耗费了教师不少的精力和时间。而管理人员也需要花费较多的时间来校对管理,这样一来,一个简单的工作的变得相当繁琐了。同时又形成信息册在教师和教导处之间传递的延时性,遇到学生转入转出,又因为各个学校使用的学籍卡的不同,而造成信息的缺失或者遗漏。本系统就是为了减轻教师繁复的誊写工作、加强学校学生信息管理的方便性,以及对信息管理的准确性。二、程序设计思路本系统是MFC编程中基于单文档的设计。首先定义类来封装,湖南科技大学数学与计算科学学院-4-存储同学信息,及实现各个函数之间的串联,运用指针及数组来实现各个函数的处理功能。各个函数都是独立存在的,还可以在之基础上增加或减少一些功能,可使整个系统更加适合个人的使用。该系统主要按班级来完成学生成绩的管理,功能包括添加、输出、删除。本系统的主界面布局主要以编辑框和按钮组成。编辑框的主要功能是显示记录信息和录入记录信息,以方便存储基本的信息,按钮可以进行相应的操作。进入系统时,会弹出一个登录框,只有用户输入正确的密码时才可以进入管理界面,其密码为“1234”。当用户计入了管理界面后,可以看到菜单栏中有一项为“学生信息管理”,其中有子菜单“信息输入”和“信息输出”,点击“信息输入”功能,将会弹出一个添加学生信息对话框,只有把信息输入完全,才能点击“确定”按钮,此时输入的信息将会保存起来;如果点击的“取消”按钮,那么信息将会自动消失,不会保存。接下来就是“信息输出”功能。点击信息输出功能时,将会弹出学生信息管理系统对话框,用户将会看到先前在添加学生信息对话框中输入的内容。在该对话框的下方,还有“添加”、“删除”、“退出”三个按钮:(1)添加:点击添加按钮,将会弹出添加学生信息对话框,输入要添加的内容,确定后就添加成功了,可以在学生信息管理系统输出新添加的信息。(2)删除:如果用户想要删除学生信息,只要选定要删除的对湖南科技大学数学与计算科学学院-5-象,然后点击删除键,如此便删除成功。(3)退出:点击该按钮,便可以退出该对话框,当然也可以点击右上方的关闭按钮。系统功能模块图。该系统分为若干模块,每个模块下面又有若干子模块,层层划分直到每一个模块能够作为计算机可执行的单独程序为止。系统划分的结果最终反映为一张分层的树型结构图,学生成绩管理系统的主要功能结构图如下图所示:系统功能模块图三、模块分析该系统分为五个模块,它们是用户登录、信息输入、信息输出、进入学生管理系统登陆界面登陆界面学生信息管理信息输入信息输出添加删除退出湖南科技大学数学与计算科学学院-6-信息添加和信息删除。每个模块之间相互联系,其中用户登录模块属于一级模块,它控制着用户是否能够进入管理系统。信息输入和信息输出属于二级模块,是用来给用户实现学生信息管理的。添加和删除属于信息输出模块中的两个分功能,其中添加与信息输入相关联。各个模块紧密相连,共同完成该系统的管理功能。1、用户登录:此模块功能是用来保护用户信息的,只有输入正确的密码,然后点击“确定”方可进入管理系统。进入系统后,可以看到学生信息管理界面2、信息输入:此模块功能是用来给用户输入学生信息的,同时也是添加功能的模块。点击菜单栏中的“学生信息管理”就会出现两个子菜单,点击“信息输入”,弹出一个添加学生信息对话框,在里面输入姓名、学号、性别、专业班级、成绩等,填好信息后点击确定。3、信息输出:此模块工能是用来显示用户在添加信息对话框中输入的学生信息,可供用户进行数据研究。在输入完学生信息之后,点击菜单中的“信息输出”,此时将会弹出学生成绩管理系统对话框,在该对话框将会显示在添加信息对话框中输入的全部信息。6、信息添加:此模块功能是用来方便用户在主对话框中继续添加学生信息,这就不用关闭主对话框再进入信息输入对框。点击学生信息湖南科技大学数学与计算科学学院-7-管理系统中的添加按钮,将会弹出添加学生信息对话框,如图4所示。5、信息删除:此模块功能是用来删除用户输入的错误信息以及不要了的信息,比如某个班级的学生学了或者转专业了,就可以删除他在原来班级的信息。选定要删除的对象,点击对话框中的“删除”按钮,系统会自动弹出询问信息,如果确认点击确定就可进行删除,程序会自动调用删除函数进行删除。完毕后可以看到自己所选择删除的项已删除。四、主要功能视图及代码1、登录界面,当程序运行时将会出现如下对话框:当用户输入正确的密码(1234)时,将会成功进入系统;如果输入密码错误将会弹出以下对话框:湖南科技大学数学与计算科学学院-8-点击“确定”按钮后,将会自动退出系统。此功能的实现是在BOOLCMy1007020304App::InitInstance()里面添加如下代码如下:BOOLCMy1007020304App::InitInstance(){AfxEnableControlContainer();、、、、、、、、、、、、m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();CPasswordDlgdlg;if(dlg.DoModal()!=IDOK)returnfalse;if(dlg.m_password!=1234){AfxMessageBox(密码错误,确认后将退出程序!);returnfalse;}returnTRUE;}然后在添加头文件#includePasswordDlg.h。进入成功后,将会出现湖南科技大学数学与计算科学学院-9-系统界面,如下图所示:2、在系统界面中,我们可以看到有“学生信息管理”这一项菜单,点击后将会出现“信息输入”和“信息输出”两个此菜单,分别点击后将会出现以下连个菜单:湖南科技大学数学与计算科学学院-10-一个是输入对话框,另一个是输出对话框,其中输入对话框的代码如下:classCMy1007020304App:publicCWinApp{public:CStringZH;intCYY;intYY;intGD;CStringZYBJ;CStringXB;CStringXM;CStringXH;湖南科技大学数学与计算科学学院-11-CMy1007020304App();、、、、、、、、、、、、}BOOLCAddDlg::OnInitDialog(){CDialog::OnInitDialog();CEdit*edit1=(CEdit*)GetDlgItem(IDC_EDIT_XH);edit1-SetWindowText();edit1=(CEdit*)GetDlgItem(IDC_EDIT_XM);edit1-SetWindowText();edit1=(CEdit*)GetDlgItem(IDC_EDIT_ZYBJ);edit1-SetWindowText();edit1=(CEdit*)GetDlgItem(IDC_EDIT_GD);edit1-SetWindowText();edit1=(CEdit*)GetDlgItem(IDC_EDIT_YY);edit1-SetWindowText();edit1=(CEdit*)GetDlgItem(IDC_EDIT_CYY);edit1-SetWindowText();CComboBox*combo1=(CComboBox*)GetDlgItem(IDC_COMBO_XB);combo1-SetCurSel(-1);湖南科技大学数学与计算科学学院-12-combo1=(CComboBox*)GetDlgItem(IDC_COMBO_ZH);combo1-SetCurSel(-1);CButton*but1=(CButton*)GetDlgItem(IDOK);but1-EnableWindow(FALSE);returnTRUE;}以下是输出对话框的代码:BOOLCMainDlg::OnInitDialog(){CDialog::OnInitDialog();//TODO:AddextrainitializationhereCStringtempColName[8]={学号,姓名,性别,专业班级,高代,英语,c语言,综合};m_ListCtrlx.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);m_ListCtrlx.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE);for(inti=0;i8;i++){m_ListCtrlx.InsertColumn(i,tempColName[i],LVCFMT_CENTER,100,1);}AddItem();湖南科技大学数学与计算科学学院-13-returnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagess