c语言编写学生基本信息管理程序。用链表存储一个班的学生信息(最多100位学生),每个学生的信息有:学号,姓名,性别,联系电话和家庭住址。需要实现的功能有:新建学生信息链表,对学生信息进行增加、删除和查找。
时间: 2024-09-20 14:05:18 浏览: 35
C语言课程设计说明书--学生信息管理系统.doc
在C语言中,编写一个学生基本信息管理程序通常会涉及结构体定义、链表操作以及文件I/O。首先,我们可以定义一个名为`Student`的结构体,用于存储学生的各项信息:
```c
struct Student {
int id; // 学号
char name[50]; // 姓名
char gender[10]; // 性别
char phone[20]; // 联系电话
char address[150]; // 家庭住址
};
```
接下来,我们创建一个`Node`结构体,包含一个指向下一个节点的指针和一个`Student`类型的变量,用于构成链表:
```c
typedef struct Node {
struct Student data;
struct Node* next;
} ListNode;
```
现在,我们需要实现以下功能:
1. **新建链表**:创建一个空链表作为头结点。
```c
ListNode* createList() {
return (ListNode*)malloc(sizeof(ListNode));
}
```
2. **增加学生信息**:遍历链表,在适当位置插入新学生。
```c
void insertStudent(ListNode** head, struct Student newStudent) {
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->data = newStudent;
newNode->next = *head;
*head = newNode;
}
```
3. **删除学生信息**:通过学号查找并删除指定学生,可以遍历链表找到目标节点后删除。
```c
void deleteStudent(ListNode** head, int id) {
ListNode* current = *head;
if (current != NULL && current->data.id == id) {
*head = current->next;
free(current);
return;
}
while (current != NULL && current->data.id != id) {
current = current->next;
}
if (current == NULL) return;
ListNode* temp = current->next;
free(current);
current = temp;
}
```
4. **查找学生信息**:同样遍历链表,根据学号搜索对应的学生。
```c
ListNode* findStudent(ListNode* head, int id) {
ListNode* current = head;
while (current != NULL) {
if (current->data.id == id) break;
current = current->next;
}
return current;
}
```
为了持久化数据,还可以添加读取和保存学生信息到文件的功能。
阅读全文