(一) 学生成绩排名
程序要求:先采用冒泡法,将学生成绩 从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。
参考步骤:
1. 定义一个数组a[11],用以存放学生的成绩。
2. 从键盘输入10个学生成绩
3. 采用冒泡法,将学生成绩按照从高到低进行排序
4. 再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组
5. 将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。
6. 将以上每一步骤的结果均打印输出,验证程序是否正确实现题目要求
(二) 根据条件进行学生成绩排名
程序要求:在函数中进行 10个学生成绩从高到低排名,再改进函数, 进行 n个学生成绩从高到低排名, 排名方式根据函数的style参数进行,如style为'a'按升序排,style为'd'按降序排。( a:ascending 升,d:descending 降)
参考步骤:
1. 在函数中进行10个学生成绩从高到低排名 sort(int a[10])
2. 改进第一步的函数为sort(int a[],int n),进行n个学生成绩从高到低排名,
3. 改进第二步的函数为sort(int a[],int n, char style), 将n个学生成绩从高到低排名,排名方式根据sort()函数的style参数进行,如style为‘a’按升序排,style为’d’按降序排。(a:ascending 升,d:descending 降)
(三) 用指针优化学生成绩排名
程序要求:(1)用指针实现数组的输入输出以及数组的排序(在函数中进行)
(2)采用指针方法,输入字符串“ student score ”,不使用 strcpy() 函数,自行编制函数实现复制该字符串并在第四步输出排序后的成绩单后下一行输出该字符串
(3)相关实训题目:不使用C++语言库函数自行编制函数实现字符串的复制、连接、转换为大写、小写、字符串比较功能。
参考步骤:
1. 定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现
2. 将数组stu[10]的内容输出到屏幕上,要求用指针实现
3. 将成绩数组按照从高到低进行排序,要求用指针实现
4. 将第三步内容放在函数中实现,在主函数中调用实现排序,用指针实现,输出排序后的成绩单
5. 5. 采用指针方法,输入字符串“student score ”,复制该字符串并输出(复制字符串采用库函数或用户自定义函数)
(四) 学生成绩单制作
程序要求:定义一个结构体数组,存放 10个学生的学号、姓名、三门课的成绩,输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩,输出三门课程的平均分数最高的学生的学号、姓名及其平均分,再将 10个学生按照平均分数从高到低进行排序,输出结果。
参考步骤:
1. 定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩
2. 从键盘输入10个学生的以上内容
3. 输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩
4. 输出三门课程的平均分数最高的学生的学号、姓名及其平均分
5. 将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:
number name math Chinese English average
103 tom 90 90 100 95
101 alice 90 80 70 80