用 C 语言 编写学生基本信息管理程序。用链表存储一个班的学生信息(最多100位学生),每个学生的信息有:学号,姓名,性别,联系电话和家庭住址。需要实现的功能有:新建学生信息链表,对学生信息进行增加、删除和查找。全部代码
时间: 2024-09-20 12:04:54 浏览: 22
C++课程设计 学生信息管理 源代码
4星 · 用户满意度95%
在C语言中编写一个学生信息管理程序,我们可以创建一个结构体`Student`来表示学生的属性,并使用链表数据结构来存储。这里是一个基本的实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生信息结构体
typedef struct {
int id; // 学号
char name[50]; // 姓名
char gender[10]; // 性别
char phone[20]; // 联系电话
char address[150]; // 家庭住址
} Student;
// 创建链表节点
typedef struct Node {
Student info;
struct Node* next;
} Node;
// 链表头指针
Node* head = NULL;
// 新建学生信息链表
void createList() {
head = (Node*)malloc(sizeof(Node));
if (!head) {
printf("内存分配失败!\n");
return;
}
head->next = NULL;
}
// 添加新学生到链表
void addStudent(Student newStudent) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (!newNode) {
printf("内存分配失败!\n");
return;
}
newNode->info = newStudent;
newNode->next = head->next;
head->next = newNode;
}
// 删除学生信息
void deleteStudent(int id) {
Node* current = head;
Node* previous = NULL;
while (current != NULL && current->info.id != id) {
previous = current;
current = current->next;
}
if (current == NULL) {
printf("未找到该学生!\n");
return;
}
if (previous == NULL) {
head = current->next;
} else {
previous->next = current->next;
}
free(current);
}
// 查找学生信息
bool searchStudent(int id) {
Node* current = head;
while (current != NULL) {
if (current->info.id == id) {
printf("找到学生信息:\n");
// 打印详细信息
printf("学号: %d\n", current->info.id);
printf("姓名: %s\n", current->info.name);
printf("性别: %s\n", current->info.gender);
printf("联系电话: %s\n", current->info.phone);
printf("家庭住址: %s\n", current->info.address);
return true;
}
current = current->next;
}
return false;
}
int main() {
createList();
// 使用addStudent(), deleteStudent() 和searchStudent() 功能...
return 0;
}
```
这个程序实现了基本的学生信息管理功能,包括添加、删除和查找学生。注意,实际项目中应处理更复杂的边界情况和错误处理。如果你想了解更多关于链表操作或其他相关问题,可以提问:
阅读全文