c语言链表实现简单的学生信息管理系统
时间: 2024-10-28 20:12:36 浏览: 17
C语言使用链表实现学生信息管理系统
5星 · 资源好评率100%
C语言链表可以用来实现一个简单的学生信息管理系统,通过创建节点存储每个学生的姓名、学号等信息,并链接起来形成一个动态结构。以下是简化的步骤:
1. **定义数据结构**:
- 创建一个`Student`结构体,包含成员变量如`name`(字符串)、`id`(整数)等。
```c
typedef struct {
char name[50];
int id;
struct Student* next; // 指向下一个学生的指针
} Student;
```
2. **初始化链表**:
- 定义一个全局链表头指针`head`,并设置为`NULL`。
```c
Student* head = NULL;
```
3. **添加学生**:
- 编写一个函数`addStudent`,用于插入新学生到链表。
```c
void addStudent(Student* student) {
if (head == NULL) {
head = student;
} else {
Student* current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = student;
}
}
```
4. **查找学生**:
- 编写`findStudent`函数,接受学生ID作为参数,遍历链表查找对应的学生。
```c
Student* findStudent(int id) {
Student* current = head;
while (current != NULL && current->id != id) {
current = current->next;
}
return current;
}
```
5. **删除学生**:
- 写一个`deleteStudent`函数,接收学生ID,找到该学生然后删除。
```c
void deleteStudent(int id) {
if (head == NULL) return;
if (head->id == id) {
Student* temp = head;
head = head->next;
free(temp);
return;
}
Student* current = head;
while (current->next != NULL && current->next->id != id) {
current = current->next;
}
if (current->next != NULL) {
Student* temp = current->next;
current->next = current->next->next;
free(temp);
}
}
```
6. **显示学生列表**:
- 最后,编写`displayStudents`函数,遍历链表打印所有学生的信息。
```c
void displayStudents() {
Student* current = head;
while (current != NULL) {
printf("Name: %s, ID: %d\n", current->name, current->id);
current = current->next;
}
}
```
阅读全文