成绩排序问题

上传人:jin****ng 文档编号:228564664 上传时间:2023-08-21 格式:DOCX 页数:5 大小:54.20KB
收藏 版权申诉 举报 下载
成绩排序问题_第1页
第1页 / 共5页
成绩排序问题_第2页
第2页 / 共5页
成绩排序问题_第3页
第3页 / 共5页
资源描述:

《成绩排序问题》由会员分享,可在线阅读,更多相关《成绩排序问题(5页珍藏版)》请在装配图网上搜索。

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

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

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

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

5、第vvivv个学生语文,数学,英语成绩:vvendl; cina.stui.fenO;cina.stui.fenl;cina.stui.fen2;学生信息初始化完成后,在根据输入提示选择相应操作:while(l)coutvv1.总分排序vvendl;coutvv2.语文排序vvendl;coutvv3数学排序vvendl;coutvv4.英语排序vvendl;coutvv0.退出 nvvendl;coutvv请选择:vvendl;cinchoice;switch(choice)case 1: case 2: case 3:case 4: case 0:return 0;default:cout

6、vv输入错误,请重新输入(0-4) vvendl;break;(2) 创建学生信息并进行相应排序,本实验中采用快速排序,其代码如下: int Partition(SqList &L,int low,int high,int i)枢轴函数int pivotkey; /枢轴关键字pivotkey=L.stulow.feni;L.stuO=L.stulow;while(lowvhigh)while(lowvhigh&L.stuhigh.feni=pivotkey)-high;L.stulow=L.stuhigh;while(lowvhigh&L.stulow.feniv=pivotkey)+low;

7、L.stuhigh=L.stulow;L.stulow=L.stu0;return low;void QSort(SqList & L,int low,int high,int i)快速排序函数int pivotloc;if(lowvhigh)子序列长度大于1pivotloc=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); 排序 displ

8、ay2(x);调用输出函数 break;case 2:QuickSort(x,0); place(x,1,0); / 排序 display3(x); /调用输出函数 break;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所示。青输入学生人

9、数:图1.2启动界面(2) 按要求输入学生数,学生信息和成绩,如图1.3所示。请输入第1个学生的学号和31LJU请输入第1个寻生语文,数寻,英语成渍:S9 76请输入第2个学生的学号和 垮02yans请输入第龙个学生语文,数学,英语成奏8? 96 90请输人弟3个学生的学号和姓::UJ苕输入第m个学生语文,数学,英语成绩:90 98 97-图1.3数据输入界面(3) 数据结果输出。根据实验要求输出实验结果。如图1.4所示。请选拦:4学号娃名语文数学英语总分总分名初0311909897285102879693273201-IJ.L ,11.WU76897&2413请远择: 律号姓名 倍又数学英诘息分单科名就忌分名挨93li9098972851192yang8796902732291uu76897624133_、_ .J1_1图1.4数据结果输出界面六、实验收获与思考通过本次实验,熟练掌握了对排序的理解,在本实验中,利用快速排序进行 排序,更加加深了对快速排序的实现过程的理解。教师评分:教师签字:

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!