用c语言设计学生学籍管理系统。(单链表)
时间: 2024-03-24 09:39:59 浏览: 92
C语言基于单链表的学生管理系统
好的,我来为您介绍一下用C语言设计学生学籍管理系统的具体步骤,采用单链表来存储学生信息。
1. 定义学生结构体
首先需要定义一个结构体来存储学生的基本信息,包括学号、姓名、性别、年龄、成绩等信息。
```c
typedef struct student {
int id; // 学号
char name[20]; // 姓名
char sex; // 性别
int age; // 年龄
float score; // 成绩
struct student *next; // 指向下一个学生的指针
} Student;
```
2. 实现链表的基本操作
定义链表的头指针,用于指向第一个学生的结构体。然后需要实现链表的基本操作,包括增加、删除、查找和修改等操作。
```c
Student *head = NULL;
// 增加学生信息
void addStudent() {
// 创建一个新的学生结构体
Student *newStudent = (Student*)malloc(sizeof(Student));
printf("请输入学生信息:\n");
scanf("%d %s %c %d %f", &newStudent->id, newStudent->name, &newStudent->sex, &newStudent->age, &newStudent->score);
// 将新的学生结构体插入到链表中
newStudent->next = head;
head = newStudent;
}
// 删除学生信息
void deleteStudent(int id) {
Student *p = head;
Student *q = NULL;
while (p != NULL && p->id != id) {
q = p;
p = p->next;
}
if (p == NULL) {
printf("未找到该学生信息!\n");
} else {
if (q == NULL) {
head = p->next;
} else {
q->next = p->next;
}
free(p);
printf("删除成功!\n");
}
}
// 查找学生信息
void findStudent(int id) {
Student *p = head;
while (p != NULL && p->id != id) {
p = p->next;
}
if (p == NULL) {
printf("未找到该学生信息!\n");
} else {
printf("学号:%d\n姓名:%s\n性别:%c\n年龄:%d\n成绩:%.2f\n", p->id, p->name, p->sex, p->age, p->score);
}
}
// 修改学生信息
void modifyStudent(int id) {
Student *p = head;
while (p != NULL && p->id != id) {
p = p->next;
}
if (p == NULL) {
printf("未找到该学生信息!\n");
} else {
printf("请输入修改后的学生信息:\n");
scanf("%s %c %d %f", p->name, &p->sex, &p->age, &p->score);
printf("修改成功!\n");
}
}
```
3. 实现主函数
在主函数中,通过一个循环来不断读入用户输入的指令,并进行相应的操作。
```c
int main() {
int choice;
int id;
printf("学生学籍管理系统\n");
printf("1. 增加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 查找学生信息\n");
printf("4. 修改学生信息\n");
printf("0. 退出程序\n");
do {
printf("请输入指令:");
scanf("%d", &choice);
switch (choice) {
case 1:
addStudent();
break;
case 2:
printf("请输入学号:");
scanf("%d", &id);
deleteStudent(id);
break;
case 3:
printf("请输入学号:");
scanf("%d", &id);
findStudent(id);
break;
case 4:
printf("请输入学号:");
scanf("%d", &id);
modifyStudent(id);
break;
case 0:
printf("退出程序!\n");
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (choice != 0);
return 0;
}
```
这样就完成了用C语言设计学生学籍管理系统的全部步骤,可以通过这个程序来实现学生信息的增删查改等功能。
阅读全文