利用链表实现一个简单的学生信息管理系统: (1)学生信息包括学号、姓名、性别、年龄、电话号码、所学专业、班级等; (2)系统的主要功能包括:学生信息的创建、输出学生信息、查询学生信息、增加学生信息、删除学生信息。用c语言编写代码。
时间: 2024-11-12 14:41:31 浏览: 28
利用链表实现一个简单的学生信息管理系统,首先需要定义一个结构体来存储学生的信息,然后创建一个链表节点来表示每个学生。以下是基本步骤:
1. 定义学生结构体(Student):
```c
typedef struct {
int student_id; // 学号
char name[50]; // 姓名
char gender[10]; // 性别
int age; // 年龄
char phone_number[20]; // 电话号码
char major[50]; // 所学专业
char class_name[50]; // 班级
struct Node *next; // 链接指针
} Student, *Node;
```
2. 初始化链表头结点:
```c
Node head = (Node)malloc(sizeof(Student));
head->next = NULL;
```
3. 功能实现:
- 创建新学生:添加一个新的链表节点并初始化数据
```c
void addStudent(Node* &head, Student new_student) {
Node newNode = (Node)malloc(sizeof(Student));
newNode->student_id = new_student.student_id;
strcpy(newNode->name, new_student.name);
strcpy(newNode->gender, new_student.gender);
newNode->age = new_student.age;
strcpy(newNode->phone_number, new_student.phone_number);
strcpy(newNode->major, new_student.major);
strcpy(newNode->class_name, new_student.class_name);
newNode->next = head->next;
head->next = newNode;
}
```
- 输出所有学生信息:
```c
void displayStudents(Node* head) {
if (head == NULL) return;
while (head != NULL) {
printf("%d - %s, %s, %d, %s, %s, %s\n",
head->student_id, head->name, head->gender, head->age,
head->phone_number, head->major, head->class_name);
head = head->next;
}
}
```
- 查询学生信息:遍历链表查找特定学生
```c
bool searchStudent(Node* head, int id, Student* foundStudent) {
Node current = head;
while (current != NULL) {
if (current->student_id == id) {
*foundStudent = current->student_id; // 注意这里假设找到了就直接返回,实际可能需要复制整个学生结构
return true;
}
current = current->next;
}
return false;
}
```
- 其他功能如增加、删除可根据需求设计类似函数。
阅读全文