用c语言实现一个简单的学生信息管理系统,该系统的功能有: 1.利用单链表建立学生基本信息表; 2.浏览每个学生的信息; 3.根据学号查询某个学生的基本信息; 4.添加学生信息到单链表中; 5、删除一个学生的信息。 生成完整版整合在一起
时间: 2024-09-18 16:07:39 浏览: 34
学生信息管理系统(C++实现,链表实现,还有完整的实验报告)
5星 · 资源好评率100%
在C语言中实现一个简单的学生信息管理系统,可以使用结构体定义学生信息,并通过单链表来存储和操作数据。以下是基本的步骤和代码片段:
首先,创建一个名为`Student`的结构体:
```c
typedef struct {
int id; // 学号
char name[50]; // 姓名
char major[50]; // 专业
} Student;
```
接着,定义单链表节点结构和头指针:
```c
typedef struct Node {
Student info;
struct Node *next;
} Node;
Node* head = NULL;
```
接下来,分别实现添加、删除、浏览和查询学生信息的功能:
1. 添加学生(`add_student()`):
```c
void add_student(Node** head, Student s) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->info = s;
newNode->next = *head;
*head = newNode;
}
```
2. 删除学生(`delete_student()`,这里假设我们有一个函数能根据学号找到对应节点,如`find_student_nodeById()`):
```c
void delete_student(Node** head, int id) {
Node* temp = *head, *prev = NULL;
while (temp && temp->info.id != id) {
prev = temp;
temp = temp->next;
}
if (temp) {
if (prev)
prev->next = temp->next;
else
*head = temp->next;
free(temp);
}
}
```
3. 浏览所有学生信息(`display_students()`):
```c
void display_students(Node* node) {
while (node) {
printf("ID: %d, Name: %s, Major: %s\n", node->info.id, node->info.name, node->info.major);
node = node->next;
}
}
```
4. 根据学号查询学生信息(`search_student_by_id()`):
```c
void search_student_by_id(Node* head, int id) {
Node* current = head;
while (current) {
if (current->info.id == id) {
printf("ID: %d, Name: %s, Major: %s\n", current->info.id, current->info.name, current->info.major);
break;
}
current = current->next;
}
}
```
整合上述代码后,你可以编写主程序来调用这些函数处理用户输入:
```c
int main() {
// ... (其他初始化和错误处理)
// 用户输入、调用函数操作链表...
return 0;
}
```
阅读全文