C语言,编程实现10个学生的成绩管理系统,学生信息包括:学生学号、姓名和3门课程 的成绩及平均成绩。要求如下中: (1)在主函数中编写一个提示菜单,根据输入菜单的编号调用相应函数 (2)用input函数来输入数据 (3)用aver函数求各学生的平均成绩。 (4)用sort函数实现按学生平均成绩排序。 (5)用pIint函数米输出所有学生的信息
时间: 2024-03-20 12:43:36 浏览: 52
好的,以下是实现10个学生的成绩管理系统的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 10
#define MAX_NAME_LEN 20
typedef struct {
char id[10];
char name[MAX_NAME_LEN];
float grades[3];
float avg;
} Student;
void input(Student *stu);
void aver(Student *stu);
void sort(Student *stu);
void print(Student *stu);
int main() {
int choice;
Student stus[MAX_NUM];
while (1) {
printf("请选择操作:\n");
printf("1. 输入学生信息\n");
printf("2. 计算学生平均成绩\n");
printf("3. 按平均成绩排序\n");
printf("4. 输出学生信息\n");
printf("0. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
for (int i = 0; i < MAX_NUM; i++) {
input(&stus[i]);
}
break;
case 2:
for (int i = 0; i < MAX_NUM; i++) {
aver(&stus[i]);
}
break;
case 3:
sort(stus);
break;
case 4:
print(stus);
break;
case 0:
printf("程序已退出\n");
exit(0);
default:
printf("请输入正确的操作编号!\n");
break;
}
}
}
void input(Student *stu) {
printf("请输入学生学号:");
scanf("%s", stu->id);
printf("请输入学生姓名:");
scanf("%s", stu->name);
printf("请输入学生3门课程的成绩:\n");
for (int i = 0; i < 3; i++) {
scanf("%f", &stu->grades[i]);
}
}
void aver(Student *stu) {
float sum = 0.0;
for (int i = 0; i < 3; i++) {
sum += stu->grades[i];
}
stu->avg = sum / 3;
}
void sort(Student *stus) {
for (int i = 0; i < MAX_NUM - 1; i++) {
for (int j = 0; j < MAX_NUM - 1 - i; j++) {
if (stus[j].avg < stus[j + 1].avg) {
Student temp = stus[j];
stus[j] = stus[j + 1];
stus[j + 1] = temp;
}
}
}
}
void print(Student *stus) {
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n");
for (int i = 0; i < MAX_NUM; i++) {
printf("%-10s%-10s", stus[i].id, stus[i].name);
for (int j = 0; j < 3; j++) {
printf("%-10.1f", stus[i].grades[j]);
}
printf("%-10.1f\n", stus[i].avg);
}
}
```
这个程序中,我们使用了结构体来表示每个学生的信息。在主函数中,我们通过一个 while 循环不断显示菜单,根据用户输入的操作编号来调用相应的函数。其中:
- `input` 函数用于输入每个学生的信息,包括学号、姓名和3门课程的成绩;
- `aver` 函数用于计算每个学生的平均成绩;
- `sort` 函数用于按照学生平均成绩从大到小排序;
- `print` 函数用于输出所有学生的信息,包括学号、姓名、3门课程的成绩和平均成绩。
你可以根据自己的需要进行修改和扩展。