(1)学生成绩处理
应用以下不同的方法,对学生的成绩进行处理。根据不同的方法的难度和采用方法的种类评定成绩。选方法1、2、3,至少要完成两种算法的程序编写。方法4、5实现其中一个就可以了。
方法1:数组 排序
1. 定义一个数组a[11],用
(1)学生成绩处理
应用以下不同的方法,对学生的成绩进行处理。根据不同的方法的难度和采用方法的种类评定成绩。选方法1、2、3,至少要完成两种算法的程序编写。方法4、5实现其中一个就可以了。
方法1:数组 排序
1. 定义一个数组a[11],用以存放学生的成绩。
2. 从键盘输入10个学生成绩
3. 采用冒泡法,将学生成绩按照从高到低进行排序,显示排序后的结果。
4. 再输入一个学生的成绩,将此成绩按照排序规律插入原学生成绩数组,显示插入后的结果。
5. 将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列。显示反序后的结果。
建议:每完成一步程序,运行正确后再做下一步。
方法2:函数 排序
1. 在函数中进行10个学生成绩从高到低排名 sort1(int a[]),显示结果。
2. 改进第一步的函数为sort2(int a[], int n),将数组中前n个学生成绩从进行高到低的排名,显示结果。
3. 改进第二步的函数为sort3(int a[], int n, char style),将n个学生成绩排序,排序方式根据函数的style参数进行,当style为 'a' 时按升序排序,style为 'd' 按降序排序。分别显示升序与降序结果。
4. 编写函数,insert(int a[], int x),将一个学生成绩x按照排序规律插入原学生成绩数组,显示插入后的结果。
建议:为方便第4步插入一个成绩,定义数组时应该有11个元素。在主函数main()中,调用各函数。
方法3:指针 排序 函数
1. 定义一个数组stu[10]存放10个学生的成绩,从键盘输入数据,要求用指针实现。
2. 将数组stu[10]的内容输出到屏幕上,要求用指针实现。
3. 将成绩数组按照从高到低进行排序,要求用指针实现。
4. 将第三步内容放在函数中实现,在主函数main()中调用实现排序,用指针实现,输出排序后的成绩单。
建议:为方便调试程序,建议成绩先定义在数组。实现排序功能后,再改成从键盘输入成绩。
方法4:结构数组 排序
1. 定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩。
2. 从键盘输入10个学生的以上内容。
3. 输出各门课程成绩最高的学生的学号、姓名、以及该门课程的成绩
4. 输出三门课程的平均分数最高的学生的学号、姓名及其平均分
5. 将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:
Number name math Chinese English average
103 zhang 90 90 100 95
101 li 90 80 70 80
建议:为方便调试程序,建议各功能分别设计成函数来实现。成绩数据先定义在数组中,实现排序功能后,再改成从键盘输入成绩。或者设计两个函数,分别用于定义数组数据和从键盘输入数组数据。
方法5:文件 结构 排序
1. 定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩
2. 从键盘输入10个学生的学号,姓名及三门课的成绩,存入文件stud.dat。关闭文件。
3. 打开stud.dat文件,将数据读出,查看是否正确写入,关闭文件。
4. 打开文件stud.dat文件,读出数据,将10个学生按照平均分数从高到低进行排序,分别将结果输出到屏幕上和另一文件studsort.dat中。
5. 从studsort.dat 文件中读取第2,4,6,8,10个学生的数据。
建议:为方便调试程序,建议各功能分别设计成函数来实现。先将成绩数据定义在数组当中,实现排序及保存文件功能后,再改写程序从键盘输入成绩等数据。或者设计两个函数,分别用于定义数组数据和从键盘输入数组数据,然后在主函数main()当中调用操作。
展开
全部