数据结构实验报告及心得体会-数据结构实验心得体会_第1页
数据结构实验报告及心得体会-数据结构实验心得体会_第2页
数据结构实验报告及心得体会-数据结构实验心得体会_第3页
数据结构实验报告及心得体会-数据结构实验心得体会_第4页
数据结构实验报告及心得体会-数据结构实验心得体会_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 20112012第一学期数据结构实验报告班级:信管一班学号:姓名:实验报告题目及要求一、实验题目设某班级有M(6)名学生,本学期共开设N(3)门课程,要求实现并修改如下程序(算法)。输入学生的学号、姓名和N门课程的成绩(输入提示和输出显示使用汉字系统),输出实验结果。(15分)计算每个学生本学期N门课程的总分,输出总分和N门课程成绩排在前3名学生的学号、姓名和成绩。按学生总分和N门课程成绩关键字升序排列名次,总分相同者同名次。二、实验要求修改算法。将奇偶排序算法升序改为降序。(15分)用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)3编译、链接以上

2、算法,按要求写出实验报告(25)。修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。用A4纸打印输出实验报告。三、实验报告说明实验数据可自定义,每种排序算法数据要求均不重复。实验题目:N门课程学生成绩名次排序算法实现;实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性实验要求:对算法进行上机编译、链接、运行;实验环境(WindowsXP-sp3,Visualc+);实验算法(给出四种排序算法修改后的全部清单);实验结果(四种排序算法模拟运行后的实验结果);实验体会(文字说明本实验成功或不足之处)。三、实验源程序(算法)Score.c#includestdio.h#in

3、cludestring.h#defineM6#defineN3structstudentcharname10;intnumber;intscoreN+l;/*scoreN为总分,score0-score2为学科成绩*/stuM;voidchangesort(structstudenta,intn,intj)intflag=1,i;structstudenttemp;while(flag)flag=0;for(i=1;iai+1.scorej)temp=ai;ai=ai+1;ai+1=temp;flag=1;for(i=0;iai+1.scorej)temp=ai;ai=ai+1;ai+1=te

4、mp;flag=1;voidprint_score(structstudenta,intn,intj)inti,k;printf(“奇偶交换成绩%d排序表,j+l);printf(n);printf(名次学号姓名分数n);k=1;for(i=0;kN&i0&ai.scorej!=ai-1.scorej)k+;printf(%4d,k);printf(%4d,ai.number);printf(%s,);printf(%6d,ai.scorej);printf(n);main()inti,j,k;for(i=0;iM;i+)/*输入每个学生信息*/printf(请输入第%d名学生分

5、数:,i+l);printf(n);printf(姓名:);scanf(%s,);printf(编号:);scanf(%4d,&stui.number);printf(数据结构:);scanf(%4d,&stui.score0);printf(离散数学:);scanf(%4d,&stui.score1);printf(大学英语:);scanf(%4d,&stui.score2);for(i=0;iM;i+)/*计算每个学生总分*/stui.scoreN=0;for(j=0;jN;j+)stui.scoreN+=stui.scorej;changesort(stu,M,N);/

