用c++编写学生基本信息管理程序。用链表存储一个班的学生信息(最多100位学生),每个学生的信息有:学号,姓名,性别,联系电话和家庭住址。需要实现的功能有:新建学生信息链表,对学生信息进行增加、删除和查找。
时间: 2024-09-21 19:04:45 浏览: 30
在 C++ 中,我们可以使用结构体(struct)表示学生的基本信息,并利用链表(如单链表或双向链表)作为数据结构来管理和操作学生信息。下面是一个简单的实现:
```cpp
#include <iostream>
using namespace std;
// 定义学生结构体
struct Student {
int studentID;
string name;
char gender;
string phoneNumber;
string address;
};
// 定义链表节点
class Node {
public:
Student data;
Node* next;
};
// 定义链表头结点
class LinkedList {
private:
Node* head;
public:
LinkedList() { head = nullptr; } // 构造函数
void addStudent(Student newStudent); // 添加新学生
void deleteStudent(int ID); // 删除指定ID的学生
void searchStudent(int ID); // 查找指定ID的学生
// 其他辅助函数...
};
// 实现添加学生功能
void LinkedList::addStudent(Student newStudent) {
if (!head) {
head = new Node();
head->data = newStudent;
} else {
Node* current = head;
while (current->next != nullptr && current->next->data.studentID != newStudent.studentID) {
current = current->next;
}
if (current->next == nullptr) {
current->next = new Node();
current->next->data = newStudent;
}
}
}
// 实现删除学生功能
void LinkedList::deleteStudent(int ID) {
if (head == nullptr) return;
if (head->data.studentID == ID) {
Node* temp = head;
head = head->next;
delete temp;
return;
}
Node* current = head;
while (current->next != nullptr && current->next->data.studentID != ID) {
current = current->next;
}
if (current->next != nullptr) {
current->next = current->next->next;
delete current->next;
}
}
// 实现查找学生功能
void LinkedList::searchStudent(int ID) {
Node* current = head;
while (current != nullptr) {
if (current->data.studentID == ID) {
cout << "Found student with ID: " << current->data.studentID << "\n";
break;
}
current = current->next;
}
if (current == nullptr) {
cout << "Student not found.\n";
}
}
// 主函数演示
int main() {
LinkedList studentsList;
// 这里可以调用上述方法添加、删除和查找学生
// ...
return 0;
}
```
阅读全文