#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
// 学生信息结构体
typedef struct {
char id[10]; // 学号
char name[20]; // 姓名
char gender; // 性别
int age; // 年龄
float score; // 成绩
} Student;
Student students[MAX_STUDENT_NUM]; // 学生信息数组
int student_count = 0; // 学生数量
// 添加学生信息
void add_student() {
if (student_count >= MAX_STUDENT_NUM) {
printf("已达到最大学生数,无法添加新学生。\n");
return;
}
Student student;
printf("请输入学号:");
scanf("%9s", student.id);
printf("请输入姓名:");
scanf("%19s", student.name);
printf("请输入性别:");
getchar();
scanf("%c", &student.gender);
printf("请输入年龄:");
getchar();
scanf("%d", &student.age);
printf("请输入成绩:");
scanf("%f", &student.score);
students[student_count++] = student;
printf("添加成功!\n");
}
// 显示所有学生信息
void show_all_students() {
if (student_count == 0) {
printf("暂无学生信息。\n");
return;
}
printf("所有学生信息如下:\n");
printf("学号\t姓名\t性别\t年龄\t成绩\n");
for (int i = 0; i < student_count; i++) {
printf("%s\t%s\t%c\t%d\t%.2f\n", students[i].id, students[i].name, students[i].gender, students[i].age, students[i].score);
}
}
// 查找指定学号的学生信息
void search_student() {
char id[10];
printf("请输入要查找的学号:");
scanf("%s", id);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("找到该学生,信息如下:\n");
printf("学号\t姓名\t性别\t年龄\t成绩\n");
printf("%s\t%s\t%c\t%d\t%.2f\n", students[i].id, students[i].name, students[i].gender, students[i].age, students[i].score);
return;
}
}
printf("未找到该学生。\n");
}
// 修改指定学号的学生信息
void modify_student() {
char id[10];
printf("请输入要修改的学号:");
scanf("%s", id);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, id) == 0) {
Student student;
printf("请输入新的姓名:");
scanf("%s", student.name);
printf("请输入新的性别:");
getchar();
scanf("%c", &student.gender);
printf("请输入新的年龄:");
getchar();
scanf("%d", &student.age);
printf("请输入新的成绩:");
scanf("%f", &student.score);
students[i] = student;
printf("修改成功!\n");
return;
}
}
printf("未找到该学生。\n");
}
// 删除指定学号的学生信息
void delete_student() {
char id[10];
printf("请输入要删除的学号:");
scanf("%s", id);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, id) == 0) {
for (int j = i + 1; j < student_count; j++) {
students[j - 1] = students[j];
}
student_count--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生。\n");
}
int main() {
int choice;
while (1) {
printf("\n---\n");
printf("欢迎使用学生信息管理系统,请选择以下操作:\n");
printf("1. 添加学生信息\n");
printf("2. 显示所有学生信息\n");
printf("3. 查找指定学号的学生信息\n");
printf("4. 修改指定学号的学生信息\n");
printf("5. 删除指定学号的学生信息\n");
printf("0. 退出系统\n");
printf("---------------------------------\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice)
{
case 1:
add_student();
break;
case 2:
show_all_students();
break;
case 3:
search_student();
break;
case 4:
modify_student();
break;
case 5:
delete_student();
printf("删除成功!\n");
break;
case 0:
exit(0);
default:
printf("输入有误,请重新选择。\n");
break;
}
}
}
