数据结构实验报告及心得体会Word文件下载.docx
- 文档编号:18793309
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:30
- 大小:24.33KB
数据结构实验报告及心得体会Word文件下载.docx
《数据结构实验报告及心得体会Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告及心得体会Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
(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;
i<
n-1;
i+=2)/*对所有奇数项进行一遍比较*/
if(a[i].score[j]>
a[i+1].score[j])
{temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
flag=1;
}
for(i=0;
i+=2)/*对所有偶数项进行一遍比较*/
{temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
flag=1;
}
voidprint_score(structstudenta[],intn,intj)
{inti,k;
printf(“奇偶交换成绩%d排序表"
j+1);
printf("
\n"
);
名次学号姓名分数\n"
k=1;
for(i=0;
k<
N&
&
n;
i++)
{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;
M;
i++)/*输入每个学生信息*/
{printf("
请输入第%d名学生分数:
"
i+1);
printf("
姓名:
scanf("
%s"
stu[i].name);
编号:
scanf("
&
stu[i].number);
printf("
数据结构:
scanf("
stu[i].score[0]);
离散数学:
stu[i].score[1]);
大学英语:
stu[i].score[2]);
}
for(i=0;
i++)/*计算每个学生总分*/
{stu[i].score[N]=0;
for(j=0;
j<
N;
j++)
stu[i].score[N]+=stu[i].score[j];
changesort(stu,M,N);
/*对总分进行排序*/
学生总分成绩排序表\n"
printf("
名次学号姓名数据结构离散数学大学英语总分\n"
k=1;
stu[i].score[N]!
=stu[i-1].score[N])
k++;
%4d"
stu[i].number);
N+1;
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
Change.c
voidchangesort(structstudenta[],intn,intj);
voidprint_score(structstudenta[],intn,intj);
{
charname[10];
intnumber;
intscore[N+1];
/*score[N]为总分,score[0]-score[2]为学科成绩*/
inti,j,k;
for(i=0;
i++)/*输入每个学生信息*/
{
i++)/*计算每个学生总分*/
stu[i].score[N]=0;
for(j=0;
stu[i].score[N]+=stu[i].score[j];
changesort(stu,M,N);
/*对总分进行排序*/
k=0;
for(i=0;
M+1;
{
if(i>
{
k++;
printf("
stu[i-1].number);
stu[i-1].name);
for(j=0;
{
stu[i-1].score[j]);
}
}
}
{
intflag=1,i;
flag=0;
i+=2)/*对所有奇数项进行一遍比较*/
if(a[i].score[j]<
a[i+1].score[j])
temp=a[i];
if(a[i].score[j]<
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
flag=1;
}
inti,k;
奇偶交换成绩%d排序表"
升序改降序:
学生总分成绩排序表
13赵宇887695259
21史孟晨879078255
36白晓彤887690254
44滕芷798488251
52袁欣788092250
65张一析786891237
13赵宇88
16白晓彤88
21史孟晨87
34滕芷79
11史孟晨90
24滕芷84
13赵宇95
22袁欣92
35张一析91
Seletsort.c
intflag=1,i,m,k;
for(i=0;
i++)/*选择排序法*/
k=i;
for(m=i+1;
m<
m++)
if(a[m].score[j]>
a[k].score[j])
k=m;
temp=a[i];
a[i]=a[k];
a[k]=temp;
flag=1;
}
选择交换成绩%d排序表"
简单选择:
选择交换成绩1排序表
选择交换成绩2排序表
选择交换成绩3排序表
Bubblesort.c
#inclu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 报告 心得体会