[计算机软件及应用]c++学生成绩管理系统文档.doc_第1页
[计算机软件及应用]c++学生成绩管理系统文档.doc_第2页
[计算机软件及应用]c++学生成绩管理系统文档.doc_第3页
[计算机软件及应用]c++学生成绩管理系统文档.doc_第4页
[计算机软件及应用]c++学生成绩管理系统文档.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

目录目录 1 引 言.2 1.1 课题背景及意义 2 1.2 可行性分析 2 2 系统需求分析.4 2.1 功能需求分析 4 2.2 性能需求分析 4 2.3 系统总体结构设计 4 3 详细设计.6 3.1 数据结构设计 6 3.2 系统函数的组成、功能、参数说明、相互调用关系.7 4 设计测试流程.9 5 结束语14 参考文献 .15 附录 .16 学生成绩管理系统 - 1 - 学生成绩管理系统学生成绩管理系统 学生姓名:张亮学生姓名:张亮 指导老师:胡宁静指导老师:胡宁静 摘 要 本课程设计主要解决学生成绩管理问题。使用计算机进行信息管理,不仅提高了工 作效率,而且大大的提高了其安全性.尤其对于复杂的信息管理,计算机能够充分发挥它的优越性.学生 成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重 要。 在课程设计中,系统开发平台为 Windows XP,程序设计设计语言采用 Visual C+,程 序运行平台为 Windows 98/2000/XP。在程序设计中,采用了面向对象解决问题的方法。 程序通过调试运行,初步实现了设计目标。 关键词 程序设计;C+;成绩管理 学生成绩管理系统 - 2 - 1 引引 言言 为方便对 学生成绩 进行高效的管理,编写该程序以提高 学生成绩 管理效率。 使用该程序之后, 学校管理者 可以查询某位 学生、某个科目的成绩 情况,还可以 对学生成绩进行排名 ,对学生的数据进行修改和删除,其中排名包括总分排名和 各个科目的排名 ,学生可以更具自己的个人信息进行成绩查询,查询结果包括各 个科目的分数、总分和平均分。通过本系统可以很好的掌握学生成绩的分布,减轻 管理人员的负担,也使学生的成绩和信息长时期的保留。 1.1 课题背景及意义课题背景及意义 一直以来人们使用传统的人工方式 管理学生成绩, 在计算机尚未在 学校广 泛使用之前, 学生成绩管理 主要依靠手工。一个最典型的手工处理过程就是: 当考试完后,老师就要把学生成绩登记到文档中,当老师或学生要查询成绩的时候 要一个一个去找,总分、平均分都需要一个一个累加起来算,很麻烦,不过最麻烦 的还是排名,不能一目了然。 以上所描述的手工过程的不足之处显而易见,首先处理学生成绩 的效率很 低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算 机来处理这些流程无疑会极大程度地提高效率和处理能力。我们很清晰的看到自 己的各个科目成绩和每个科目的排名和总分排名以及所有学生的成绩分布,而 且还是零失误 ,所有的都是一目了然。极大的方便了学生和老师。为提高成绩管 理效率,管理人员 的工作负担,有必要开发一个小型 成绩管理系统 来对学生成绩 实施有效管理。 1.2 可行性分析可行性分析 (1)经济可行性分析 作为学校这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的 费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。 由于各个学校实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少, 学生成绩管理系统 - 3 - 而且本系统的费用很低。 (2)技术可行性分析 技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件 配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。学生成绩管理系 统的工作主要是在学生和老师之间架起一座桥梁,能相互沟通信息和处理信息。这一 特点非常适合计算机特点,通过网络 internet 技术,发挥计算机的信息传输速度快、准 确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。 (3)社会可行性分析 社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的 可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用 新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新 是学校完全有可能也有能力采用这样先进的管理技术。它对学校带来的影响可以看到: 对传统管理理念的冲击,可能引起管理层的变动和人员的调整。对学校工作人员的要 求提高,使学校在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽 学校在市场环境下的生存空间。对学生和管理人员业务方式的转变和扩充。 学生成绩管理系统 - 4 - 2 系统需求分析系统需求分析 2.1 功能需求分析功能需求分析 1)录入数据:将学生姓名、语文、数学、英语成绩写入文件。 2)增加人员:增加学生,并将学生姓名和成绩写入文件。 3)删除人员:删除学生信息和成绩。 4)修改数据:修改学生成绩。 5)按总成绩查询:根据总分查询学生成绩,包括平均分。 6)按姓名查询:根据学生姓名查询学生成绩,包括总分和平均分。 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)操作:包括录入数据、增加人员、删除人员、修改数据。 2)查询:包括按总成绩查询、按姓名查询、输出所有学生成绩。 3)排名:按总分排名、按语文成绩排名、按数学成绩排名、按英语成绩排名 根据需求分析的结果,总体结构如图 2-1 所示。 学生成绩管理系统 - 5 - 学生成绩管理系统 操作查询排名 增 加 人 员 按 总 成 绩 查 询 录 入 数 据 删 除 人 员 修 改 数 据 按 姓 名 查 询 输 出 全 部 数 据 按 总 分 排 名 语 文 成 绩 排 名 数 学 成 绩 排 名 英 语 成 绩 排 名 图 2.1 系统总体结构 学生成绩管理系统 - 6 - 3 详细设计详细设计 3 3.1 1 数据结构设计数据结构设计 (1) 类的设计 表表 3-1 Stu 类成员列表类成员列表 Stu 类 char name20; double math; double chinese; double english; double average; double sum; double getsum(); double getaver(); (2)系统包含的类库 #include 输入输出流 #includeString 类 #include文件输入/输出操作 (3)各个变量的定义和作用 char name20; 学生姓名 double math; 数学成绩 double chinese; 语文成绩 double english; 英语成绩 double average; 平均分 double sum; 总分 Stu *s50; 对象数组记录学生成绩 学生成绩管理系统 - 7 - 3.23.2 系统函数的组成、功能、参数说明、相互调用关系系统函数的组成、功能、参数说明、相互调用关系 主函数主函数 main() 调用菜单操作函数 handle_menu()实现菜单的输出和操作,调用 index()打印首页。以及 删除动态对象。 菜单操作函数菜单操作函数 voidvoid handle_menu() 这是一个无参的函数,通过调用菜单函数 menu()实现菜单的输出,利用 do-while()语句 和 switch()语句实现各函数的调用,系统根据输入的字符选项来调用相应的函数,进行 相应的操作。 菜单函数菜单函数 void menu() 这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的十一 大功能,根据每个功能前面的序号进行选择。 打印首页函数打印首页函数 void index() 这是一个无参函数,主要功能是打印本系统的相关信息。 默认构造函数默认构造函数 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 数据录入函数数据录入函数 void operate0() 这是一个无参函数,是 Stu 类的一个友元函数,该函数可将用户输入的学生的信息保 存到文件“d:document“,输入完成后会提示用户是否要继续录入。 操作操作 1 增加人员函数增加人员函数 void operate1() 这是一个无参函数,是 Stu 类的一个友元函数,该函数可以增加学生人数,提示用户 输入的学生的信息,并保存到文件“d:document“,输入完成后会提示用户是否要继续 录入。 学生成绩管理系统 - 8 - 操作操作 2 删除人员函数删除人员函数 void operate2() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需要删除 学生的姓名,然后查找该学生,删除该学生数据,并将其后指针往前移动一位,最后 提示用户是否继续删除。 操作操作 3 修改数据函数修改数据函数 void operate3() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需要修改 学生的姓名,该函数的功能是修改学生的成绩,防止了录入数据时的错误,保证了系 统的完备性。 操作操作 4 按总成绩查询函数按总成绩查询函数 void operate4() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统会提示用户输入需要查询 的总分,然后输出所有该分数的学生的成绩,并提示用户是否需要继续查询。 操作操作 5 按姓名查询函数按姓名查询函数 void operate5() 这是一个无参函数,是 Stu 类的一个友元函数。进入后系统会提示用户输入需要查询 的学生姓名,然后输出该学生的成绩,并提示用户是否需要继续查询。 操作操作 6 输出所有学生的数据函数输出所有学生的数据函数 void operate6() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将自动输出该系统下所有 学生的成绩,但并不排序,而是按照录入是的顺序输出,输出之后提示用户是否需要 进行其它操作。 操作操作 7 按总分排名函数按总分排名函数 void operate7() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照总分从高到低自动 输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。 操作操作 8 按语文成绩排名函数按语文成绩排名函数 void operate8() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照语文成绩从高到低 自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。 操作操作 9 按数学成绩排名函数按数学成绩排名函数 void operate9() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照数学成绩从高到低 自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。 操作操作 y 按英语成绩排名函数按英语成绩排名函数 void operatey() 这是一个无参函数,是 Stu 类的一个友元函数,进入后系统将按照英语成绩从高到低 自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。 学生成绩管理系统 - 9 - 4 设计测试流程设计测试流程 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。运行结 果如图 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 修改后的数据 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 所示。 图 4.13 按姓名查询按姓名查询 12.测试完毕。输入 n,退出系统。 学生成绩管理系统 - 14 - 5 结束语结束语 在本次课程设计过程中,胡宁静老师从选题、构思、资料收集到最后定稿的各 个环节给予细心指导,使我对软件工程有了更深刻的认识,在此表示衷心地感谢。 在整个过程中,我查阅了大量的关于书籍借阅管理系统的资料和网站,在老师的指 导和自己的努力下,终于完成了本次课程设计。在为期两周的课程设计过程中,使 我熟悉了C+编程语言,但也体现了我的种种不足,希望在以后的学习生活当中能够 改正。同时我还要感谢指导过我的每一位老师,他们给了我很大的指导和帮助,还 有在我陷入困境时帮助过我的同学们。 学生成绩管理系统 - 15 - 参考文献参考文献 1 杨路明,C 语言程序设计教程.北京:北京邮电大学出版社,2005(2009.7 重印) 2 谭浩强,C+程序设计. 北京:清华大学出版社,2004.6 3 杨路明,C 语言程序设计上机指导与习题选解.北京:北京邮电大学出版社,2005 学生成绩管理系统 - 16 - 附录附录 设计源程序清单设计源程序清单 /head.h #if !defined(HEAD_H) #define HEAD_H #include #include #include using namespace std; /* *声明 Stu 类 */ class Stu private: char name20;/姓名 double math,chinese,english,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 operate3();/声明有友元函数操作 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 operatey();/声明有友元函数操作 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 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; do coutname; 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); /operate1.cpp #include“head.h“ /* *操作 1 增加人员函数定义 */ extern i; /引用外部变量 学生成绩管理系统 - 19 - extern j; /引用外部变量 extern Stu *s50;/引用外部变量 void operate1() char name20; char c; ofstream *file50; bool flag2=0; double math,chinese,english; do coutname; 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 删除人员函数定义 */ 学生成绩管理系统 - 20 - extern i; /引用外部变量 extern j; /引用外部变量 extern Stu *s50;/引用外部变量 void operate2() char name20; char c; bool flag3=0; do coutname; for(int h=0;hname) = 0) flag3 = 1; i-; do sh=sh+1; h+; while(hc; if(c!=y while(c=y); /operate3.cpp #include“head.h“ /* *操作 3 修改数据函数定义 */ extern i; /引用外部变量 extern j; /引用外部变量 学生成绩管理系统 - 21 - extern Stu *s50;/引用外部变量 void operate3() char name20; char c; bool flag2=0; double math,chinese,english; double mat,chin,eng; do coutname; for(int h=0;hname)=0) flag2=1; coutmat; coutchin; couteng; sh-chinese=chin; sh-math=mat; sh-english=eng; coutc; if(c!=y while(c=y); /operate4.cpp #include“head.h“ /* 学生成绩管理系统 - 22 - *操作 4 按总成绩查询函数定义 */ extern i; /引用外部变量 extern j; /引用外部变量 extern Stu *s50;/引用外部变量 void operate

温馨提示

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

评论

0/150

提交评论