成绩排序问题Word格式.docx
《成绩排序问题Word格式.docx》由会员分享,可在线阅读,更多相关《成绩排序问题Word格式.docx(8页珍藏版)》请在冰点文库上搜索。
-输出指定班的学生考试成绩信息。
✧统计学生考试成绩
-按总成绩统计出90分以上、80~89分、70~79分、60~69分、60分以下各分数段的人数,并按总分从高到低分段输出。
-根据指定的某们课程的成绩,统计出上述各分数段的人数,并按分数从高到低分段输出。
-统计并输出指定班级中总成绩或某一门课成绩的各分数段人数和每个人具体的信息。
✧查找学生成绩
-查找总分或某一门课程成绩的指定分数段的人数及学生的详细信息。
-查找指定班级中总分或某一门课程成绩属于某分数段的学生详细信息。
-查找指定学生(例如给定学号)的具体信息,包括:
姓名、班级、各科分数、总分数等。
二、数据结构设计
根据实验要求,对学生成绩的存储的数据结构如下:
typedefstruct
{
charnumber[15];
//学号
charname[100];
//姓名
intfen[4];
//成绩(分别为语文成绩、数学成绩、英语成绩、总分)
intn[2];
//名次(n[0]为总分名次n[1]为单科名次)
}node;
nodestu[maxsize+1];
//存放学生信息
intnum;
//存放学生人数
}SqList;
三、算法设计
根据问题要求,首先创建学生信息,输入各科成绩,计算总分,之后利用快速排序实现对学生单科及总分的排序,最后输出。
设计流程图如图1.1所示。
图1.1设计流程图
(1)数据输入
根据输入提示,对学生基本信息做相应的输入,其代码如下:
cout<
<
"
请输入学生人数:
endl;
cin>
>
a.num;
for(i=1;
i<
=a.num;
i++)//输入每个学生的三门成绩
{
cout<
请输入第"
个学生的学号和姓名:
cin>
a.stu[i].number;
a.stu[i].name;
个学生语文,数学,英语成绩:
a.stu[i].fen[0];
a.stu[i].fen[1];
a.stu[i].fen[2];
}
}
学生信息初始化完成后,在根据输入提示选择相应操作:
while
(1)
1.总分排序"
2.语文排序"
3.数学排序"
4.英语排序"
0.退出\n"
请选择:
choice;
switch(choice)
{
case1:
……………………
case2:
case3:
……………………
case4:
……………………
case0:
return0;
default:
cout<
输入错误,请重新输入(0--4)"
break;
}
(2)创建学生信息并进行相应排序,本实验中采用快速排序,其代码如下:
intPartition(SqList&
L,intlow,inthigh,inti)//枢轴函数
{
intpivotkey;
//枢轴关键字
pivotkey=L.stu[low].fen[i];
L.stu[0]=L.stu[low];
while(low<
high)
{
high&
&
L.stu[high].fen[i]>
=pivotkey)
--high;
L.stu[low]=L.stu[high];
L.stu[low].fen[i]<
++low;
L.stu[high]=L.stu[low];
L.stu[low]=L.stu[0];
returnlow;
voidQSort(SqList&
L,intlow,inthigh,inti)//快速排序函数
intpivotloc;
if(low<
high)//子序列长度大于1
pivotloc=Partition(L,low,high,i);
QSort(L,low,pivotloc-1,i);
//递归快速排序
QSort(L,pivotloc+1,high,i);
(3)根据所选择的操作进行相应的输出,代码如下:
case1:
QuickSort(x,3);
place(x,0,3);
//排序
display2(x);
//调用输出函数
QuickSort(x,0);
place(x,1,0);
//排序
display3(x);
//调用输出函数
QuickSort(x,1);
place(x,1,1);
case4:
QuickSort(x,2);
place(x,1,2);
case0:
四、界面设计
程序包含输入提示功能和输出提示功能。
五、运行测试与分析
(1)运行程序,显示提示,如图1.2所示。
图1.2启动界面
(2)按要求输入学生数,学生信息和成绩,如图1.3所示。
图1.3数据输入界面
(3)数据结果输出。
根据实验要求输出实验结果。
如图1.4所示。
图1.4数据结果输出界面
六、实验收获与思考
通过本次实验,熟练掌握了对排序的理解,在本实验中,利用快速排序进行排序,更加加深了对快速排序的实现过程的理解。
教师评分:
教师签字:
THANKS!
!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考