大作业学生成绩管理系统Word格式文档下载.docx
- 文档编号:19065540
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:12
- 大小:124.52KB
大作业学生成绩管理系统Word格式文档下载.docx
《大作业学生成绩管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大作业学生成绩管理系统Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
micheal
70
20111003
linda
85
20111004
lee
88
92
…
功能模块图:
实现方法:
为了方便实现,通常会将一个复杂的任务分解为多个子任务逐步实现。
任务1:
显示“学生成绩管理系统”的菜单。
在VC++6.0集成开发环境下,编程打印输出如下图的菜单。
任务2:
在任务1的基础上,编写程序实现选择菜单项的功能。
即从键盘输入0~9之间的一个字符,然后显示输入字符对应的信息。
如输入的字符是1,则显示:
您选择了“1——创建成绩单”;
如果输入的字符不在0~9之间,则输出:
“非法输入”。
任务3:
在任务2的基础上,编写程序实现循环点菜功能。
如果输入的字符不在0~9之间,则输出“非法输入”。
以上过程可以循环往复地执行,直到输入字符0,则显示:
您选择了“0——退出”,然后按任意键结束整个程序的执行。
任务4:
在任务3的基础上,编写程序实现成绩管理的各菜单项的具体功能,包括创建成绩单(批量录入学生数据)和计算平均成绩、添加单个学生信息、删除某学生信息、编辑学生信息、统计优秀成绩的个数、基于学号或平均成绩排序、显示学生信息等功能。
假设每个学生的信息包括学号、姓名、数学、语文、英语和平均成绩。
重点考虑:
1)学生全部数据的定义和组织:
多个基本类型数组?
1个结构体数组?
2)各模块的实现顺序:
先实现创建成绩单,即成绩单录入模块,然后实现显示成绩模块,然后实现其他模块。
3)无论实现那个模块,当前表中的实际人数和表容纳的最大人数都是需要注意的重要对象。
4)创建成绩单
创建成绩单:
实现成绩录入,成绩输入过程如下图:
基本思路:
如果成绩单存在则不可二次创建,即当前表中人数>
0时,不可创建;
否则(表中无人)可创建成绩单,即可批量录入学生信息。
每个人的平均成绩在录入后,系统直接计算。
录入时需要注意两点:
a、结束标记,比如可以设计学号为0时,录入结束;
b、成绩表中实际人数达到最大值,也要结束录入。
4)显示成绩
如果表中无人,提示用户无成绩存在,否则输出全部信息。
当前表中的实际人数依然是关键。
5)添加学生
先判断表中人数,如果表中人数达到最大值,则提示用户不可添加学生信息,否则方可添加学生信息。
添加学生后,注意更新表中现有学生人数。
6)编辑学生信息
以学号为修改的关键字。
要求用户输入要修改学生的学号,然后查找该学生信息,如果表中无该学号,提示用户无此人,否则允许用户输入新的信息来覆盖旧的信息。
7)删除学生信息
以学号为删除的关键字。
要求用户输入要删除学生的学号,然后查找该学生信息,如果表中无该学号,提示用户无此人;
否则删除该学生信息,并提示用户已删除。
8)统计成绩
统计每科成绩为优秀(大于等于90分)的学生人数,并输出结果。
依然需要判断表中是否有人,如果无人提示用户,否则统计并输出结果。
9)排序成绩单
最好提供如下图所示的子菜单,否则就只能实现一种排序。
注意:
a、成绩表中少于2人(实际人数<
2)不应做排序
b、排序后不要直接输出,提示用户使用菜单项“7—显示成绩”输出排序结果。
尽可能代码重用,不要重复编写功能一样的代码。
任务5:
在任务4的基础上,追加从文件读入数据和将数据写入文件的功能。
菜单截图如下:
其中菜单项8“从文件读入”,用于从文件中读入学生成绩信息;
相反的,菜单项9“输出到文件”,用于将从键盘上输入的学生数据保存在磁盘文件中。
磁盘文件的好处是可永久保存数据。
将学生数据保存在磁盘文件中,可以让数据独立于程序而存在。
此外,从文件可以读入学生数据进行管理,以减少反复输入的麻烦。
a、无论读写,文件打开时,应该测试文件是否能正常打开,如果错误给出出错提示。
b、文件的格式,建议为文本文件,即ASCII文件,这样可以用记事本打开查看结果,文件内容如下图所示:
#include<
stdio.h>
#defineN10
main()
{
intbutton,button2,i,max=0,change,del,num[3]={0,0,0};
structstu
{
intno;
charname[20];
intmath;
intchi;
inteng;
}stu[N];
printf("
|--------------------------------------------------|\n"
);
||\n"
|学生成绩管理系统|\n"
|1——创建成绩单|\n"
|2——添加学生|\n"
|3——编辑学生|\n"
|4——删除学生|\n"
|5——统计成绩|\n"
|6——排序成绩单|\n"
|7——显示成绩|\n"
|8——从文件读入|\n"
|9——输出到文件|\n"
|0——退出|\n"
请输入编号(0~9):
"
scanf("
%d"
&
button);
if(button>
=9||button<
=0)
printf("
非法输入!
\n"
if(button==1)
您选择了1——创建成绩单:
%d\n"
button);
if(max>
=N)
{
printf("
已经超出最大值,不能创建"
//break;
}
输入学号为0时退出。
for(i=0;
stu[i].no!
=0&
&
i<
=N;
i++)
学号:
scanf("
stu[i].no);
姓名:
%s"
stu[i].name);
数学:
stu[i].math);
语文:
stu[i].chi);
英语:
stu[i].eng);
录入结束"
}
if(button==2)
printf("
for(i=max;
添加结束"
if(button==3)
请输入将要编辑学生的学号:
change);
if(change>
change<
=max)
{
scanf("
stu[change].name);
stu[change].math);
stu[change].chi);
stu[change].eng);
}
else
printf("
查无此人"
if(button==4)
请输入将要删除学生的学号:
del);
if(del<
=max&
del>
del!
{
stu[del].no=0;
stu[del].math=0;
stu[del].chi=0;
stu[del].eng=0;
该学生已删除"
}
else
if(button==5)
if(max!
for(i=0;
=max;
if(stu[i].math>
=90&
num[0]++;
if(stu[i].chi>
num[1]++;
if(stu[i].eng>
num[2]++;
数学优秀学生数:
%d\n语文优秀学生数:
%d\n英语优秀学生数:
num[0],num[1],num[2]);
if(button==6)
|-------------------------------------|"
||"
|排序菜单|"
|1.按学号升序排列|"
|2.按平均成绩升序排列|"
请输入选项编号(1~2):
button2);
if(button2==1)
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作业 学生 成绩管理系统