用链式存储用c++做一个教师管理系统
时间: 2024-02-12 14:03:31 浏览: 73
用C++做教师信息管理系统
好的,我可以为您提供一些参考代码和思路。
1. 定义教师类
首先,我们需要定义一个教师类,包括教师的基本信息,如姓名、工号、性别、年龄等。
```c++
class Teacher {
public:
string name; // 姓名
string id; // 工号
char gender; // 性别
int age; // 年龄
Teacher* next; // 指向下一个节点的指针
};
```
2. 定义链表类
接下来,我们需要定义一个链表类,用来存储所有教师信息,包括头指针和尾指针。
```c++
class TeacherList {
public:
TeacherList() {
head = tail = nullptr;
}
~TeacherList() {
Teacher* p = head;
while (p != nullptr) {
Teacher* q = p->next;
delete p;
p = q;
}
}
void addTeacher(Teacher* t) {
if (head == nullptr) {
head = tail = t;
} else {
tail->next = t;
tail = t;
}
}
void removeTeacher(string id) {
Teacher* p = head;
Teacher* prev = nullptr;
while (p != nullptr) {
if (p->id == id) {
if (prev == nullptr) {
head = p->next;
} else {
prev->next = p->next;
}
if (p == tail) {
tail = prev;
}
delete p;
break;
}
prev = p;
p = p->next;
}
}
void printAllTeachers() {
Teacher* p = head;
while (p != nullptr) {
cout << "姓名:" << p->name << endl;
cout << "工号:" << p->id << endl;
cout << "性别:" << p->gender << endl;
cout << "年龄:" << p->age << endl;
cout << endl;
p = p->next;
}
}
private:
Teacher* head; // 头指针
Teacher* tail; // 尾指针
};
```
3. 实现教师管理系统
最后,我们可以在主函数中实现一个简单的教师管理系统,包括添加教师、删除教师、打印所有教师等功能。
```c++
int main() {
TeacherList list;
// 添加教师
Teacher* t1 = new Teacher{"张三", "001", 'M', 35, nullptr};
Teacher* t2 = new Teacher{"李四", "002", 'F', 28, nullptr};
Teacher* t3 = new Teacher{"王五", "003", 'M', 42, nullptr};
list.addTeacher(t1);
list.addTeacher(t2);
list.addTeacher(t3);
// 删除教师
list.removeTeacher("002");
// 打印所有教师
list.printAllTeachers();
return 0;
}
```
以上就是一个简单的基于链式存储的教师管理系统的实现。当然,这只是一个简单的示例,您可以根据具体需求对其进行扩展和优化。
阅读全文