资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
20112012第一学期数据结构实验报告班级:信管一班 学号: 姓名:实验报告题目及要求 一、实验题目设某班级有M(6)名学生,本学期共开设N(3)门课程, 要求实现并修改如下程序(算法)。1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统),输出实验结果 。(15分)2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学生的学号、姓名和成绩。3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。 二、实验要求1修改算法。将奇偶排序算法升序改为降序。(15分)2用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分)3编译、链接以上算法,按要求写出实验报告(25)。4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。5用A4纸打印输出实验报告。三、实验报告说明实验数据可自定义,每种排序算法数据要求均不重复。 (1) 实验题目:N门课程学生成绩名次排序算法实现; (2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性; (3) 实验要求:对算法进行上机编译、链接、运行; (4) 实验环境(Windows XP-sp3,Visual c+); (5) 实验算法(给出四种排序算法修改后的全部清单); (6) 实验结果(四种排序算法模拟运行后的实验结果); (7) 实验体会(文字说明本实验成功或不足之处)。三、实验源程序(算法)Score.c#include stdio.h#include string.h#define M 6#define N 3struct student char name10; int number; int scoreN+1; /*scoreN为总分,score0-score2为学科成绩*/ stuM;void changesort(struct student a,int n,int j) int flag=1,i; struct student temp; 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=temp; flag=1; void print_score(struct student a,int n,int j) int i,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,ai.name); printf( %6d,ai.scorej); printf(n); main() int i,j,k; for (i=0;iM;i+) /*输入每个学生信息*/ printf(请输入第 %d 名学生分数: ,i+1);printf(n); printf(姓 名: ); scanf(%s,stui.name); 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); /*对总分进行排序*/ 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,stui.name); for(j=0;jN+1;j+) printf( %6d,stui.scorej); printf(n); 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数据结构: 78离散数学: 80大学英语: 92请输入第 3 名学生分数:姓 名: 赵宇编 号: 03数据结构: 88离散数学: 76大学英语: 95请输入第 4 名学生分数:姓 名: 滕芷编 号: 04数据结构: 79离散数学: 84大学英语: 88请输入第 5 名学生分数:姓 名: 张一析编 号: 05数据结构: 78离散数学: 68大学英语: 91请输入第 6 名学生分数:姓 名: 白晓彤编 号: 06数据结构: 88离散数学: 76大学英语: 90 学生总分成绩排序表 名次 学号 姓 名 数据结构 离散数学 大学英语 总 分 1 5 张一析 78 68 91 237 2 2 袁欣 78 80 92 250 3 4 滕芷 79 84 88 251 4 6 白晓彤 88 76 90 254 5 1 史孟晨 87 90 78 255 6 3 赵宇 88 76 95 259 奇偶交换 成绩 1 排序表 名 次 学 号 姓 名 分 数 1 5 张一析 78 1 2 袁欣 78 2 4 滕芷 79 3 1 史孟晨 87 奇偶交换 成绩 2 排序表 名 次 学 号 姓 名 分 数 1 5 张一析 68 2 6 白晓彤 76 2 3 赵宇 76 3 2 袁欣 80 奇偶交换 成绩 3 排序表 名 次 学 号 姓 名 分 数 1 1 史孟晨 78 2 4 滕芷 88 3 6 白晓彤 90Press any key to continueChange.c#include stdio.h#include string.h#define M 6#define N 3void changesort(struct student a,int n,int j);void print_score(struct student a,int n,int j);struct student char name10; int number; int scoreN+1;/*scoreN为总分,score0-score2为学科成绩*/ stuM;main() int i,j,k; for (i=0;iM;i+
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号