1、 (1)对某门科目的成绩进行排序并显示输出; (2)求出每门科目的最高分、最低分和平均分的信息;学生成绩的数据用结构数组表示,包括:学号、姓名、三门科目的考试成绩,其结构格式如下:学号姓名无机化学大学英语高等数学int numchar name10int score3 二、设计方法1冒泡排序(BubbleSort)(1) 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。(2) 排序过程: 设想被排序的数组R1.N垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则。从下往上扫描数组R。凡扫描到违反本原则的轻气泡
2、。就使其向上漂浮。,如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。冒泡排序的程序代码:void BubbleSort(int a , int n) int temp; for (int i =0; i n; i+) for (int j = 0; j aj+1) temp = aj; aj =aj+1; aj+1= temp; 2程序流程图(1) 排序算法- 冒泡的排序定义学生人数SN、考试科目数CN定义学生数据记录的结构体student定义实现排序算法的函数bubble()定义输出学生数据的函数output()定义求最高、最低分函数maxmin()和求平均分函数avescor
3、e ()初始化学生数据记录输入执行排序的科目调用排序算法的函数bubble()调用输出学生函数output()显示排序后的结果调用函数maxmin()输出最高分和最低分调用函数avescore()输出各各科的平均分i从0到nj从0到i-1如果aj aj+1真 交换aj,aj + 1(2) 学生成绩管理程序3程序实现#include iomanip.h#define SN 10 / 学生人数#define CN 3 / 课程数目int course; / 要排序的那门课程struct student int num; char name10; int scoreCN;void bubble(st
4、ruct student *pstu) /冒泡排序(从大到小) struct student tmp; for (int i = 0; SN; i+) / 要排SN个数,则应排SN遍: for(int j = 0; SN - i - 1; j+) if(pstuj+1.scorecourse pstuj.scorecourse) /比较相邻的两个数: tmp = pstuj+1; pstuj+1= pstuj; pstuj= tmp; /对调两个数,需要有第三者参以 void output(struct student *pstu) coutsetw(8)学号;setw(10)姓名无机化学大学
5、英语高等数学endl; for(int i=0;iSN;i+) coutpstui.num; coutpstui.name; for (int j=0;jCN;j+) coutpstui.scorej; coutvoid avgscore(struct student *pstu)int sumCN,n;for(n=0; n n+) sumn=0; for(int j=0; jsumn+=pstuj.scoren;cout各科课程的平均成绩:n coutsetw(5)maxn)maxn=pstuj.scoren; if (pstuj.scorenminn)minn=pstuj.scoren;
6、各科课程的最高分: maxn;各科课程的最低分:minn;void main() struct student stuSN=2004101,花拓也,95,97,93,2004102,梁慕橙,94,99,92, 2004103,梁晓乐,96,89,96,2004104,任光晞,88,86,83,2004105,花痴心,72,73,85,2004106,何以茜,79,81,93,2004107,花泽类,85,86,76, 2004108,道明寺,100,100,100,2004109,西 门,65,63,75,2004110,美 作,62,60,87, ; int n;setw(30)* 学生成绩
7、管理 *endl /输入要排序的第几门课程 course=n-1; struct student *pstu=stu; bubble(pstu); output(pstu); maxmin(pstu); avgscore(pstu);三、验证结果四、总结 本实验的程序有一定的实用性,是对所学过的知识的综合运用。程序的核心是对数据进行排序,必须要对排序算法有深入的领会,由于学生的数据是使用结构体数组表示,因此在调用排序函数时,需要对排序算法的原代码作相应的修改,还要注意函数参数引用的格式。此外在程序调试时,会出现一些编译错误,其中包括语法错误和逻辑错误,必须要对其修改,在编写和调试程序过程中,提高了本人编程技能。五、参考资料与网上资源 (1)C语言程序设计实验指导与习题解答 蒋清明主编 人民邮电出版社 (2)C+程序设计技能百练 蒋立翔编著 中国铁道出版社(3) 唯C世界,(4) C语言编程网,(5) C语言编程宝典,(6) C语言程序基础,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1