6、*对总分进行排序*/printf(学生总分成绩排序表n);printf(名次学号姓名数据结构离散数学大学英语总分n)k=1;for(i=0;i0&stui.scoreN!=stui-1.scoreN)k+;printf(%4d,k);printf(%4d,stui.number);printf(%s,);for(j=0;jN+1;j+)printf(%6d,stui.scorej);printf(n);changesort(stu,M,0);/*对数据结构成绩进行排序*/print_score(stu,M,0);/*输出数据结构前3名同学成绩*/changesort(stu,

7、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数据结构:78离散数学:80大学英语:92请输入第3名学生分数:姓名:赵宇编号:03数据结构:88离散数学:76大学英语:95请输入第4名学生分数:姓名:滕芷编号:04数据结构:79离散数学:84大

8、学英语:88请输入第5名学生分数:姓名:张一析编号:05数据结构:78离散数学:68大学英语:91请输入第6名学生分数:姓名:白晓彤编号:06数据结构:88离散数学:76大学英语:90学生总分成绩排序表名次学号姓名数据结构离散数学大学英语总分23715张一析78689122袁欣78809225034滕芷79848825146白晓彤88769025451史孟晨87907825563赵宇887695259奇偶交换成绩1排序表名次学号姓名分数15张一析7812袁欣7824滕芷7931史孟晨87奇偶交换成绩2排序表名次学号姓名分数15张一析6826白晓彤7623赵宇7632袁欣80奇偶交换成绩3排序表

9、名次学号姓名分数11史孟晨7824滕芷8836白晓彤90PressanykeytocontinueChange.c#includestdio.h#includestring.h#defineM6#defineN3voidchangesort(structstudenta,intn,intj);voidprint_score(structstudenta,intn,intj);structstudentcharname10;/*scoreN为intnumber;intscoreN+1;分,score0-score2为学科成绩*/stuM;main()inti,j,k;for(i=0;iM;i+)

10、/*输入每个学生信息*/printf(”请输入第%d名学生分数:”,i+l);printf(n);printf(姓名:);scanf(%s,);printf(编号);scanf(%4d,&stui.number);printf(”数据结构:);scanf(%4d,&stui.score0);printf(”离散数学:);scanf(%4d,&stui.scorel);printf(大学英语:);scanf(%4d,&stui.score2);for(i=0;iM;i+)/*计算每个学生总分*/stui.scoreN=0;for(j=0;jN;j+)stui.scoreN+=s

11、tui.scorej;changesort(stu,M,N);/*对总分进行排序*/printf(”学生总分成绩排序表n);printf(“名次学号姓名数据结构离散数学大学英语总分5);k=0;for(i=0;i0&stui.scoreN!=stui-1.scoreN)k+;printf(%4d,k);printf(%4d,stui-1.number);printf(%s,);for(j=0;jN+1;j+)printf(%6d,stui-1.scorej);printf(n);changesort(stu,M,0);/*对数据结构成绩进行排序*/print_score(

12、stu,M,0);/*输出数据结构前3名同学成绩*/changesort(stu,M,1);/*对离散数学成绩进行排序*/print_score(stu,M,1);/*输出离散数学前3名同学成绩*/changesort(stu,M,2);/*对大学英语成绩进行排序*/print_score(stu,M,2);/*输出大学英语前3名同学成绩*/voidchangesort(structstudenta,intn,intj)intflag=1,i;structstudenttemp;while(flag)flag=0;for(i=1;in-1;i+=2)/*对所有奇数项进行一遍比较*/if(ai.

13、scorejai+1.scorej)temp=ai;ai=ai+1;ai+1=temp;flag=1;遍比较*/for(i=0;in-1;i+=2)/*对所有偶数项进行if(ai.scorejai+l.scorej)temp=ai;ai=ai+l;ai+l=temp;flag=l;voidprint_score(structstudenta,intn,intj)inti,k;printf(”奇偶交换成绩%d排序表”,j+1);printf(n);printf(”名次学号姓名分数n)k=1;for(i=0;kN&i0&ai.scorej!=ai-1.scorej)k+;printf(%4d,k)

14、;printf(%4d,ai.number);printf(%s,);printf(%6d,ai.scorej);printf(n);升序改降序:请输入第1名学生分数:姓名:史孟晨编号:01数据结构:87离散数学:90大学英语:78请输入第2名学生分数:姓名:袁欣编号:02数据结构:78离散数学:80大学英语:92请输入第3名学生分数:姓名:赵宇编号:03数据结构:88离散数学:76大学英语:95请输入第4名学生分数:姓名:滕芷编号:04数据结构:79离散数学:84大学英语:88请输入第5名学生分数:姓名:张一析编号:05数据结构:78离散数学:68大学英语:91请输入第6名学生

15、分数:姓名:白晓彤编号:06数据结构:88离散数学:76大学英语:90学生总分成绩排序表名次学号姓名数据结构离散数学大学英语总分13赵宇88769525921史孟晨87907825536白晓彤88769025444滕芷79848825152袁欣78809225065张一析786891237奇偶交换成绩1排序表名次学号姓名分数13赵宇8816白晓彤8821史孟晨8734滕芷79奇偶交换成绩2排序表名次学号姓名分数11史孟晨9024滕芷8432袁欣80奇偶交换成绩3排序表名次学号姓名分数13赵宇9522袁欣9235张一析91Pressanykeytocontinue l3Seletsort.c#i

16、ncludestdio.h#includestring.h#defineM6#defineN3voidchangesort(structstudenta,intn,intj);voidprint_score(structstudenta,intn,intj);structstudentcharname10;/*scoreN为intnumber;intscoreN+1;分,score0-score2为学科成绩*/stuM;main()inti,j,k;for(i=0;iM;i+)/*输入每个学生信息*/printf(”请输入第%d名学生分数:”,i+l);printf(n);printf(姓名:

17、);scanf(%s,);printf(编号);scanf(%4d,&stui.number);printf(”数据结构:);scanf(%4d,&stui.score0);printf(”离散数学:);scanf(%4d,&stui.scorel);printf(大学英语:);scanf(%4d,&stui.score2);for(i=0;iM;i+)/*计算每个学生总分*/stui.scoreN=0;for(j=0;jN;j+)stui.scoreN+=stui.scorej;changesort(stu,M,N);/*对总分进行排序*/printf(”学生总分成绩排序表

18、n);printf(“名次学号姓名数据结构离散数学大学英语总分5);k=0;for(i=0;i0&stui.scoreN!=stui-1.scoreN)k+;printf(%4d,k);printf(%4d,stui-1.number);printf(%s,);for(j=0;jak.scorej)k=m:temp=ai;ail=akl:ak=temp;flag=l;voidprint_score(structstudenta,intn,intj)inti,k;printf(”选择交换成绩%d排序表”,j+1);printf(n);printf(”名次学号姓名分数n);k

19、=1;for(i=0;kN&i0&ai.scorej!=ai-1.scorej)k+;printf(%4d,k);printf(%4d,ai.number);printf(%s,);printf(%6d,ai.scorej);printf(n);简单选择:请输入第1名学生分数:姓名:史孟晨编号:01数据结构:87离散数学:90大学英语:78请输入第2名学生分数:姓名:袁欣编号:02数据结构:78离散数学:80大学英语:92请输入第3名学生分数:姓名:赵宇编号:03数据结构:88离散数学:76大学英语:95请输入第4名学生分数:姓名:滕芷编号:04数据结构:79离散数学:84大学英

20、语:88请输入第5名学生分数:姓名:张一析编号:05数据结构:78离散数学:68大学英语:91请输入第6名学生分数:姓名:白晓彤编号:06数据结构:88离散数学:76大学英语:90学生总分成绩排序表名次学号姓名数据结构离散数学大学英语总分13赵宇88769525921史孟晨87907825536白晓彤88769025444滕芷79848825152袁欣78809225065张一析786891237选择交换成绩1排序表名次学号姓名分数13赵宇8816白晓彤8821史孟晨8734滕芷79选择交换成绩2排序表名次学号姓名分数11史孟晨9024滕芷8432袁欣80选择交换成绩3排序表名次学号姓名分数1

21、3赵宇9522袁欣9235张一析91Pressanykeytocontinuel Bubblesort.c#includestdio.h#includestring.h#defineM6#defineN3voidchangesort(structstudenta,intn,intj);voidprint_score(structstudenta,intn,intj);structstudentcharname10;/*scoreN为intnumber;intscoreN+1;分,score0-score2为学科成绩*/stuM;main()inti,j,k;for(i=0;iM;i+)/*输入

22、每个学生信息*/printf(”请输入第%d名学生分数:”,i+l);printf(n);printf(姓名:);scanf(%s,);printf(编号);scanf(%4d,&stui.number);printf(”数据结构:);scanf(%4d,&stui.score0);printf(”离散数学:);scanf(%4d,&stui.scorel);printf(大学英语:);scanf(%4d,&stui.score2);for(i=0;iM;i+)/*计算每个学生总分*/stui.scoreN=0;for(j=0;jN;j+)stui.scoreN+=stui.

23、scorej;l changesort(stu,M,N);/*对总分进行排序*/printf(”学生总分成绩排序表n);printf(“名次学号姓名数据结构离散数学大学英语总分5);k=0;for(i=0;i0&stui.scoreN!=stui-1.scoreN)k+;printf(%4d,k);printf(%4d,stui-1.number);printf(%s,);for(j=0;jN+1;j+)printf(%6d,stui-1.scorej);printf(n);changesort(stu,M,0);/*对数据结构成绩进行排序*/print_score(st

24、u,M,0);/*输出数据结构前3名同学成绩*/changesort(stu,M,1);/*对离散数学成绩进行排序*/print_score(stu,M,1);/*输出离散数学前3名同学成绩*/changesort(stu,M,2);/*对大学英语成绩进行排序*/print_score(stu,M,2);/*输出大学英语前3名同学成绩*/voidchangesort(structstudenta,intn,intj)intflag=1,i;structstudenttemp;while(flag)flag=0;for(i=0;ivn;i+)/*冒泡排序法*/if(ai.scorejvai+l.

25、scorej)temp=ail; ail=ai+ll:ai+l=temp:flag=1:voidprint_score(structstudenta,intn,intj)inti,k:printf(”冒泡交换成绩%d排序表,j+1);printf(n):printf(”名次学号姓名分数n);k=1;for(i=0;kN&i0&ai.scorej!=ai-1.scorej)k+;printf(%4d,k);printf(%4d,ai.number);printf(%s,);printf(%6d,ai.scorej);printf(n);运行结果:请输入第1名学生分数:姓名:史孟晨编

26、号:01数据结构:87离散数学:90大学英语:78请输入第2名学生分数:姓名:袁欣编号:02数据结构:78离散数学:80大学英语:92请输入第3名学生分数:姓名:赵宇编号:03数据结构:88离散数学:76大学英语:95请输入第4名学生分数:姓名:滕芷编号:04数据结构:79离散数学:84大学英语:88请输入第5名学生分数:姓名:张一析编号:05数据结构:78离散数学:68大学英语:91请输入第6名学生分数:姓名:白晓彤编号:06数据结构:88离散数学:76大学英语:90学生总分成绩排序表名次学号姓名数据结构离散数学大学英语总分13赵宇88769525921史孟晨87907825536白晓彤88

27、769025444滕芷79848825152袁欣78809225065张一析786891237冒泡交换成绩1排序表名次学号姓名分数13赵宇8816白晓彤8821史孟晨8734滕芷79冒泡交换成绩2排序表名次学号姓名分数11史孟晨9024滕芷8432袁欣80冒泡交换成绩3排序十表名次学号姓名分数TOC o 1-5 h z13赵宇9522袁欣9235张一析91PressanykeytocontinueJusertsort.c#includestdio.h#includestring.h#defineM6#defineN3voidchangesort(structstudenta,intn,intj

28、);voidprint_score(structstudenta,intn,intj);structstudentcharname10;/*scoreN为intnumber;intscoreN+1;分,score0-score2为学科成绩*/stuM;main()inti,j,k;for(i=0;iM;i+)/*输入每个学生信息*/printf(”请输入第%d名学生分数:”,i+l);printf(n);printf(姓名:);scanf(%s,);printf(编号);scanf(%4d,&stui.number);printf(”数据结构:);scanf(%4d,&stu

29、i.score0);printf(”离散数学:);scanf(%4d,&stui.scorel);printf(大学英语:);scanf(%4d,&stui.score2);for(i=0;iM;i+)/*计算每个学生总分*/stui.scoreN=0;for(j=0;jN;j+)stui.scoreN+=stui.scorej;changesort(stu,M,N);/*对总分进行排序*/printf(”学生总分成绩排序表n);printf(“名次学号姓名数据结构离散数学大学英语总分5);k=0;for(i=0;i0&stui.scoreN!=stui-1.scoreN)k+;printf(

30、%4d,k);printf(%4d,stui-1.number);printf(%s,);for(j=0;j0&temp.scorejam-l.scorej:m-)am=am-1:am=temp:voidprint_score(structstudenta,intn,intj)inti,k:printf(”插入交换成绩%d排序表”,j+1);printf(n):printf(”名次学号姓名分数n);k=1:for(i=0:kN&i0&ai.scorej!=ai-1.scorej)k+:printf(%4d,k):printf(%4d,ai.number):printf(%

31、s,):printf(%6d,ai.scorej):printf(n):请输入第1名学生分数:姓名:史孟晨编号:01数据结构:87离散数学:90大学英语:78请输入第2名学生分数:姓名:袁欣编号:02数据结构:78离散数学:80大学英语:92请输入第3名学生分数:姓名:赵宇编号:03数据结构:88离散数学:76大学英语:95请输入第4名学生分数:姓名:滕芷编号:04数据结构:79离散数学:84大学英语:88请输入第5名学生分数:姓名:张一析编号:05数据结构:78离散数学:68大学英语:91请输入第6名学生分数:姓名:白晓彤编号:06数据结构:88离散数学:76大学英语:90学生总分成绩排序表名次学号姓名数据结构离散数学大学英语总分13赵宇88769525921史孟晨87907825536白晓彤88769025444滕芷79848825152袁欣78809225065张一析786891237插入

温馨提示

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

评论

0/150

提交评论