用c语言结构体编写一个学生信息管理系统
时间: 2023-09-05 19:08:08 浏览: 118
下面是一个简单的学生信息管理系统,使用结构体来存储学生信息,包括学号、姓名、性别、年龄、专业等。
```c
#include <stdio.h>
#include <string.h>
#define MAX_NUM 30
#define MAX_NAME_LEN 20
#define MAX_MAJOR_LEN 30
// 定义结构体
struct student {
int id;
char name[MAX_NAME_LEN];
char gender;
int age;
char major[MAX_MAJOR_LEN];
};
int main() {
struct student stu[MAX_NUM];
int n, choice;
printf("请输入学生人数(最多为%d):", MAX_NUM);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &stu[i].id);
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", stu[i].name);
printf("请输入第%d个学生的性别(M/F):", i + 1);
scanf(" %c", &stu[i].gender);
printf("请输入第%d个学生的年龄:", i + 1);
scanf("%d", &stu[i].age);
printf("请输入第%d个学生的专业:", i + 1);
scanf("%s", stu[i].major);
}
printf("请输入要查询的学生的学号:");
int query_id;
scanf("%d", &query_id);
int found = 0;
for (int i = 0; i < n; i++) {
if (stu[i].id == query_id) {
printf("学号:%d\n", stu[i].id);
printf("姓名:%s\n", stu[i].name);
printf("性别:%c\n", stu[i].gender);
printf("年龄:%d\n", stu[i].age);
printf("专业:%s\n", stu[i].major);
found = 1;
break;
}
}
if (!found) {
printf("未找到该学生!\n");
}
printf("请输入要修改的学生的学号:");
int update_id;
scanf("%d", &update_id);
found = 0;
for (int i = 0; i < n; i++) {
if (stu[i].id == update_id) {
found = 1;
printf("请选择要修改的信息:\n");
printf("1.姓名\n2.性别\n3.年龄\n4.专业\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入新的姓名:");
scanf("%s", stu[i].name);
break;
case 2:
printf("请输入新的性别(M/F):");
scanf(" %c", &stu[i].gender);
break;
case 3:
printf("请输入新的年龄:");
scanf("%d", &stu[i].age);
break;
case 4:
printf("请输入新的专业:");
scanf("%s", stu[i].major);
break;
default:
printf("输入有误!\n");
break;
}
break;
}
}
if (!found) {
printf("未找到该学生!\n");
}
printf("请输入要删除的学生的学号:");
int delete_id;
scanf("%d", &delete_id);
found = 0;
for (int i = 0; i < n; i++) {
if (stu[i].id == delete_id) {
found = 1;
for (int j = i; j < n - 1; j++) {
stu[j] = stu[j + 1];
}
n--;
printf("删除成功!\n");
break;
}
}
if (!found) {
printf("未找到该学生!\n");
}
printf("当前学生信息如下:\n");
printf("学号\t姓名\t性别\t年龄\t专业\n");
for (int i = 0; i < n; i++) {
printf("%d\t%s\t%c\t%d\t%s\n", stu[i].id, stu[i].name, stu[i].gender, stu[i].age, stu[i].major);
}
return 0;
}
```
这个程序可以实现以下功能:
1. 输入学生信息,包括学号、姓名、性别、年龄和专业。
2. 查询学生信息,根据学号查询,输出该学生的所有信息。
3. 修改学生信息,根据学号查询,选择要修改的信息,输入新的值,更新该学生的信息。
4. 删除学生信息,根据学号查询,删除该学生的信息。
5. 输出当前所有学生的信息。
需要注意的是,这个程序只是一个简单的示例,还可以根据实际情况进行修改和扩展。
阅读全文