#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
// 学生结构体
struct Student {
int id;
char name[50];
int age;
float score;
};
// 全局变量,存储所有学生
struct Student students[MAX_STUDENTS];
int num_students = 0;
// 函数声明
void addStudent();
void displayAllStudents();
void findStudent();
void updateStudent();
void deleteStudent();
int main() {
int choice;
while (1) {
printf("\n===== 学生管理系统 =====\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:
addStudent();
break;
case 2:
displayAllStudents();
break;
case 3:
findStudent();
break;
case 4:
updateStudent();
break;
case 5:
deleteStudent();
break;
case 6:
printf("感谢使用学生管理系统!\n");
return 0;
default:
printf("请输入有效的选项!\n");
}
}
return 0;
}
void addStudent() {
if (num_students >= MAX_STUDENTS) {
printf("学生数已达到最大值,无法添加新学生。\n");
return;
}
struct Student newStudent;
printf("请输入学生的ID:");
scanf("%d", &newStudent.id);
printf("请输入学生的姓名:");
scanf(" %[^\n]s", newStudent.name);
printf("请输入学生的年龄:");
scanf("%d", &newStudent.age);
printf("请输入学生的成绩:");
scanf("%f", &newStudent.score);
students[num_students++] = newStudent;
printf("学生信息添加成功!\n");
}
void displayAllStudents() {
if (num_students == 0) {
printf("没有学生信息可以显示。\n");
return;
}
printf("\n所有学生信息如下:\n");
printf("ID\t姓名\t年龄\t成绩\n");
for (int i = 0; i < num_students; ++i) {
printf("%d\t%s\t%d\t%.2f\n", students[i].id, students[i].name, students[i].age, students[i].score);
}
}
void findStudent() {
int searchId;
printf("请输入要查找的学生ID:");
scanf("%d", &searchId);
for (int i = 0; i < num_students; ++i) {
if (students[i].id == searchId) {
printf("学生信息如下:\n");
printf("ID\t姓名\t年龄\t成绩\n");
printf("%d\t%s\t%d\t%.2f\n", students[i].id, students[i].name, students[i].age, students[i].score);
return;
}
}
printf("未找到ID为%d的学生。\n", searchId);
}
void updateStudent() {
int updateId;
printf("请输入要修改信息的学生ID:");
scanf("%d", &updateId);
for (int i = 0; i < num_students; ++i) {
if (students[i].id == updateId) {
printf("请输入修改后的姓名:");
scanf(" %[^\n]s", students[i].name);
printf("请输入修改后的年龄:");
scanf("%d", &students[i].age);
printf("请输入修改后的成绩:");
scanf("%f", &students[i].score);
printf("学生信息修改成功!\n");
return;
}
}
printf("未找到ID为%d的学生。\n", updateId);
}
void deleteStudent() {
int deleteId;
printf("请输入要删除的学生ID:");
scanf("%d", &deleteId);
for (int i = 0; i < num_students; ++i) {
if (students[i].id == deleteId) {
for (int j = i; j < num_students - 1; ++j) {
students[j] = students[j + 1];
}
num_students--;
printf("学生信息删除成功!\n");
return;
}
}
printf("未找到ID为%d的学生。\n", deleteId);
}
【大作业】学生信息管理系统
最新推荐文章于 2024-09-17 15:02:08 发布