![](https://lstatic.shangxueba.com/jiandati/pc/images/pc_jdt_tittleico.png)
【简答题】有5个学生,每个学生的数据包括学号、姓名、三门课成绩,从键盘输入5个学生的数据,要求计算并输出。 ⑴每个学生三门课的总成绩 ⑵三门课每门课程的平均成绩
![](https://lstatic.shangxueba.com/jiandati/pc/images/jdt_panel_vip.png)
![](https://lstatic.shangxueba.com/jiandati/pc/images/no_answer.png)
学生成绩管理:有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,要求打印出每个学生三门课的平均成绩,以及每门课程平均分、最高分学生数据(包括学号、班级、姓名、三门课成绩,平均分)。 【实验要求】 (1) 定义学生结构体。 (2) 用一个函数实现5个学生数据的输入,用另一个函数负责求每个学生三门课程的平均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最高的学生数据都在主函数种输出。 【实验提示】 (1) 结构体定义 struct Student { int num; //学号 char name[20]; //班级注意字节长度 char classname[20]; //班级 float score[3]; //三门课程成绩 float aver_score; //平均分 } (2) 数据组织提示: 在主函数中定义一个结构体数组。 Student stu[20] //定义有20个变量的元素的结构体数组(根据需要确定数组的大小)。 (3) 结构体数组使用 ①循环输入学生信息: ②平均分计算函数 ,以数组名作参数 void averagescore(student stu[], int number) { int i; for(i = 0; i<= number; i++) { stu[i]="(stu[i].score[0]+" stu[i].score[1]+stu[i].score[2]) 3.0 } ③求平均分最高的学生 int averagescore(student stu[], number) k="0;" 查找最高平均分并记录在数组中的下标值 for(i="0;" ……… return k; 返回最高平均分数组元素的下标>
出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
(2)将第(1)题stud文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件stu_sort中。
(3)将第(2)题已排序的学生成绩文件进行插入处理。插入一个学生的3门课程成绩,按序先计算新插入学生的平均成绩、然后将它按成绩高低顺序插入,插入后建立一个新文件。
(4)将第(3)题结果仍存入原有的stu_sort文件而不另建立新文件。
编写程序
编写程序,一个班级有n个学生,每个学生有学号、姓名和三门课的成绩。要求编程实现以下功能。
①先输入n,再依次输入n个学生的信息。
②按学生平均分从高到低排序。
③将排序结果写到文件C:\STU.TXT文件中,每个学生占一行。
(已知每班学生数少于100个,姓名和学号长度不超过10个字符;要求使用结构体类型。)
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!