C++学生信息管理系统设计报告.doc





《C++学生信息管理系统设计报告.doc》由会员分享,可在线阅读,更多相关《C++学生信息管理系统设计报告.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录目录最好的沉淀最好的沉淀 1.引言 .1 2设计依据及框图 .2 2.1 设计思想 .2 2.2 设计框图、用户界面.2 3.各模块功能及主要模块的流程图 .11 3.1 各模块功能.11 3.2 主要流程图.14 4.软件调试分析 .15 4.1 错误分析.15 4.2 系统特点及缺点.15 5.结语 .16 参考文献 .17 摘要摘要 这一款学生信息管理小系统采用面向对象的设计方法,主要是面对管理端,管 理者可以通过密码登录进入系统对学生的各类数据统进行管理和维护。在主界面中 主要设置了 8 个基本功能:增加学生、显示全部学生、计算平均成绩、删除一个学 生、按年级输出学生信息、按性别输
2、出学生信息、按姓名检索学生、按总分进行排 序。这些功能基本上能满足学生管理的基本要求,此程序可以初步体现课程设计的 目标。 采用 Visual C+作为开发工具,界面简单友好,操作方便易行,便于维护,是 一个功能比较完善的管理系统。 关键字关键字:学生系统;继承;重载;派生 1 1.引言引言 随着我国经济与计算机技术的日益发展,信息化技术逐渐取代传统人工作 业,而学生也不例外。由于学生信息管理系统应用范围之广,版本各式各样, 功能不尽管理系统相同。如何做出一个比较出众的学生系统,是对程序员的一 种考验,这其中选择一种合适的程序设计语言、一个开发平台和编程思想是至 关重要的。而建成一个数字化的学
3、生信息管理系统,进行统一的管理,管理者 就会对学生情况得到及时准确的了解,并根据具体情况提供及时的查询与修改。 这样,就可以使学生的管理变得更为高效。本系统是从学生信息管理系统最基 本的功能进行设计和开发。 设计希望用 VC+编写一个界面美观流畅学生信息管理系统,管理者能够使用 它对学生数据进行基本的查询、增加、删除、修改等,而且程序运行结果正确,操 作方便,界面美观,逻辑层次清楚,程序结构合理,程序代码精简易懂。 管理者通过密码登录进入学生信息管理系统,根据需要可以实现以下功能:增加 学生、显示全部学生、计算平均成绩、删除一个学生、按年级输出学生信息、按性 别输出学生信息、按姓名检索学生、按
4、总分进行排序。 该学生信息管理系统是采用面向对象的程序设计思想,选择 C+语言进行编写 的,整个程序由一个学生基类和两个年级派生类、若干个函数及主函数构成的。 使用面向对象的程序设计方法是设计一个复杂的软件系统时,首要的问题是确 定该系统是有哪些对象组成的,并且设计这些对象。 本学期,专业开设了 C+面向对象课程设计,为我们提供了一个既动手又动脑 独立实践的机会,这就要求根据所学的 C+程序设计原理与程序设计的知识,能够 针对一个小型的学生信息管理系统,进行系统的任务分析,系统设计,运行调试等, 完成题目要求的功能。学会运用 Visual C+ 6.0 设计学生信息管理系统,从而达到 了解设计
5、一个小型应用系统的目的,提高适应实际,实践编程的能力。 2 2设计依据及框图设计依据及框图 2.1 设计思想设计思想 学生信息管理系统是一个管理学生数据的服务平台,它应该包括登录界面,通 过输入密码,核对正确进而进入主菜单界面,然后通过需要选择不同的操作,最终 能够达到查询,增添,删除等功能。 2.2 设计框图、用户界面设计框图、用户界面 2.2.1 通过对需求的分析和设计,我初步构造了程序的结构框图。如图 2.1: 开始 登录界面 年 级 输 出 录 入 信 息 平 均 成 绩 显 示 学 生 删 除 学 生 性 别 输 出 姓 名 检 索 总 分 排 序 结 束 程 序 图 2.1 设计框
6、图 2.2.2 根据各模块功能的逐步展开与分析,我完成了程序的全部代码设计,详 见附录。在一次次的调试完善后,成功运行了这个学生管理系统。 1. 这个系统是作为管理端存在的,为了保证信息的隐蔽性及安全性,防止人为 破坏,所以设计一个登录界面,需要输入的密码核实正确后方能进入主菜单操作, 以此来确保只有预先获得密码有管理权限的人才能使用该系统。在此还设定了登录 次数不得多于三次,否则强制退出程序。这里将管理员输入的密码通过 ifelse 语 句判断是否等于 code(预先定义在后台存储的),若相等则跳转至主界面,否则提 示重新输入。代码如下: 3 lab1: system(cls); coute
7、ndlendlendl; coutco; if(co=code) goto lab2; else if(s=4) cout已登录三次,请退出!endl; return 0; else goto lab1; 2.在输入事先设定的密码,经检查正确,就到了主菜单界面,如下图;功能选 择通过管理员输入数字,使用 switch 语句来判断接收,从而能够进入各个子菜单。 图 2.1 主菜单图 lab2:system(cls); coutttt*欢迎使用学生信息管理系统*endlendl; cout1.录入信息endl; cout2.显示全部学生endl; cout3.计算平均成绩endl; cout4.删
8、除一个学生endl; cout5.按年级输出学生信息endl; cout6.按性别输出学生信息endl; cout7.按姓名检索学生endl; cout8.按总分排序endl; cout9.结束程序运行endl endl; coutgetin; switch(getin) 4 注:lab2 是一个标签,能通过之后的 goto lab2 从各级子菜单快速地跳转回来。 3 .case1 是录入信息菜单,pi是存储学生信息的数组对象,同样通过 switch 语句判断选择,可以不限次地分别录入一、二年级的学生信息,完成后自动保存并 返回主菜单。这里用类类型的指针变量指向已存在的最后一个记录,追加到最后
9、一 个记录后面,然后通过指针指向对象的成员函数 set()从键盘上输入信息,用 new 开辟一段空间以存放该类型的对象,而统计创建的对象个数的变量 i 则进行自加运 算,最后指针指回头结点。增加学生信息,界面如下: case 1: /录入信息 lab3: system(cls); cout1.录入一年级生信息endl; cout2.录入二年级生信息endl; cout3.返回上一级菜单endl; coutc1; switch(c1) case 1: pi=new Student1; pi-set(); i+; goto lab3; case 2: pi=new Student2; pi-set
10、(); i+; goto lab3; default:goto lab2; break; 5 图 2.2 录入信息 2 图 5case2 为显示信息菜单,先通过 for 循环语句并利用类指针,从类数组第一 个对象开始调用 display()来显示,直到全部学生显示完毕,最后指针指回头结点, 停止操作并返回主菜单。 case 2: /显示全部信息 system(cls); cout学生信息n学号 姓名 性别(male/female) 语文 英语 数学 年n; for(j=0;jdisplay(); coutc2; switch(c2) case 1:case 2:case 3:default:
11、goto lab2 图 2.3 信息显示图 6case3 计算平均成绩,输入需查询学生的学号,在 for 循环中用 if 语句及指 针来搜寻与之匹配的信息,如果存在则通过函数 getsum()取总成绩,再计算出平均 成绩并用指针 pj-display()输出,否则给出错误提示信息并返回主菜单返回主 菜单后。 case 3:/计算平均成绩 lab4: system(cls); coutendlendl; coutttt*计算平均成绩*endlendl; coutxh; for(j=0;jgetnum()=xh) double sum,ave; sum=pj-getsum(); 6 ave=sum
12、/3; cout学号 姓名 语文 英语 数学 平均成绩endl; coutgetnum() getname() getch() geten() getma() aveendl; else cout此学生不存在,请重新输入!endl; goto lab4; 注:这里的 lab4 为了便于返回重新查询设的标签,与 goto lab4 结合起来用。 图 2.4 查询成绩图 7case4 为删除学生,可以按照姓名或者学号删除,当管理员输入相应选择后, 程序对应先通过查找记录,再对对应对象信息做删除,同样采用 for 循环跟 if 语句, 每删除一个学生变量 i 就进行自减运算,是对象个数及时得到改正,
13、最后指针指向 头结点。按照学号删除的代码如下: int xuehao; coutxuehao; for(j=0;jgetnum()=xuehao) for(int del=j;deli;del+) pdel=pdel+1; i-; cout n 成功删除!n; coutc3; switch(c3) 7 case 1:case 2:case 3:default: goto lab2; 图 2.5 删除信息 1 图 8case5 是按年级输出学生,管理员选择所需年级后,用指针变量 pj定位在 年级号 id 所匹配的第一个对象处,接着执行 display 函数显示信息,j+后继续查 找,用 ji 保
14、证指针不超出范围(i 作为变量统计学生录入个数)。 case 5:/按年级输出学生信息 system(cls); coutttt*按年级输出学生信息* endlendl; cout1.按一年级生输出学生信息endl; cout2.按二年级生输出学生信息endlendl; coutc5; switch(c5) case 1: cout学号 姓名 性别 语文 英语 数学 年龄endl; for(j=0;jgetid()=1) pj-display(); coutc5; switch(c5) case 1:case 2:case 3:default: goto lab2; case 2: cout学
15、号 姓名 性别 语文 英语 数学 年龄endl; for(j=0;jgetid()=2) pj-display(); coutc5; switch(c5) case 1:case 2:case 3:default: goto lab2; default: coutn 输入错误!n; break; coutc5; switch(c5) case 1:case 2:case 3:default: goto lab2; 图 2.6 1 年级输出图 9case6 按性别输出,也同样指针 pj指向对象的函数 getsex()取性别来与 “female”或“male”比较,相等则调用 display 函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 信息管理 系统 设计 报告

限制150内