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

















