利用数据结构c语言写一个学生信息管理系统
时间: 2023-07-25 21:35:35 浏览: 75
好的,我可以给你提供一个简单的学生信息管理系统的代码,使用链表数据结构进行实现,以下是代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct student
{
char name[20]; // 姓名
int age; // 年龄
char sex[10]; // 性别
char id[20]; // 学号
struct student *next; // 指向下一个学生结构体的指针
} student;
// 添加学生信息
void add_student(student *head)
{
student *p, *q;
p = head;
while (p->next != NULL)
{
p = p->next;
}
q = (student *)malloc(sizeof(student));
printf("请输入学生姓名:");
scanf("%s", q->name);
printf("请输入学生年龄:");
scanf("%d", &q->age);
printf("请输入学生性别:");
scanf("%s", q->sex);
printf("请输入学生学号:");
scanf("%s", q->id);
q->next = NULL;
p->next = q;
printf("添加成功!\n");
}
// 删除学生信息
void del_student(student *head)
{
char id[20];
student *p, *q;
p = head;
printf("请输入要删除的学生学号:");
scanf("%s", id);
while (p->next != NULL && strcmp(p->next->id, id) != 0)
{
p = p->next;
}
if (p->next == NULL)
{
printf("未找到该学生信息!\n");
return;
}
q = p->next;
p->next = q->next;
free(q);
printf("删除成功!\n");
}
// 修改学生信息
void update_student(student *head)
{
char id[20];
student *p;
p = head->next;
printf("请输入要修改的学生学号:");
scanf("%s", id);
while (p != NULL && strcmp(p->id, id) != 0)
{
p = p->next;
}
if (p == NULL)
{
printf("未找到该学生信息!\n");
return;
}
printf("请输入新的学生姓名:");
scanf("%s", p->name);
printf("请输入新的学生年龄:");
scanf("%d", &p->age);
printf("请输入新的学生性别:");
scanf("%s", p->sex);
printf("修改成功!\n");
}
// 查询学生信息
void query_student(student *head)
{
char id[20];
student *p;
p = head->next;
printf("请输入要查询的学生学号:");
scanf("%s", id);
while (p != NULL && strcmp(p->id, id) != 0)
{
p = p->next;
}
if (p == NULL)
{
printf("未找到该学生信息!\n");
return;
}
printf("姓名:%s\n", p->name);
printf("年龄:%d\n", p->age);
printf("性别:%s\n", p->sex);
printf("学号:%s\n", p->id);
}
// 显示学生信息
void show_student(student *head)
{
student *p;
p = head->next;
printf("姓名\t年龄\t性别\t学号\n");
while (p != NULL)
{
printf("%s\t%d\t%s\t%s\n", p->name, p->age, p->sex, p->id);
p = p->next;
}
}
int main()
{
student *head;
head = (student *)malloc(sizeof(student));
head->next = NULL;
int choice;
while (1)
{
printf("请选择操作:\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 查询学生信息\n");
printf("5. 显示学生信息\n");
printf("6. 退出\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
add_student(head);
break;
case 2:
del_student(head);
break;
case 3:
update_student(head);
break;
case 4:
query_student(head);
break;
case 5:
show_student(head);
break;
case 6:
exit(0);
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
```
这个程序可以进行添加、删除、修改、查询和显示学生信息的操作。你可以根据需要进行修改和优化。