收藏 分销(赏)

大作业学生成绩标准管理系统.doc

上传人:天**** 文档编号:3031687 上传时间:2024-06-13 格式:DOC 页数:13 大小:164.54KB 下载积分:8 金币
下载 相关 举报
大作业学生成绩标准管理系统.doc_第1页
第1页 / 共13页
大作业学生成绩标准管理系统.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
大作业 背景阐明: 为了可以将本课程所有章节内容融会贯通,使得人们可以综合应用各章所学内容完毕一种规模稍大任务,特别设计了此任务。该任务重要实现学生成绩管理功能。通过该任务实现,最后规定人们可以具备综合应用该课程各章知识实现一种完整小系统能力。 任务名称:学生成绩管理系统 任务功能:该系统由各种模块构成,重要涉及菜单显示、学生信息批量录入、单个学生信息添加、学生成绩信息显示或输出、学生信息修改、学生记录删除、平均成绩计算、学号或平均分排序等模块。 假设每个学生信息涉及学号、姓名、语文、数学、英语和平均成绩。成绩单格式如下: 学号 姓名 语文成绩 数学成绩 英语成绩 平均成绩 1001 sarah 80 90 90 系记录算 1002 micheal 70 90 80 1003 linda 90 85 80 1004 lee 80 88 92 … … … … … … 功能模块图: 主模块 菜 单 显 示 学 生 成 绩 信 息 输 入 学 生 成 绩 信 息 输 出 编 辑 或 修 改 学 生 信 息 删 除 某 学 生 信 息 统 计 成 绩 按 学 号 或 成 绩 排 序 从 文 件 读 入 数 据 输 出 到 文 件 实现办法:为了以便实现,普通会将一种复杂任务分解为各种子任务逐渐实现。 任务1:显示“学生成绩管理系统”菜单。在VC++6.0集成开发环境下,编程打印输出如下图菜单。 任务2:在任务1基本上,编写程序实现选取菜单项功能。即从键盘输入0~9之间一种字符,然后显示输入字符相应信息。如输入字符是1,则显示:您选取了“1——创立成绩单” ;如果输入字符不在0~9之间,则输出:“非法输入”。 任务3:在任务2基本上,编写程序实现循环点菜功能。即从键盘输入0~9之间一种字符,然后显示输入字符相应信息。如输入字符是1,则显示:您选取了“1——创立成绩单” ;如果输入字符不在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> #define N 10 main() { int button,button2,i,max=0,change,del,num[3]={0,0,0}; struct stu { int no; char name[20]; int math; int chi; int eng; }stu[N]; printf("|--------------------------------------------------|\n"); printf("| |\n"); printf("| 学生成绩管理系统 |\n"); printf("| |\n"); printf("|--------------------------------------------------|\n"); printf("| |\n"); printf("| 1——创立成绩单 |\n"); printf("| 2——添加学生 |\n"); 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):"); scanf("%d",&button); if(button>=9||button<=0) printf("非法输入!\n"); if(button==1) { printf("您选取了1——创立成绩单:%d\n",button); if(max>=N) { printf("已经超过最大值,不能创立"); //break; } printf("输入学号为0时退出。"); for(i=0;stu[i].no!=0&&i<=N;i++) { printf("学号:"); scanf("%d",&stu[i].no); printf("姓名:"); scanf("%s",stu[i].name); printf("数学:"); scanf("%d",&stu[i].math); printf("语文:"); scanf("%d",&stu[i].chi); printf("英语:"); scanf("%d",&stu[i].eng); } printf("录入结束"); } if(button==2) { printf("输入学号为0时退出。"); for(i=max;stu[i].no!=0&&i<=N;i++) { printf("学号:"); scanf("%d",&stu[i].no); printf("姓名:"); scanf("%s",stu[i].name); printf("数学:"); scanf("%d",&stu[i].math); printf("语文:"); scanf("%d",&stu[i].chi); printf("英语:"); scanf("%d",&stu[i].eng); } printf("添加结束"); } if(button==3) { printf("请输入将要编辑学生学号:"); scanf("%d",&change); if(change>=0&&change<=max) { printf("姓名:"); scanf("%s",stu[change].name); printf("数学:"); scanf("%d",&stu[change].math); printf("语文:"); scanf("%d",&stu[change].chi); printf("英语:"); scanf("%d",&stu[change].eng); } else printf("查无此人"); } if(button==4) { printf("请输入将要删除学生学号:"); scanf("%d",&del); if(del<=max&&del>=0&&del!=0) { stu[del].no=0; stu[del].math=0; stu[del].chi=0; stu[del].eng=0; printf("该学生已删除"); } else printf("查无此人"); } if(button==5) { if(max!=0) for(i=0;i<=max;i++) { if(stu[i].math>=90&&stu[i].no!=0) num[0]++; if(stu[i].chi>=90&&stu[i].no!=0) num[1]++; if(stu[i].eng>=90&&stu[i].no!=0) num[2]++; } printf("数学先进学生数:%d\n语文先进学生数: %d\n英语先进学生数:%d\n",num[0],num[1],num[2]); } if(button==6) { printf("|-------------------------------------|"); printf("| |"); printf("| 排序菜单 |"); printf("|-------------------------------------|"); printf("| |"); printf("| 1.按学号升序排列 |"); printf("| 2.按平均成绩升序排列 |"); printf("|-------------------------------------|"); printf("请输入选项编号(1 ~ 2):"); scanf("%d",&button2); if(button2==1) } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服