学生管理成绩系统C语言代码
时间: 2024-12-14 10:22:05 浏览: 35
创建一个简单的学生管理成绩系统C语言代码示例通常涉及结构体用于存储学生信息,数组或链表用于存储多个学生的数据,并包含一些基本的功能如添加、修改和查看成绩。以下是一个简化的例子:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int id;
float scores[3]; // 假设只有三门课程的成绩
} Student;
// 功能函数声明
void add_student(Student* students, int* count);
void view_scores(Student* students, int count);
void update_score(Student* students, int id, int course_index, float new_score);
int main() {
int num_students = 0;
Student students[100];
while (1) {
printf("1. 添加学生\n");
printf("2. 查看成绩\n");
printf("3. 修改成绩\n");
printf("4. 退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
add_student(students, &num_students);
break;
case 2:
view_scores(students, num_students);
break;
case 3:
int id, course_index;
float new_score;
printf("请输入学生ID和要修改的课程编号以及新分数:\n");
scanf("%d %d %f", &id, &course_index, &new_score);
update_score(students, id, course_index, new_score);
break;
case 4:
return 0;
default:
printf("无效选择,试再次。\n");
}
}
return 0;
}
// 实现功能函数
void add_student(Student* students, int* count) {
Student temp;
printf("输入学生信息(例如:张三 1001 85 90 95):");
scanf("%s %d", temp.name, &temp.id);
for (int i = 0; i < *count; i++) {
if (students[i].id == temp.id) {
printf("学生ID已存在,无法添加。\n");
return;
}
}
students[*count] = temp;
(*count)++;
}
void view_scores(Student* students, int count) {
for (int i = 0; i < count; i++) {
printf("学生 %s, ID:%d, 成绩:%.1f %.1f %.1f\n", students[i].name, students[i].id, students[i].scores[0], students[i].scores[1], students[i].scores[2]);
}
}
void update_score(Student* students, int id, int course_index, float new_score) {
for (int i = 0; i < num_students; i++) {
if (students[i].id == id) {
students[i].scores[course_index] = new_score;
printf("成绩已更新。\n");
break;
}
}
}
```
这个程序允许用户通过命令行交互添加、查看和修改学生的成绩。请注意,这是一个基础版本,实际应用中可能需要更完善的错误处理和边界检查。
阅读全文