收藏 分享(赏)

c++学生成绩管理系统文档.doc

上传人:精品资料 文档编号:10811195 上传时间:2020-01-10 格式:DOC 页数:32 大小:165.55KB
下载 相关 举报
c++学生成绩管理系统文档.doc_第1页
第1页 / 共32页
c++学生成绩管理系统文档.doc_第2页
第2页 / 共32页
c++学生成绩管理系统文档.doc_第3页
第3页 / 共32页
c++学生成绩管理系统文档.doc_第4页
第4页 / 共32页
c++学生成绩管理系统文档.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、目录1 引 言 .21.1 课题背景及意义 21.2 可行性分析 22 系统需求分析 .42.1 功能需求 分析 42.2 性能需求分析 42.3 系统总体结构设计 43 详细设计 .63.1 数据结构设计 63.2 系统函数的组成、功能、参数说明、相互调用关系 .74 设计测试流程 .95 结束语 14参考文献 .15附录 .16学生成绩管理系统- 1 -学生成绩管理系统学生姓名:张亮 指导老师:胡宁静摘 要 本课程设计主要解决学生成绩管理问题。使用计算机进行信息管理,不仅提高了工作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.学生成绩管理系统是一个教

2、育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。在课程设计中,系统开发平台为 Windows XP,程序设计设计语言采用 Visual C+,程序运行平台为 Windows 98/2000/XP。在程序设计中,采用了面向对象解决问题的方法。程序通过调试运行,初步实现了设计目标。关键词 程序设计;C+;成绩管理学生成绩管理系统- 2 -1 引 言为 方 便 对 学 生 成 绩 进 行 高 效 的 管 理 , 编 写 该 程 序 以 提 高 学 生 成 绩 管 理 效 率 。使 用 该 程 序 之 后 , 学 校 管 理 者 可 以 查 询 某 位 学 生 、 某 个 科 目

3、 的 成 绩 情 况 , 还 可 以对 学 生 成 绩 进 行 排 名 , 对 学 生 的 数 据 进 行 修 改 和 删 除 , 其 中 排 名 包 括 总 分 排 名 和各 个 科 目 的 排 名 , 学 生 可 以 更 具 自 己 的 个 人 信 息 进 行 成 绩 查 询 , 查 询 结 果 包 括 各个 科 目 的 分 数 、 总 分 和 平 均 分 。 通 过 本 系 统 可 以 很 好 的 掌 握 学 生 成 绩 的 分 布 , 减 轻管 理 人 员 的 负 担 , 也 使 学 生 的 成 绩 和 信 息 长 时 期 的 保 留 。1.1 课题背景及意义一 直 以 来 人 们 使

4、 用 传 统 的 人 工 方 式 管 理 学 生 成 绩 , 在 计 算 机 尚 未 在 学 校 广泛 使 用 之 前 , 学 生 成 绩 管 理 主 要 依 靠 手 工 。 一 个 最 典 型 的 手 工 处 理 过 程 就 是 :当 考 试 完 后 , 老 师 就 要 把 学 生 成 绩 登 记 到 文 档 中 , 当 老 师 或 学 生 要 查 询 成 绩 的 时 候要 一 个 一 个 去 找 , 总 分 、 平 均 分 都 需 要 一 个 一 个 累 加 起 来 算 , 很 麻 烦 , 不 过 最 麻 烦的 还 是 排 名 , 不 能 一 目 了 然 。以 上 所 描 述 的 手 工

5、过 程 的 不 足 之 处 显 而 易 见 , 首 先 处 理 学 生 成 绩 的 效 率 很低 , 其 次 处 理 能 力 比 较 低 , 一 段 时 间 内 , 所 能 服 务 的 读 者 人 数 是 有 限 的 。 利 用 计 算机 来 处 理 这 些 流 程 无 疑 会 极 大 程 度 地 提 高 效 率 和 处 理 能 力 。 我 们 很 清 晰 的 看 到 自己 的 各 个 科 目 成 绩 和 每 个 科 目 的 排 名 和 总 分 排 名 以 及 所 有 学 生 的 成 绩 分 布 , 而且 还 是 零 失 误 , 所 有 的 都 是 一 目 了 然 。 极 大 的 方 便 了

