收藏 分销(赏)

成绩排序问题.doc

上传人:快乐****生活 文档编号:2405728 上传时间:2024-05-29 格式:DOC 页数:6 大小:124KB
下载 相关 举报
成绩排序问题.doc_第1页
第1页 / 共6页
成绩排序问题.doc_第2页
第2页 / 共6页
成绩排序问题.doc_第3页
第3页 / 共6页
成绩排序问题.doc_第4页
第4页 / 共6页
成绩排序问题.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、。实验报告实验课名称:数据结构实验实验名称:考试日程安排与成绩统计问题一、问题描述l 现要安排考试的考表(即考试日程表),假设共有10个班的学生,要安排10门必修课程的考试,必修课程是以班级来确定的,每个班各有3门必修课,因此各班的考试科目是不相同的;安排考表的原则是:相同课程采用统一的试卷,因此同一门课程的考试必须在相同时间进行,同一个班所修的科目必须安排在不同的时间进行考试,以避免考试时间的冲突。并要求全部考试的日程尽可能短。l 要求对考试结果做统计和排序。假设分别以编号0,1,2,3,4,5,6,7,8,9代表10门要考试的课程,以B1,B2,B3,B4,B5,B6,B7,B8,B9,B

2、10代表10个班,每个人的信息包括学号、姓名、班级、各门考试课程成绩、三门课程总成绩,每个班的学生人数自行设定。要求设计一个简单的考试成绩的查询统计系统实现以下功能: 显示学生考试情况-按考试总分从高到底输出全体学生的信息。-按照从B1到B10的班级顺序,分班级按照考试总分从高到底的顺序输出各班学生的信息。-输出指定班的学生考试成绩信息。 统计学生考试成绩-按总成绩统计出90分以上、8089分、7079分、6069分、60分以下各分数段的人数,并按总分从高到低分段输出。-根据指定的某们课程的成绩,统计出上述各分数段的人数,并按分数从高到低分段输出。-统计并输出指定班级中总成绩或某一门课成绩的各

3、分数段人数和每个人具体的信息。 查找学生成绩-查找总分或某一门课程成绩的指定分数段的人数及学生的详细信息。-查找指定班级中总分或某一门课程成绩属于某分数段的学生详细信息。-查找指定学生(例如给定学号)的具体信息,包括:姓名、班级、各科分数、总分数等。二、数据结构设计根据实验要求,对学生成绩的存储的数据结构如下:typedef struct char number15;/学号 char name100;/姓名 int fen4;/成绩(分别为语文成绩、数学成绩、英语成绩、总分) int n2;/名次(n0为总分名次n1为单科名次)node;typedef structnode stumaxsiz

4、e+1; /存放学生信息int num; /存放学生人数SqList;三、算法设计根据问题要求,首先创建学生信息,输入各科成绩,计算总分,之后利用快速排序实现对学生单科及总分的排序,最后输出。设计流程图如图1.1所示。图1.1 设计流程图(1) 数据输入 根据输入提示,对学生基本信息做相应的输入,其代码如下:cout请输入学生人数:a.num; for(i=1;i=a.num;i+)/输入每个学生的三门成绩cout请输入第i个学生的学号和姓名:a.stui.number;cina.stui.name;cout请输入第i个学生语文,数学,英语成绩:a.stui.fen0;cina.stui.fe

5、n1;cina.stui.fen2;学生信息初始化完成后,在根据输入提示选择相应操作: while(1)cout1.总分排序 endl;cout2.语文排序 endl; cout3.数学排序 endl;cout4.英语排序 endl;cout0.退 出 nendl;cout请选择:choice;switch(choice)case 1:case 2:case 3: case 4:case 0:return 0;default:cout输入错误,请重新输入(0-4)endl;break;(2) 创建学生信息并进行相应排序,本实验中采用快速排序,其代码如下:int Partition(SqList

6、 &L,int low,int high,int i) /枢轴函数 int pivotkey; / 枢轴关键字 pivotkey=L.stulow.feni; L.stu0=L.stulow; while(lowhigh) while(low=pivotkey) -high; L.stulow=L.stuhigh; while(lowhigh&L.stulow.feni=pivotkey) +low; L.stuhigh=L.stulow; L.stulow=L.stu0; return low; void QSort(SqList &L,int low,int high,int i) /快速

7、排序函数 int pivotloc; if(lowhigh)/ 子序列长度大于1 pivotloc=Partition(L,low,high,i); QSort(L,low,pivotloc-1,i); /递归快速排序 QSort(L,pivotloc+1,high,i); /递归快速排序 (3) 根据所选择的操作进行相应的输出,代码如下:case 1:QuickSort(x,3); place(x,0,3);/排序 display2(x);/调用输出函数break;case 2:QuickSort(x,0); place(x,1,0); /排序display3(x); /调用输出函数brea

8、k;case 3: QuickSort(x,1);place(x,1,1); /排序display3(x); /调用输出函数break;case 4:QuickSort(x,2); place(x,1,2); /排序display3(x); /调用输出函数break;case 0:return 0;四、界面设计 程序包含输入提示功能和输出提示功能。五、运行测试与分析(1)运行程序,显示提示,如图1.2所示。图1.2 启动界面(2) 按要求输入学生数,学生信息和成绩,如图1.3所示。图1.3 数据输入界面 (3)数据结果输出。根据实验要求输出实验结果。如图1.4所示。图1.4 数据结果输出界面六、实验收获与思考通过本次实验,熟练掌握了对排序的理解,在本实验中,利用快速排序进行排序,更加加深了对快速排序的实现过程的理解。教师评分:教师签字:THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考-可编辑修改-

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

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

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服