要求用c语言实现对学生的英语成绩进行管理,包括学生成绩的信息输入、输出、统计、查询、添加、排序等功能。。 2. 假设,现收集到了 10名学生的英语成绩,要求用 C 语言编写一个简单的成绩管理系统,用模块化的方法实现学生成绩的输入、输出、统计、查询、添加、排序等功能
时间: 2024-01-03 11:04:57 浏览: 18
好的,您的问题是如何用C语言实现学生成绩管理系统,包括输入、输出、统计、查询、添加和排序等功能。
首先,我们可以使用结构体来表示学生和他们的成绩信息,例如:
```
typedef struct {
char name[20];
int id;
float score;
} Student;
```
接下来,我们可以使用数组来存储学生信息,例如:
```
Student students[10];
```
然后,我们可以编写函数来实现各个功能,例如:
- 输入学生信息:
```
void input(Student* student) {
printf("请输入学生姓名:");
scanf("%s", student->name);
printf("请输入学生学号:");
scanf("%d", &student->id);
printf("请输入学生成绩:");
scanf("%f", &student->score);
}
```
- 输出学生信息:
```
void output(Student* student) {
printf("姓名:%s,学号:%d,成绩:%.2f\n", student->name, student->id, student->score);
}
```
- 统计学生总分和平均分:
```
void statistics(Student* students, int n, float* total, float* average) {
*total = 0;
for (int i = 0; i < n; i++) {
*total += students[i].score;
}
*average = *total / n;
}
```
- 查询学生信息:
```
void query(Student* students, int n, int id) {
for (int i = 0; i < n; i++) {
if (students[i].id == id) {
output(&students[i]);
return;
}
}
printf("没有找到学号为%d的学生\n", id);
}
```
- 添加学生信息:
```
void add(Student* students, int* n) {
if (*n >= 10) {
printf("学生数量已达到上限\n");
return;
}
input(&students[*n]);
(*n)++;
}
```
- 按成绩排序:
```
int compare(const void* a, const void* b) {
Student* s1 = (Student*)a;
Student* s2 = (Student*)b;
return s1->score < s2->score ? 1 : -1;
}
void sort(Student* students, int n) {
qsort(students, n, sizeof(Student), compare);
}
```
最后,我们可以编写一个主函数来调用这些函数:
```
int main() {
Student students[10];
int n = 0;
float total, average;
add(students, &n);
add(students, &n);
add(students, &n);
sort(students, n);
for (int i = 0; i < n; i++) {
output(&students[i]);
}
statistics(students, n, &total, &average);
printf("总分:%.2f,平均分:%.2f\n", total, average);
query(students, n, 2);
return 0;
}
```
这样,我们就实现了一个简单的学生成绩管理系统。
阅读全文