帮我写个学生管理系统代码,用C语言写
时间: 2024-05-02 11:23:49 浏览: 7
好的,我会帮您写一个简单的学生管理系统代码,以下是代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT 100 // 最大学生数
struct Student {
char name[20]; // 学生姓名
int age; // 学生年龄
char gender; // 学生性别
char id[10]; // 学生学号
float score; // 学生成绩
};
int main() {
struct Student students[MAX_STUDENT]; // 存放所有学生的结构体数组
int student_count = 0; // 学生数量,默认为0
int choice, i;
while (1) {
printf("***** 学生管理系统 *****\n");
printf("1. 添加学生信息\n");
printf("2. 显示学生信息\n");
printf("3. 查找学生信息\n");
printf("4. 修改学生信息\n");
printf("5. 删除学生信息\n");
printf("6. 退出学生管理系统\n");
printf("请输入您的选择: ");
scanf("%d", &choice);
switch (choice) {
case 1:
if (student_count >= MAX_STUDENT) {
printf("系统错误: 学生数量已达上限\n");
}
else {
printf("添加学生信息\n");
printf("姓名: ");
scanf("%s", students[student_count].name);
printf("年龄: ");
scanf("%d", &students[student_count].age);
printf("性别: ");
scanf(" %c", &students[student_count].gender);
printf("学号: ");
scanf("%s", students[student_count].id);
printf("成绩: ");
scanf("%f", &students[student_count].score);
student_count++; // 学生数量加1
}
break;
case 2:
if (student_count == 0) {
printf("系统错误: 没有学生信息\n");
}
else {
printf("显示学生信息\n");
printf("姓名\t年龄\t性别\t学号\t成绩\n");
for (i = 0; i < student_count; i++) {
printf("%s\t%d\t%c\t%s\t%.2f\n",
students[i].name, students[i].age, students[i].gender,
students[i].id, students[i].score);
}
}
break;
case 3:
if (student_count == 0) {
printf("系统错误: 没有学生信息\n");
}
else {
char search_id[10];
printf("查找学生信息\n");
printf("请输入要查找的学生学号: ");
scanf("%s", search_id);
for (i = 0; i < student_count; i++) {
if (strcmp(students[i].id, search_id) == 0) {
printf("姓名\t年龄\t性别\t学号\t成绩\n");
printf("%s\t%d\t%c\t%s\t%.2f\n",
students[i].name, students[i].age, students[i].gender,
students[i].id, students[i].score);
break;
}
}
if (i == student_count) {
printf("系统消息: 没有找到该学生信息\n");
}
}
break;
case 4:
if (student_count == 0) {
printf("系统错误: 没有学生信息\n");
}
else {
char update_id[10];
printf("修改学生信息\n");
printf("请输入要修改的学生学号: ");
scanf("%s", update_id);
for (i = 0; i < student_count; i++) {
if (strcmp(students[i].id, update_id) == 0) {
printf("姓名: ");
scanf("%s", students[i].name);
printf("年龄: ");
scanf("%d", &students[i].age);
printf("性别: ");
scanf(" %c", &students[i].gender);
printf("学号: ");
scanf("%s", students[i].id);
printf("成绩: ");
scanf("%f", &students[i].score);
break;
}
}
if (i == student_count) {
printf("系统消息: 没有找到该学生信息\n");
}
}
break;
case 5:
if (student_count == 0) {
printf("系统错误: 没有学生信息\n");
}
else {
char delete_id[10];
printf("删除学生信息\n");
printf("请输入要删除的学生学号: ");
scanf("%s", delete_id);
for (i = 0; i < student_count; i++) {
if (strcmp(students[i].id, delete_id) == 0) {
// 将最后一个学生的信息赋值给这个要删除的学生
strcpy(students[i].name, students[student_count - 1].name);
students[i].age = students[student_count - 1].age;
students[i].gender = students[student_count - 1].gender;
strcpy(students[i].id, students[student_count - 1].id);
students[i].score = students[student_count - 1].score;
student_count--; // 学生数量减1
printf("系统消息: 删除成功\n");
break;
}
}
if (i == student_count) {
printf("系统消息: 没有找到该学生信息\n");
}
}
break;
case 6:
printf("退出本系统\n");
exit(0);
default:
printf("系统错误: 无效的操作\n");
break;
}
printf("\n");
}
return 0;
}
```
希望这可以帮到您,如果还有其他问题,请继续问我。