数据结构实验报告及心得体会1Word文档下载推荐.docx
《数据结构实验报告及心得体会1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告及心得体会1Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
将奇偶排序算法升序改为降序。
2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;
。
(45分))
3.编译、链接以上算法,按要求写出实验报告(25)。
4.修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。
5.用A4纸打印输出实验报告。
三、实验报告说明
实验数据可自定义,每种排序算法数据要求均不重复。
(1)实验题目:
《N门课程学生成绩名次排序算法实现》;
(2)实验目的:
掌握各种排序算法的基本思想、实验方法和验证算法的准确性;
(3)实验要求:
对算法进行上机编译、链接、运行;
(4)实验环境(WindowsXP-sp3,Visualc++);
(5)实验算法(给出四种排序算法修改后的全部清单);
(6)实验结果(四种排序算法模拟运行后的实验结果);
(7)实验体会(文字说明本实验成功或不足之处)。
三、实验源程序(算法)
Score.c
#include"
stdio.h"
string.h"
#defineM6
#defineN3
structstudent
{charname[10];
intnumber;
intscore[N+1];
/*score[N]为总分,score[0]-score[2]为学科成绩*/}stu[M];
voidchangesort(structstudenta[],intn,intj)
{intflag=1,i;
structstudenttemp;
while(flag)
{flag=0;
for(i=1;
ia[i+1].score[j])
{temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
flag=1;
}
for(i=0;
iif(a[i].score[j]>
a[i+1].score[j])
}
voidprint_score(structstudenta[],intn,intj)
{inti,k;
printf(“奇偶交换成绩%d排序表"
j+1);
printf("
\n"
);
名次学号姓名分数\n"
k=1;
k{if(i>
0&
&
a[i].score[j]!
=a[i-1].score[j])
k++;
printf("
%4d"
k);
%4d"
a[i].number);
%s"
a[i].name);
%6d"
a[i].score[j]);
main()
{inti,j,k;
for(i=0;
i{printf("
请输入第%d名学生分数:
"
i+1);
printf("
姓名:
scanf("
%s"
stu[i].name);
编号:
scanf("
&
stu[i].number);
数据结构:
stu[i].score[0]);
离散数学:
scanf("
stu[i].score[1]);
大学英语:
stu[i].score[2]);
i{stu[i].score[N]=0;
for(j=0;
jstu[i].score[N]+=stu[i].score[j];
changesort(stu,M,N);
/*对总分进行排序*/
学生总分成绩排序表\n"
名次学号姓名数据结构离散数学大学英语总分\n"
k=1;
i{if(i>
stu[i].score[N]!
=stu[i-1].score[N])
%4d"
stu[i].number);
jprintf("
stu[i].score[j]);
changesort(stu,M,0);
/*对数据结构成绩进行排序*/
print_score(stu,M,0);
/*输出数据结构前3名同学成绩*/
changesort(stu,M,1);
/*对离散数学成绩进行排序*/
print_score(stu,M,1);
/*输出离散数学前3名同学成绩*/
changesort(stu,M,2);
/*对大学英语成绩进行排序*/
print_score(stu,M,2);
/*输出大学英语前3名同学成绩*/
源代码结果:
请输入第1名学生分数:
姓名:
史孟晨
01
87
90
78
请输入第2名学生分数:
袁欣
02
80
92
请输入第3名学生分数:
赵宇
03
88
76
95
请输入第4名学生分数:
滕芷
04
79
84
请输入第5名学生分数:
张一析
05
68
91
请输入第6名学生分数:
白晓彤
06
学生总分成绩排序表
名次学号姓名数据结构离散数学大学英语总分
15张一析786891237
22袁欣788092250
34滕芷798488251
46白晓彤887690254
51史孟晨879078255
63赵宇887695259奇偶交换成绩1排序表
名次学号姓名分数
15张一析78
12袁欣78
24滕芷79
31史孟晨87
奇偶交换成绩2排序表
15张一析68
26白晓彤76
23赵宇76
32袁欣80
奇偶交换成绩3排序表
11史孟晨78
24滕芷88
36白晓彤90
Pressanykeytocontinue
#include"
voidchangesort(structstudenta[],intn,intj);
voidprint_score(structstudenta[],intn,intj);
{
charname[10];
/*score[N]为总分,score[0]-score[2]为学科成绩*/
}stu[M];
inti,j,k;
i{
请输入第%d名学生分数:
stu[i].score[N]=0;
changesort(stu,M,N);
/*对总分进行排序*/
k=0;
if(i>
stu[i-1].number);
stu[i-1].name);
j{
stu[i-1].score[j]);
/*输出数据结构前3名同学成绩*/
/*输出离散数学前3名同学成绩*/
/*输出大学英语前3名同学成绩*/
intflag=1,i;
flag=0;
iif(a[i].score[j]{
temp=a[i];
a[i+1]=temp;
inti,k;
奇偶交换成绩%d排序表"
for