在这个问题中,我们将使用C语言实现一个简单的学生成绩管理系统,这个系统将包含以下功能:
1、添加学生信息(包括姓名和成绩)。
2、删除学生信息。
3、修改学生信息。
4、查询学生信息。
5、显示所有学生信息。
6、计算平均成绩。
我们需要定义一个结构体来存储学生的信息,我们将创建一个数组来存储所有的学生信息,我们还需要创建一些函数来实现上述的功能。
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char name[50];
int score;
} Student;
Student students[MAX_STUDENTS];
int num_students = 0;
接下来,我们将实现一个函数来添加学生信息。这个函数将接受一个名字和一个分数作为参数,然后将这些信息添加到数组中。如果数组已满,我们将返回一个错误消息。 ```c void add_student(char *name, int score) { if (num_students >= MAX_STUDENTS) { printf("Error: No more space to add students. "); return; } strcpy(students[num_students].name, name); students[num_students].score = score; num_students++; }
我们还将实现其他的功能,如删除学生信息、修改学生信息、查询学生信息、显示所有学生信息和计算平均成绩,由于这些功能的实现方式相似,我们将只提供一个函数的示例,并解释如何使用它来实现其他的功能。
void delete_student(char *name) {
for (int i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
for (int j = i; j < num_students - 1; j++) {
students[j] = students[j + 1];
}
num_students--;
return;
}
}
printf("Error: Student not found.
");
}
这个delete_student
函数通过遍历数组来找到匹配的学生。一旦找到,它就将这个学生后面的所有学生向前移动一位,然后减少学生的数量。如果没有找到匹配的学生,它将打印一个错误消息。这个函数可以很容易地用于实现其他的函数,例如修改学生信息和查询学生信息。
最后,我们将实现一个函数来显示所有学生的信息。这个函数将遍历数组,并为每个学生打印一条消息。我们还将实现一个函数来计算所有学生的平均分数。这个函数将遍历数组,并将每个学生的分数加起来,然后除以学生的数量。
```c
void display_students() {
for (int i = 0; i < num_students; i++) {
printf("%s: %d
", students[i].name, students[i].score);
}
}
double calculate_average() {
int total = 0;
for (int i = 0; i < num_students; i++) {
total += students[i].score;
}
return static_cast<double>(total) / num_students;
}
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/95602.html