以下是一个简单的学生管理系统的C语言实现,支持对学生信息进行添加、查询、修改和删除。
```c #include <stdio.h> #include <stdlib.h> #include <string.h>
#define MAX_STUDENT_NUM 100
// 学生信息结构体 typedef struct { char name[20]; char sex[10]; int age; int score; } Student;
// 学生数组和当前学生数量 Student students[MAX_STUDENT_NUM]; int student_num = 0;
// 添加学生信息 void add_student() { if (student_num >= MAX_STUDENT_NUM) { printf("学生数量已达到上限,无法添加新学生!\n"); return; }
Student s;printf("请输入学生姓名:");scanf("%s", s.name);printf("请输入学生性别:");scanf("%s", s.sex);printf("请输入学生年龄:");scanf("%d", &s.age);printf("请输入学生成绩:");scanf("%d", &s.score);students[student_num++] = s;printf("学生信息添加成功!\n");
}
// 查询学生信息 void query_student() { char name[20]; printf("请输入要查询的学生姓名:"); scanf("%s", name);
int found = 0;for (int i = 0; i < student_num; i++) {if (strcmp(name, students[i].name) == 0) {printf("姓名:%s,性别:%s,年龄:%d,成绩:%d\n",students[i].name, students[i].sex, students[i].age, students[i].score);found = 1;}}if (!found) {printf("未找到姓名为%s的学生!\n", name);}
}
// 修改学生信息 void modify_student() { char name[20]; printf("请输入要修改的学生姓名:"); scanf("%s", name);
int found = 0;for (int i = 0; i < student_num; i++) {if (strcmp(name, students[i].name) == 0) {printf("请输入新的学生姓名:");scanf("%s", students[i].name);printf("请输入新的学生性别:");scanf("%s", students[i].sex);printf("请输入新的学生年龄:");scanf("%d", &students[i].age);printf("请输入新的学生成绩:");scanf("%d", &students[i].score);printf("学生信息修改成功!\n");found = 1;}}if (!found) {printf("未找到姓名为%s的学生!\n", name);}
}
// 删除学生信息 void delete_student() { char name[20]; printf("请输入要删除的学生姓名:"); scanf("%s", name);
int found = 0;for (int i = 0; i < student_num; i++) {if (strcmp(name, students[i].name) == 0) {// 将后面的学生信息依次向前移动for (int j = i + 1; j < student_num; j++) {students[j - 1] = students[j];