下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.大作业背景说明 :为了能够将本课程所有章节的内容融会贯通, 使得大家能够综合应用各章所学内容完成一个规模稍大的任务, 特别设计了此任务。 该任务主要实现学生成绩管理的功能。 通过该任务的实现, 最终要求大家能够具备综合应用该课程各章的知识实现一个完整的小系统的能力。任务名称 :学生成绩管理系统任务功能 :该系统由多个模块构成,主要包括菜单显示、学生信息批量录入、单个学生信息添加、学生成绩信息显示或输出、学生信息修改、学生记录删除、平均成绩计算、学号或平均分排序等模块。假设每个学生的信息包括学号、姓名、语文、数学、英语和平均成绩。成绩单的格式如下:学号姓名语文成绩数学成绩英语成绩平均成绩201
2、11001sarah809090系统计算20111002micheal70908020111003linda90858020111004lee808892功能模块图 :.主模块菜学学编删统按从输单生生辑除计学文出显成成或某成号件到示绩绩修学绩或读文信信改生成入件息息学信绩数输输生息排据入出信序息实现方法 :为了方便实现, 通常会将一个复杂的任务分解为多个子任务逐步实现。任务 1:显示“学生成绩管理系统”的菜单。在VC+6.0 集成开发环境下,编程打印输出如下图的菜单。.任务 2:在任务 1 的基础上,编写程序实现选择菜单项的功能。即从键盘输入09 之间的一个字符,然后显示输入字符对应的信息。如
3、输入的字符是1 ,则显示:您选择了“ 1 创建成绩单”;如果输入的字符不在09 之间,则输出:“非法输入”。任务 3:在任务 2 的基础上,编写程序实现循环点菜功能。即从键盘输入09 之间的一个字符,然后显示输入字符对应的信息。如输入的字符是1,则显示:您选择了“ 1创建成绩单”;如果输入的字符不在09 之间,则输出“非法输入”。以上过程可以循环往复地执行,直到输入字符0,则显示:您选择了“0退出”,然后按任意键结束整个程序的执行。.任务 4:在任务 3 的基础上,编写程序实现成绩管理的各菜单项的具体功能,包括创建成绩单(批量录入学生数据)和计算平均成绩、添加单个学生信息、删除某学生信息、编辑
4、学生信息、统计优秀成绩的个数、 基于学号或平均成绩排序、显示学生信息等功能。假设每个学生的信息包括学号、姓名、数学、语文、英语和平均成绩。重点考虑:1) 学生全部数据的定义和组织:多个基本类型数组?1 个结构体数组?2) 各模块的实现顺序:先实现创建成绩单,即成绩单录入模块,然后实现显示成绩模块,然后实现其他模块。3) 无论实现那个模块, 当前表中的实际人数和表容纳的最大人数都是需要注意的重要对象。.4) 创建成绩单创建成绩单:实现成绩录入,成绩输入过程如下图:基本思路 :如果成绩单存在则不可二次创建,即当前表中人数 >0 时,不可创建;否则(表中无人)可创建成绩单,即可批量录入学生信息
5、。每个人的平均成绩在录入后,系统直接计算。录入时需要注意两点 :a、 结束标记,比如可以设计学号为 0 时,录入结束;b、 成绩表中实际人数达到最大值,也要结束录入。4)显示成绩如果表中无人,提示用户无成绩存在,否则输出全部信息。当前表中的实际人数依然是关键。5) 添加学生先判断表中人数,如果表中人数达到最大值, 则提示用户不可添加学生信息,否则方可添加学生信息。添加学生后,注意更新表中现有学生人数。6) 编辑学生信息以学号为修改的关键字。要求用户输入要修改学生的学号,然后查找该学生.信息,如果表中无该学号, 提示用户无此人, 否则允许用户输入新的信息来覆盖旧的信息。7) 删除学生信息以学号为
6、删除的关键字。要求用户输入要删除学生的学号,然后查找该学生信息,如果表中无该学号,提示用户无此人;否则删除该学生信息,并提示用户已删除。8) 统计成绩统计每科成绩为优秀(大于等于 90 分)的学生人数,并输出结果。依然需要判断表中是否有人,如果无人提示用户,否则统计并输出结果。9) 排序成绩单最好提供如下图所示的子菜单,否则就只能实现一种排序。注意:a、 成绩表中少于 2 人(实际人数 <2)不应做排序b、 排序后不要直接输出,提示用户使用菜单项 “ 7显示成绩 ”输出排序结果。尽可能代码重用,不要重复编写功能一样的代码。任务 5:在任务 4 的基础上,追加从文件读入数据和将数据写入文件
7、的功能。菜单截图如下:.其中菜单项8“从文件读入” ,用于从文件中读入学生成绩信息;相反的,菜单项9“输出到文件”,用于将从键盘上输入的学生数据保存在磁盘文件中。磁盘文件的好处是可永久保存数据。将学生数据保存在磁盘文件中,可以让数据独立于程序而存在。此外,从文件可以读入学生数据进行管理,以减少反复输入的麻烦。注意:a、无论读写,文件打开时,应该测试文件是否能正常打开,如果错误给出出错提示。b、 文件的格式,建议为文本文件,即ASCII 文件,这样可以用记事本打开查看结果,文件内容如下图所示:#include<stdio.h>#define N 10main().int button
8、,button2,i,max=0,change,del,num3=0,0,0;struct stuint no;char name20;int math;int chi;int eng;stuN;printf("|-|n");printf("|n");printf("|学生成绩管理系统|n");printf("|n");printf("|-|n");printf("|n");printf("|1创建成绩单|n");printf("|2添加学生|n
9、");printf("|3编辑学生|n");printf("|4删除学生|n");printf("|5统计成绩|n");printf("|6排序成绩单|n");printf("|7显示成绩|n");printf("|8从文件读入|n");printf("|9输出到文件|n");printf("|0退出|n");printf("|-|n");printf(" 请输入编号( 0 9):");
10、scanf("%d",&button);if(button>=9|button<=0).printf(" 非法输入 !n");if(button=1)printf(" 您选择了 1创建成绩单: %dn",button);if(max>=N)printf(" 已经超出最大值,不能创建");/break;printf(" 输入学号为 0 时退出。 ");for(i=0;stui.no!=0&&i<=N;i+)printf(" 学号 :&quo
11、t;);scanf("%d",&stui.no);printf(" 姓名 :");scanf("%s",);printf(" 数学 :");scanf("%d",&stui.math);printf(" 语文 :");scanf("%d",&stui.chi);printf(" 英语 :");scanf("%d",&stui.eng);printf(" 录入
12、结束 ");if(button=2)printf(" 输入学号为 0 时退出。 ");for(i=max;stui.no!=0&&i<=N;i+).printf(" 学号 :");scanf("%d",&stui.no);printf(" 姓名 :");scanf("%s",);printf(" 数学 :");scanf("%d",&stui.math);printf(" 语文 :
13、");scanf("%d",&stui.chi);printf(" 英语 :");scanf("%d",&stui.eng);printf(" 添加结束 ");if(button=3)printf(" 请输入将要编辑学生的学号:");scanf("%d",&change);if(change>=0&&change<=max)printf(" 姓名 :");scanf("%s"
14、,);printf(" 数学 :");scanf("%d",&stuchange.math);printf(" 语文 :");scanf("%d",&stuchange.chi);printf(" 英语 :");scanf("%d",&stuchange.eng);else.printf(" 查无此人 ");if(button=4)printf(" 请输入将要删除学生的学号:");sc
15、anf("%d",&del);if(del<=max&&del>=0&&del!=0)studel.no=0;studel.math=0;studel.chi=0;studel.eng=0;printf(" 该学生已删除 ");elseprintf(" 查无此人 ");if(button=5)if(max!=0)for(i=0;i<=max;i+)if(stui.math>=90&&stui.no!=0)num0+;if(stui.chi>=90&&stui.no!=0)num1+;if(stui.eng>=90&&stui.no!=0)num2+;.printf(" 数学优秀学生数: %dn 语文优秀学生数:%dn 英语优秀学生数: %dn",num0,num1,num2);if(button=6)printf("|-|");printf("|");prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 路基路面课程设计问题
- 湖北工业大学《设计程序与方法研究》2022-2023学年期末试卷
- 课程设计系统类图
- 湖北工业大学《DataStructure》2023-2024学年期末试卷
- 湖北恩施学院《数据库技术及应用(MYSQL)》2021-2022学年期末试卷
- 课程设计选V带型号
- 结构化烹饪课程设计
- 廉洁风险保证金制度
- 纠正四风工作总结
- 话术逻辑训练课程设计
- 车辆运输保障方案
- 中医药纳米技术与缓控释制剂
- 用车安全培训资料
- 食品生产企业食品安全风险日管控、周排查、月调度工作制度
- 《四川九寨沟》课件
- 《员工晋升管理》课件
- 防校园欺凌家长会
- 中国老年糖尿病诊疗指南(2024版)解读
- Music-中西方音乐的区别
- 新生儿家庭式护理
- 职工履历表简介
评论
0/150
提交评论