用c语言实现完整版实现一个简单的学生信息管理系统,该系统的功能有: 1.利用单链表建立学生基本信息表; 2.浏览每个学生的信息; 3.根据学号查询某个学生的基本信息; 4.添加学生信息到单链表中; 5、删除一个学生的信息。
时间: 2024-09-18 18:08:25 浏览: 64
为了帮助您理解如何用C语言实现这样一个简单的学生信息管理系统,我们将分步骤概述关键部分的代码。首先,我们需要创建结构体表示学生信息,并定义一个链表节点:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Student {
int id;
char name[50];
char grade[10];
} Student;
typedef struct Node {
Student info;
struct Node* next;
} Node;
// 初始化链表头指针
Node* head = NULL;
// 添加学生到链表
void addStudent(int id, const char* name, const char* grade) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
newNode->info.id = id;
strcpy(newNode->info.name, name);
strcpy(newNode->info.grade, grade);
newNode->next = head;
head = newNode;
}
// 删除学生
void deleteStudent(int id) {
Node* curr = head;
Node* prev = NULL;
while (curr != NULL && curr->info.id != id) {
prev = curr;
curr = curr->next;
}
if (curr == NULL) {
printf("Student with ID %d not found.\n", id);
return;
}
if (prev == NULL) {
head = curr->next;
} else {
prev->next = curr->next;
}
free(curr);
}
// 浏览所有学生信息
void displayStudents() {
Node* temp = head;
while (temp != NULL) {
printf("ID: %d, Name: %s, Grade: %s\n", temp->info.id, temp->info.name, temp->info.grade);
temp = temp->next;
}
}
// 根据学号查询学生信息
void searchStudent(int id) {
Node* curr = head;
while (curr != NULL) {
if (curr->info.id == id) {
printf("ID: %d, Name: %s, Grade: %s\n", curr->info.id, curr->info.name, curr->info.grade);
break;
}
curr = curr->next;
}
if (curr == NULL) {
printf("Student with ID %d not found.\n", id);
}
}
int main() {
// 示例操作
addStudent(1001, "Alice", "A");
addStudent(1002, "Bob", "B");
displayStudents();
searchStudent(1001);
deleteStudent(1002);
displayStudents();
return 0;
}
```
这个程序实现了上述的功能,包括建立学生链表、浏览信息、按学号查询、添加和删除学生。请注意,实际运行时,您需要添加输入验证和错误处理,以确保用户输入的有效性。
阅读全文