6、学 生 和 老 师 。 为 提 高 成 绩 管理 效 率 , 管 理 人 员 的 工 作 负 担 , 有 必 要 开 发 一 个 小 型 成 绩 管 理 系 统 来 对 学 生 成 绩实 施 有 效 管 理 。1.2 可行性分析(1)经济可行性分析作为学校这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个学校实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,学生成绩管理系统- 3 -而且本系统的费用很低。(2)技术可行性分析技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件

7、、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。学生成绩管理系统的工作主要是在学生和老师之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络 internet 技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。(3)社会可行性分析社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是学校完全有可能也有能力采用这样先进的管理技术

8、。它对学校带来的影响可以看到:对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对学校工作人员的要求提高,使学校在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽学校在市场环境下的生存空间。对学生和管理人员业务方式的转变和扩充。学生成绩管理系统- 4 -2 系统需求分析2.1 功能需求分析1) 录入数据:将学生姓名、语文、数学、英语成绩写入文件。2) 增加人员:增加学生,并将学生姓名和成绩写入文件。3) 删除人员:删除学生信息和成绩。4) 修改数据:修改学生成绩。5) 按总成绩查询:根据总分查询学生成绩,包括平均分。6) 按姓名查询:根据学生姓名查询学生成绩,包括总分和平均分。

9、7) 输出所有学生成绩:输出文件中所有学生数据。8) 按总分排名:按照总分从高到低排序。9) 按语文成绩排名:按照语文成绩从高到低排序。10) 按数学成绩排名:按照数学成绩从高到低排序。11) 按英语成绩排名:按照英语成绩从高到低排序。2.2 性能需求分析1硬件环境 处理器:Inter CR300 或是更高。 内存:128MB(建议 196MB) 。 硬盘空间:20MB。2软件环境 操作系统: Windows 98/ XP 或是 Windows 2000/Windows NT Server 4.0。2.3 系统总体结构设计对学生成绩进行管理的系统,主要划分为以下三个模块:1) 操作:包括录入数

10、据、增加人员、删除人员、修改数据。2) 查询:包括按总成绩查询、按姓名查询、输出所有学生成绩。3) 排名:按总分排名、按语文成绩排名、按数学成绩排名、按英语成绩排名根据需求分析的结果,总体结构如图 2-1 所示。学生成绩管理系统- 5 -学生成绩管理系统操作 查询 排名增加人员按总成绩查询录入数据删除人员修改数据按姓名查询输出全部数据按总分排名语文成绩排名数学成绩排名英语成绩排名图 2.1 系统总体结构学生成绩管理系统- 6 -3 详细设计3.1 数据结构设计(1) 类的设计表 3-1 Stu 类成员列表Stu 类char name20;double math;double chinese;d

11、ouble english;double average;double sum;double getsum();double getaver();(2)系统包含的类库#include 输 入 输 出 流#include String 类#include 文 件 输 入 /输 出 操 作(3)各个变量的定义和作用char name20; 学生姓名double math; 数学成绩double chinese; 语文成绩double english; 英语成绩double average; 平均分double sum; 总分Stu *s50; 对象数组记录学生成绩学生成绩管理系统- 7 -3.2

12、系统函数的组成、功能、参数说明、相互调用关系主函数 main()调用菜单操作函数 handle_menu()实现菜单的输出和操作,调用 index()打印首页。以及删除动态对象。菜单操作函数 void handle_menu()这是一个无参的函数,通过调用菜单函数 menu()实现菜单的输出,利用 do-while()语句和 switch()语句实现各函数的调用,系统根据输入的字符选项来调用相应的函数,进行相应的操作。菜单函数 void menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的十一大功能,根据每个功能前面的序号进行选择。打印首页函数 void inde

