用c语言设计一个学生成绩管理系统,主要用来管理学生基本信息和成绩,涉及知识点:函数,循环,选择,结构体
时间: 2024-10-13 19:04:37 浏览: 27
在C语言中设计一个简单的学生成绩管理系统,我们可以创建一个包含学生信息的结构体,并利用函数、循环和选择结构来实现基本操作。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int id;
float score[3]; // 三门课程的成绩
} Student;
// 函数声明
void display_student(Student s);
void add_student(Student *students, int *size);
void update_score(Student *students, int index, float new_score);
void average_score(Student *students, int size);
int main() {
int num_students = 0;
Student students[100];
while (1) {
printf("请选择操作:\n");
printf("1. 添加学生\n");
printf("2. 查看学生信息\n");
printf("3. 更新成绩\n");
printf("4. 计算平均分\n");
printf("5. 退出系统\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
add_student(&students, &num_students);
break;
case 2:
display_student(students[num_students - 1]);
break;
case 3:
int index;
float new_score;
printf("请输入学生ID和新分数:");
scanf("%d %f", &index, &new_score);
update_score(students, index - 1, new_score);
break;
case 4:
average_score(students, num_students);
break;
case 5:
printf("程序已退出。\n");
return 0;
default:
printf("无效选择,请重试。\n");
}
}
return 0;
}
// 显示学生信息
void display_student(Student s) {
printf("姓名:%s, ID:%d, 成绩:%f %f %f\n", s.name, s.id, s.score[0], s.score[1], s.score[2]);
}
// 添加学生
void add_student(Student *students, int *size) {
Student new_student;
printf("请输入学生信息(name, ID, 三门课成绩):");
scanf("%s %d", new_student.name, &new_student.id);
for (int i = 0; i < 3; i++) {
scanf("%f", &new_student.score[i]);
}
students[*size] = new_student;
(*size)++;
}
// 更新成绩
void update_score(Student *students, int index, float new_score) {
if (index >= 0 && index < (*size)) {
students[index].score[0] = new_score;
printf("成绩更新成功。\n");
} else {
printf("无效索引,请检查。\n");
}
}
// 计算平均分
void average_score(Student *students, int size) {
float total = 0;
for (int i = 0; i < size; i++) {
total += students[i].score[0] + students[i].score[1] + students[i].score[2];
}
float avg = total / (3 * size);
printf("所有学生的平均分为:%.2f\n", avg);
}
```
在这个系统中,用户可以选择添加新学生、查看学生信息、修改成绩和计算平均分。注意这个示例只处理了一门课程的成绩,如果需要管理更多科目,可以相应地调整`score`数组和`update_score`函数。
阅读全文