学生宿舍信息管理系统的设计与实现(单链表)c++语言编写
时间: 2023-08-14 15:02:48 浏览: 78
下面是一个简单的学生宿舍信息管理系统的设计与实现(单链表)C++语言编写的代码示例:
```c++
#include <iostream>
#include <string>
using namespace std;
// 学生类
class Student {
public:
string id; // 学号
string name; // 姓名
string gender; // 性别
string dorm; // 宿舍号
Student* next; // 指向下一个节点的指针
};
// 学生宿舍信息管理系统类
class Dormitory {
public:
Dormitory(); // 构造函数
~Dormitory(); // 析构函数
void addStudent(); // 添加学生信息
void deleteStudent(); // 删除学生信息
void searchStudent(); // 查询学生信息
void displayAll(); // 显示所有学生信息
private:
Student* head; // 头节点指针
int count; // 学生总数
};
// 构造函数
Dormitory::Dormitory() {
head = new Student;
head->next = NULL;
count = 0;
}
// 析构函数
Dormitory::~Dormitory() {
Student* p = head;
while (p != NULL) {
Student* q = p->next;
delete p;
p = q;
}
count = 0;
}
// 添加学生信息
void Dormitory::addStudent() {
Student* p = new Student;
cout << "请输入学生学号:" << endl;
cin >> p->id;
cout << "请输入学生姓名:" << endl;
cin >> p->name;
cout << "请输入学生性别:" << endl;
cin >> p->gender;
cout << "请输入学生宿舍号:" << endl;
cin >> p->dorm;
p->next = head->next;
head->next = p;
count++;
cout << "添加学生信息成功!" << endl;
}
// 删除学生信息
void Dormitory::deleteStudent() {
string id;
cout << "请输入要删除的学生学号:" << endl;
cin >> id;
Student* p = head->next;
Student* q = head;
while (p != NULL) {
if (p->id == id) {
q->next = p->next;
delete p;
count--;
cout << "删除学生信息成功!" << endl;
return;
}
q = p;
p = p->next;
}
cout << "没有找到该学生信息!" << endl;
}
// 查询学生信息
void Dormitory::searchStudent() {
string id;
cout << "请输入要查询的学生学号:" << endl;
cin >> id;
Student* p = head->next;
while (p != NULL) {
if (p->id == id) {
cout << "学生学号:" << p->id << endl;
cout << "学生姓名:" << p->name << endl;
cout << "学生性别:" << p->gender << endl;
cout << "学生宿舍号:" << p->dorm << endl;
return;
}
p = p->next;
}
cout << "没有找到该学生信息!" << endl;
}
// 显示所有学生信息
void Dormitory::displayAll() {
Student* p = head->next;
while (p != NULL) {
cout << "学生学号:" << p->id << endl;
cout << "学生姓名:" << p->name << endl;
cout << "学生性别:" << p->gender << endl;
cout << "学生宿舍号:" << p->dorm << endl;
p = p->next;
}
if (count == 0) {
cout << "没有学生信息!" << endl;
}
}
// 主函数
int main() {
Dormitory d;
int choice;
while (true) {
cout << "**********学生宿舍信息管理系统**********" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 删除学生信息" << endl;
cout << "3. 查询学生信息" << endl;
cout << "4. 显示所有学生信息" << endl;
cout << "0. 退出系统" << endl;
cout << "请输入操作编号:" << endl;
cin >> choice;
switch (choice) {
case 1:
d.addStudent();
break;
case 2:
d.deleteStudent();
break;
case 3:
d.searchStudent();
break;
case 4:
d.displayAll();
break;
case 0:
return 0;
default:
cout << "输入错误,请重新输入!" << endl;
break;
}
}
return 0;
}
```
以上代码中,我们使用了单链表来存储学生信息,实现了添加、删除、查询和显示学生信息的功能。在主函数中,我们使用一个循环来不断接收用户的操作选择,直到用户选择退出系统。
阅读全文