用 C 语言 编写学生基本信息管理程序。用链表存储一个班的学生信息(最多100位学生),每个学生的信息有:学号,姓名,性别,联系电话和家庭住址。需要实现的功能有:新建学生信息链表,对学生信息进行增加、删除和查找。
时间: 2024-09-17 07:01:55 浏览: 30
在C语言中编写学生基本信息管理程序,可以采用结构体来表示学生信息,并利用链表数据结构来存储。以下是关键步骤以及部分代码示例:
首先,定义一个名为`Student`的结构体,包含学生的各项信息:
```c
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
char gender[10]; // 性别
char phone_number[20]; // 联系电话
char address[150]; // 家庭住址
} Student;
```
接下来,创建一个链表节点结构,用于链接各个学生信息:
```c
typedef struct Node {
Student info;
struct Node* next;
} Node;
```
然后定义链表相关的函数:
1. 初始化链表头指针:
```c
Node* createEmptyList() {
return NULL;
}
```
2. 新建学生并插入链表:
```c
void addStudent(Node** head, const Student* newStudent) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
newNode->info = *newStudent;
newNode->next = *head;
*head = newNode;
}
```
3. 删除指定学生:
```c
void deleteStudent(Node** head, int id) {
Node* current = *head;
Node* previous = NULL;
while (current != NULL && current->info.student_id != id) {
previous = current;
current = current->next;
}
if (current == NULL) {
printf("Student not found.\n");
return;
}
if (previous == NULL) {
*head = current->next;
} else {
previous->next = current->next;
}
free(current);
}
```
4. 查找特定学生:
```c
Node* searchStudent(Node* head, int id) {
Node* current = head;
while (current != NULL) {
if (current->info.student_id == id) {
return current;
}
current = current->next;
}
return NULL;
}
```
最后,在主函数中调用上述函数处理用户输入,如新建、删除和查找操作。
阅读全文