利用链表实现一个简单的学生信息管理系统: (1)学生信息包括学号、姓名、性别、年龄、电话号码、所学专业、班级等 (2)系统的主要功能包括:学生信息的创建、输出学生信息、查询学生信息、增加学生信息、删除学生信息。 (3)用C语言实现
时间: 2024-11-15 21:27:18 浏览: 26
利用链表实现一个简单的学生信息管理系统可以分为几个步骤:
首先,我们需要定义一个结构体`Student`来存储学生的各项信息,如:
```c
typedef struct {
int id; // 学号
char name[50]; // 姓名
char gender[10]; // 性别
int age; // 年龄
char phone[20]; // 电话号码
char major[50]; // 所学专业
char class_name[50]; // 班级
} Student;
```
接下来,我们将创建一个`StudentList`结构,它包含指向下一个学生的指针以及一个头结点:
```c
typedef struct List {
Student* head;
struct List* next;
} StudentList;
```
然后,我们可以实现一些基本操作函数:
1. **创建列表**:初始化一个空的链表
```c
void createList(StudentList** list) {
(*list) = (StudentList*)malloc(sizeof(StudentList));
(*list)->head = NULL;
(*list)->next = NULL;
}
```
2. **添加学生信息**:在链表尾部插入新学生
```c
void addStudent(StudentList* list, Student new_student) {
Student* temp = list->head;
if (!temp) {
list->head = &new_student;
} else {
while (temp->next) {
temp = temp->next;
}
temp->next = &new_student;
}
}
```
3. **输出所有学生信息**
```c
void printList(StudentList* list) {
Student* temp = list->head;
while (temp) {
printf("学号:%d 姓名:%s...\n", temp->id, temp->name);
temp = temp->next;
}
}
```
4. **查询学生信息**:通过遍历查找特定学生
```c
bool searchStudent(StudentList* list, int id, Student* found_student) {
Student* temp = list->head;
while (temp) {
if (temp->id == id) {
*found_student = *temp;
return true;
}
temp = temp->next;
}
return false;
}
```
5. **删除学生信息**:根据学号删除学生节点
```c
void deleteStudent(StudentList* list, int id) {
Student* temp = list->head;
Student* prev = NULL;
if (temp && temp->id == id) {
list->head = temp->next;
free(temp);
return;
}
while (temp && temp->id != id) {
prev = temp;
temp = temp->next;
}
if (!temp) return;
prev->next = temp->next;
free(temp);
}
```
阅读全文