利用链表实现一个简单的学生信息管理系统: (1)学生信息包括学号、姓名、性别、年龄、电话号码、所学专业、班级等; (2)系统的主要功能包括:学生信息的创建、输出学生信息、查询学生信息、增加学生信息、删除学生信息。 用c语言
时间: 2024-11-29 07:36:50 浏览: 19
在C语言中,我们可以使用链表数据结构来实现一个简单的学生信息管理系统。首先,我们需要定义一个结构体`Student`来存储学生的相关信息:
```c
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
char gender[10]; // 性别
int age; // 年龄
char phone[20]; // 电话号码
char major[50]; // 所学专业
char class_name[50]; // 班级
} Student;
```
接下来,我们创建一个链表节点,并设置相应的管理函数:
```c
typedef struct Node {
Student info;
struct Node* next;
} Node;
// 初始化链表
Node* createList() {
Node* head = NULL;
return head;
}
// 添加学生信息到链表末尾
void addStudent(Node** head, Student new_student) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->info = new_student;
newNode->next = NULL;
if (*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 删除学生信息(根据学号)
void deleteStudent(Node** head, int target_id) {
if (*head == NULL) {
return;
}
Node* current = *head;
if (current->info.student_id == target_id) {
*head = current->next;
free(current);
return;
}
while (current->next != NULL && current->next->info.student_id != target_id) {
current = current->next;
}
if (current->next != NULL) {
Node* toDelete = current->next;
current->next = current->next->next;
free(toDelete);
}
}
// 其他功能可根据需求实现,例如查询和输出操作,通过遍历链表并查找匹配条件的节点来完成。
阅读全文