13、x()这是一个无参函数,主要功能是打印本系统的相关信息。默认构造函数 Stu: Stu()这是 Stu 类中的一个默认构造函数,实现对象的初始化。有参构造函数 Stu: Stu(char n20,double ma,double chin,double eng)这个函数的功能主要是对对象的数据成员赋值。求总分函数 double Stu:getsum()这是一个无参函数,主要功能是将每个对象的语文、数学、英语三科成绩求和,返回总分 sum。求平均分函数 double Stu:getaver()这是一个无参函数,调用 double Stu:getsum()平均分,返回平均分 average操作 0

14、 数据录入函数 void operate0()这是一个无参函数,是 Stu 类的一个友元函数,该函数可将用户输入的学生的信息保存到文件“d:document“,输入完成后会提示用户是否要继续录入。操作 1 增加人员函数 void operate1()这是一个无参函数,是 Stu 类的一个友元函数,该函数可以增加学生人数,提示用户输入的学生的信息,并保存到文件“d:document“,输入完成后会提示用户是否要继续录入。学生成绩管理系统- 8 -操作 2 删除人员函数 void operate2()这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需要删除学生的姓名,然后查

15、找该学生,删除该学生数据,并将其后指针往前移动一位,最后提示用户是否继续删除。操作 3 修改数据函数 void operate3()这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需要修改学生的姓名,该函数的功能是修改学生的成绩,防止了录入数据时的错误,保证了系统的完备性。操作 4 按总成绩查询函数 void operate4()这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需要查询的总分,然后输出所有该分数的学生的成绩,并提示用户是否需要继续查询。操作 5 按姓名查询函数 void operate5()这是一个无参函数,是 Stu 类的一个友

16、元函数。进入后系统会提示用户输入需要查询的学生姓名,然后输出该学生的成绩,并提示用户是否需要继续查询。操作 6 输出所有学生的数据函数 void operate6()这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将自动输出该系统下所有学生的成绩,但并不排序,而是按照录入是的顺序输出,输出之后提示用户是否需要进行其它操作。操作 7 按总分排名函数 void operate7()这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照总分从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作 8 按语文成绩排名函数 void operate8()这是

17、一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照语文成绩从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作 9 按数学成绩排名函数 void operate9()这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照数学成绩从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作 y 按英语成绩排名函数 void operatey()这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照英语成绩从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。学生成绩管理系统- 9 -4 设计

18、测试流程1. 进入系统,显示本系统相关信息。如图 4.1 所示。图 4.1 系统主页2. 根据系统提示,进入菜单界面。如图 4.2 所示。学生成绩管理系统- 10 -图 4.2 菜单界面3.输入 0,回车,按提示输入数据。如图 4.3 所示。图 4.3 录入数据输入 y,回车,进行其他操作,将会回到图 4.1 所示的菜单界面。4.回到菜单界面在输入 1,回车,增加人员,按提示输入数据。如图 4.4 所示。学生成绩管理系统- 11 -图 4.4 增加人员输入 y,回车,进行其他操作,将会回到图 4.1 所示的菜单界面5.回到菜单界面再输入 6,回车,输出所有学生的数据,检测操作 0 和操作 1。

19、运行结果如图 4.5 所示。图 4.5 输出所有学生的数据输入 y,回车,进行其他操作,将会回到图 4.1 所示的菜单界面6.回到菜单界面再输入 7,回车,测试按总分排名。运行结果如图 4.6 所示。图 4.6 所有学生总分排名输入 y,回车,进行其他操作,将会回到图 4.1 所示的菜单界面7.回到菜单界面再输入 3,回车,测试修改数据。修改完后,进入菜单,选择操作 6 输出所有学生数据。修改如下:学生成绩管理系统- 12 -张亮:语文 99 数学 98 英语 97吴豪:语文 98 数学 97 英语 99刘杰:语文 97 数学 99 英语 98运行结果如图 4.7 所示。图 4.7 修改后的数

