实现一个简单的学生信息管理系统,该系统的功能有: 1、利用单链表建立学生基本信息表 2、浏览每个学生的信息 3、根据学号查询某个学生的基本信息 4、添加学生信息到单链表中 5、删除一个学生的信息用c语言
时间: 2024-05-14 13:14:14 浏览: 96
实现一个简单的学生信息管理系统的代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct student {
char id[10]; // 学号
char name[20]; // 姓名
int age; // 年龄
char gender[5]; // 性别
struct student *next; // 指向下一个学生的指针
} Student;
// 定义全局变量,表示学生信息表的头结点
Student *head = NULL;
// 添加学生信息到单链表中
void add_student() {
Student *p = (Student *)malloc(sizeof(Student));
printf("请输入学号:");
scanf("%s", p->id);
printf("请输入姓名:");
scanf("%s", p->name);
printf("请输入年龄:");
scanf("%d", &p->age);
printf("请输入性别:");
scanf("%s", p->gender);
p->next = head;
head = p;
printf("添加成功!\n");
}
// 浏览每个学生的信息
void browse_students() {
Student *p = head;
printf("学号\t姓名\t年龄\t性别\n");
while (p != NULL) {
printf("%s\t%s\t%d\t%s\n", p->id, p->name, p->age, p->gender);
p = p->next;
}
}
// 根据学号查询某个学生的基本信息
void find_student() {
char id[10];
printf("请输入要查询的学生学号:");
scanf("%s", id);
Student *p = head;
while (p != NULL) {
if (strcmp(p->id, id) == 0) {
printf("学号\t姓名\t年龄\t性别\n");
printf("%s\t%s\t%d\t%s\n", p->id, p->name, p->age, p->gender);
return;
}
p = p->next;
}
printf("没有找到该学生!\n");
}
// 删除一个学生的信息
void delete_student() {
char id[10];
printf("请输入要删除的学生学号:");
scanf("%s", id);
Student *p = head;
Student *prev = NULL;
while (p != NULL) {
if (strcmp(p->id, id) == 0) {
if (prev == NULL) { // 删除头结点
head = p->next;
} else {
prev->next = p->next;
}
free(p);
printf("删除成功!\n");
return;
}
prev = p;
p = p->next;
}
printf("没有找到该学生!\n");
}
int main() {
int choice;
do {
printf("请选择操作:\n");
printf("1.添加学生信息\n");
printf("2.浏览每个学生的信息\n");
printf("3.根据学号查询某个学生的基本信息\n");
printf("4.删除一个学生的信息\n");
printf("5.退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
browse_students();
break;
case 3:
find_student();
break;
case 4:
delete_student();
break;
case 5:
// 释放链表内存
while (head != NULL) {
Student *p = head;
head = head->next;
free(p);
}
printf("退出成功!\n");
break;
default:
printf("请输入正确的选项!\n");
break;
}
} while (choice != 5);
return 0;
}
```
运行程序后,可以根据提示选择相应的操作,如下所示:
```
请选择操作:
1.添加学生信息
2.浏览每个学生的信息
3.根据学号查询某个学生的基本信息
4.删除一个学生的信息
5.退出
1
请输入学号:1001
请输入姓名:张三
请输入年龄:20
请输入性别:男
添加成功!
请选择操作:
1.添加学生信息
2.浏览每个学生的信息
3.根据学号查询某个学生的基本信息
4.删除一个学生的信息
5.退出
1
请输入学号:1002
请输入姓名:李四
请输入年龄:21
请输入性别:女
添加成功!
请选择操作:
1.添加学生信息
2.浏览每个学生的信息
3.根据学号查询某个学生的基本信息
4.删除一个学生的信息
5.退出
2
学号 姓名 年龄 性别
1002 李四 21 女
1001 张三 20 男
请选择操作:
1.添加学生信息
2.浏览每个学生的信息
3.根据学号查询某个学生的基本信息
4.删除一个学生的信息
5.退出
3
请输入要查询的学生学号:1001
学号 姓名 年龄 性别
1001 张三 20 男
请选择操作:
1.添加学生信息
2.浏览每个学生的信息
3.根据学号查询某个学生的基本信息
4.删除一个学生的信息
5.退出
4
请输入要删除的学生学号:1001
删除成功!
请选择操作:
1.添加学生信息
2.浏览每个学生的信息
3.根据学号查询某个学生的基本信息
4.删除一个学生的信息
5.退出
2
学号 姓名 年龄 性别
1002 李四 21 女
请选择操作:
1.添加学生信息
2.浏览每个学生的信息
3.根据学号查询某个学生的基本信息
4.删除一个学生的信息
5.退出
5
退出成功!
```
阅读全文