用C语言利用结构体+数组的操作,完成一个10个人的超小型的学生管理系统,实现增删改查
时间: 2024-02-27 09:57:59 浏览: 97
好的,这是一个比较基础的小项目,我们可以用结构体来表示学生信息,用数组来存储学生信息,然后通过用户输入来实现增删改查等操作。
首先我们定义一个结构体来表示学生信息,包含学号、姓名、性别、年龄、成绩等几个基本信息:
```c
struct student {
int id; // 学号
char name[20]; // 姓名
char sex[5]; // 性别
int age; // 年龄
float score; // 成绩
};
```
然后定义一个数组来存储学生信息:
```c
struct student stu[10];
```
接下来实现增删改查等操作。我们可以通过一个菜单来让用户选择相应的操作:
```c
void menu() {
printf("********** 学生管理系统 **********\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 查询学生信息\n");
printf("0. 退出系统\n");
printf("************************************\n");
}
```
1. 添加学生信息
用户选择添加学生信息后,我们需要让用户输入学生信息,然后将学生信息添加到数组中:
```c
void add() {
int i;
for (i = 0; i < 10; i++) {
if (stu[i].id == 0) { // 找到第一个空位置
printf("请输入学生信息:\n");
printf("学号:");
scanf("%d", &stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("性别:");
scanf("%s", stu[i].sex);
printf("年龄:");
scanf("%d", &stu[i].age);
printf("成绩:");
scanf("%f", &stu[i].score);
printf("添加成功!\n");
break;
}
}
if (i == 10) { // 数组已满
printf("学生信息已满,无法添加!\n");
}
}
```
2. 删除学生信息
用户选择删除学生信息后,我们需要让用户输入要删除的学生的学号,然后在数组中查找该学生并删除:
```c
void del() {
int id, i, flag = 0;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
for (i = 0; i < 10; i++) {
if (stu[i].id == id) { // 找到要删除的学生
stu[i].id = 0; // 标记为空
flag = 1; // 标记删除成功
printf("删除成功!\n");
break;
}
}
if (flag == 0) { // 没有找到要删除的学生
printf("未找到该学生!\n");
}
}
```
3. 修改学生信息
用户选择修改学生信息后,我们需要让用户输入要修改的学生的学号,然后在数组中查找该学生并修改:
```c
void modify() {
int id, i, flag = 0;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
for (i = 0; i < 10; i++) {
if (stu[i].id == id) { // 找到要修改的学生
printf("请输入修改后的学生信息:\n");
printf("姓名:");
scanf("%s", stu[i].name);
printf("性别:");
scanf("%s", stu[i].sex);
printf("年龄:");
scanf("%d", &stu[i].age);
printf("成绩:");
scanf("%f", &stu[i].score);
flag = 1; // 标记修改成功
printf("修改成功!\n");
break;
}
}
if (flag == 0) { // 没有找到要修改的学生
printf("未找到该学生!\n");
}
}
```
4. 查询学生信息
用户选择查询学生信息后,我们需要让用户输入要查询的学生的学号,然后在数组中查找该学生并输出:
```c
void query() {
int id, i, flag = 0;
printf("请输入要查询的学生学号:");
scanf("%d", &id);
for (i = 0; i < 10; i++) {
if (stu[i].id == id) { // 找到要查询的学生
printf("学号:%d\n", stu[i].id);
printf("姓名:%s\n", stu[i].name);
printf("性别:%s\n", stu[i].sex);
printf("年龄:%d\n", stu[i].age);
printf("成绩:%.2f\n", stu[i].score);
flag = 1; // 标记查询成功
break;
}
}
if (flag == 0) { // 没有找到要查询的学生
printf("未找到该学生!\n");
}
}
```
完整代码如下:
阅读全文