20、据8.运用修改后的数据,测试按语文、数学、英语成绩排名。(1)测试按语文成绩,运行结果如图 4.8 所示。图 4.8 按语文成绩排名(2)测试按数学成绩,运行结果如图 4.9 所示。图 4.9 按数学成绩排名(3)测试按英语成绩,运行结果如图 4.10 所示。学生成绩管理系统- 13 -图 4.10 按英语成绩排名9.回到菜单界面再输入 2,测试删除数据,删除学生刘杰的数据。运行结果如图 4.11所示。图 4.11 测试删除数据10.回到菜单界面再输入 4,测试按总分查询,运行结果如图 4.12 所示。图 4.12 按总分查询11.回到菜单界面再输入 5,测试按姓名查询,运行结果如图 4.13

21、 所示。图 4.13 按姓名查询12.测试完毕。输入 n,退出系统。学生成绩管理系统- 14 -5 结束语在本次课程设计过程中,胡宁静老师从选题、构思、资料收集到最后定稿的各个环节给予细心指导,使我对软件工程有了更深刻的认识,在此表示衷心地感谢。在整个过程中,我查阅了大量的关于书籍借阅管理系统的资料和网站,在老师的指导和自己的努力下,终于完成了本次课程设计。在为期两周的课程设计过程中,使我熟悉了C+编程语言,但也体现了我的种种不足,希望在以后的学习生活当中能够改正。同时我还要感谢指导过我的每一位老师,他们给了我很大的指导和帮助,还有在我陷入困境时帮助过我的同学们。学生成绩管理系统- 15 -参

22、考文献1 杨路明, C 语言程序设计教程.北京:北京邮电大学出版社,2005(2009.7 重印)2 谭浩强, C+程序设计. 北京:清华大学出版社,2004.63 杨路明, C 语言程序设计上机指导与习题选解.北京:北京邮电大学出版社,2005学生成绩管理系统- 16 -附录设计源程序清单/head.h#if !defined(HEAD_H)#define HEAD_H#include#include#includeusing namespace std;/*声明 Stu 类*/class Stuprivate:char name20; /姓名double math,chinese,engl

23、ish,average,sum;public:Stu() /默认构造函数Stu(char n20,double ma,double chin,double eng); /声明有参构造函数double getsum(); /声明求总分函数double getaver(); /声明求平均分函数friend void operate0(); /声明有友元函数操作 0 数据录入friend void operate1(); /声明有友元函数操作 1 增加人员friend void operate2(); /声明有友元函数操作 2 删除人员学生成绩管理系统- 17 -friend void operat

24、e3(); /声明有友元函数操作 3 修改数据friend void operate4(); /声明有友元函数操作 4 按总成绩查询friend void operate5(); /声明有友元函数操作 5 按姓名查询friend void operate6(); /声明有友元函数操作 6 输出所有学生数据friend void operate7(); /声明有友元函数操作 7 按总分排名friend void operate8(); /声明有友元函数操作 8 按语文成绩排名friend void operate9(); /声明有友元函数操作 9 按数学成绩排名friend void opera

25、tey(); /声明有友元函数操作 y 按英语成绩排名;/*声明函数原型*/void menu(); /声明菜单函数void handle_menu(); /声明菜单操作函数#endif/stu.cpp#include“head.h“/*定义 Stu 类*/Stu:Stu(char n20,double ma,double chin,double eng) /定义有参构造函数strcpy(name,n); math=ma; chinese=chin; english=eng;double Stu:getsum() /定义求总分函数sum=chinese+english+math;return

26、sum;double Stu:getaver() /定义求平均分函数average=getsum()/3;return average;/operate0.cpp#include“head.h“/*操作 0 数据录入函数定义*/int i=0; /定义全局变量int j=0; /定义全局变量学生成绩管理系统- 18 -Stu *s50; /定义对象数组void operate0()char name20;char c; ofstream *file50; bool flag2=0;double math,chinese,english;docoutname;coutmath;coutchine

27、se;coutenglish;filej=new ofstream(“d:document“,ios:ate); /通过文件保存学生成绩到“d:document“*filejc; flag2=0; do if(c!=y else flag2=1; while(flag2=0); while(c=y); /operate1.cpp#include“head.h“/*操作 1 增加人员函数定义*/extern i; /引用外部变量学生成绩管理系统- 19 -extern j; /引用外部变量extern Stu *s50; /引用外部变量void operate1()char name20;cha

28、r c; ofstream *file50; bool flag2=0; double math,chinese,english;docoutname;coutmath;coutchinese;coutenglish;filej=new ofstream(“d:document“,ios:ate); /通过文件保存学生成绩到“d:document“*filejc; flag2=0; do if(c != y else flag2 = 1; while(flag2 = 0); while(c = y); /operate2.cpp#include“head.h“/*操作 2 删除人员函数定义*/

29、学生成绩管理系统- 20 -extern i; /引用外部变量extern j; /引用外部变量extern Stu *s50; /引用外部变量void operate2()char name20;char c; bool flag3=0;docoutname;for(int h=0;hname) = 0)flag3 = 1; i-;dosh=sh+1;h+;while(hc;if(c!=ywhile(c=y);/operate3.cpp#include“head.h“/*操作 3 修改数据函数定义*/extern i; /引用外部变量extern j; /引用外部变量学生成绩管理系统- 21

30、 -extern Stu *s50; /引用外部变量void operate3()char name20;char c; bool flag2=0; double math,chinese,english;double mat,chin,eng;docoutname;for(int h=0;hname)=0)flag2=1; coutmat;coutchin;couteng;sh-chinese=chin;sh-math=mat;sh-english=eng;coutc;if(c!=ywhile(c=y); /operate4.cpp#include“head.h“/*学生成绩管理系统- 22

31、 -*操作 4 按总成绩查询函数定义*/extern i; /引用外部变量extern j; /引用外部变量extern Stu *s50; /引用外部变量void operate4()char c; double t;doint flag1=0;coutt;for(int q=0;qgetsum()=t)flag1=1;coutc;if(c!=ywhile(c=y);/operate5.cpp#include“head.h“/*操作 5 按姓名查询函数定义*/extern i; /引用外部变量extern j; /引用外部变量extern Stu *s50; /引用外部变量void oper

32、ate5()学生成绩管理系统- 23 -char name20;char c; char n20;doint flag=0;coutn;for(int j=0;jc;if(c!=ywhile(c=y);/operate6.cpp#include“head.h“/*操作 6 输出所有学生的数据函数定义*/extern i; /引用外部变量extern j; /引用外部变量extern Stu *s50; /引用外部变量void operate6()char name20;char c; bool flag2=0; 学生成绩管理系统- 24 -coutnamechinesemathenglishg

33、etsum()getsum()t=y;if(t!=x)b=*sx; *sx=*st; *st=b;学生成绩管理系统- 25 -if(i=0)coutnamechinesemathenglishchinesechinese)t=y;if(t!=x)b=*st; *st=*sx; *sx=b;学生成绩管理系统- 26 -if(i=0)coutnamechinesemathenglishmathmath)t=y;if(t!=x)b=*st; *st=*sx; *sx=b;学生成绩管理系统- 27 -if(i=0)coutnamechinesemathenglishenglishenglish)t=y

34、;if(t!=x)b=*st; *st=*sx; *sx=b;学生成绩管理系统- 28 -if(i=0)coutnamechinesemathenglishp;if(p=0else 学生成绩管理系统- 29 -cout“指令错误!请重新输入:“endl; while(flag2=0);switch(p)case 0:operate0(); /操作 0 数据录入break;case 1:operate1(); /操作 1 增加人员break;case 2:operate2(); /操作 2 删除人员break;case 3:operate3(); /操作 3 修改数据break;case 4:operate4(); /操作 4 按总成绩查询break;case 5:operate5(); /操作 5 按姓名查询break;case 6:operate6(); /操作 6 输出所有学生的数据break;case 7:operate7(); /操作 7 按总分排名break;case 8:operate8(); /操作 8 按语文成绩排名break;case 9:operate9(); /操作 9 按数学成绩排名break;case y:operatey(); /操作 y 按英语成绩排名break; cout“您想继续进行其他操作吗?(y/n)“endl;bool flag4=0;do

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报