用c++设计并实现一个教室管理系统,教室需设置不同的类型,系统可以实现对教室信息的添加,修改,删除,查找,预约等功能,教室信息需要以文件方式保存到计算机硬盘中,给出一个教学楼,可以显示该教学楼的所有教室。 基本功能: (1)教室要设置不同的类型,如多媒体教室、智慧教室等; (2)教室信息包括:房间号,教学楼、类型,座位数,卫生责任人,设备责任人等; (3)教室信息要保存在磁盘中; (4)系统界面应该尽量友好,方便使用。
时间: 2023-11-07 15:04:40 浏览: 102
以下是一个简单的教室管理系统的示例代码,实现了基本的添加、修改、删除、查找和预约功能,同时也将教室信息保存在磁盘中。
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 定义教室结构体
struct Classroom {
string roomNumber; // 房间号
string building; // 教学楼
string type; // 类型
int seats; // 座位数
string hygieneManager; // 卫生责任人
string equipmentManager; // 设备责任人
bool reserved; // 是否被预约
};
// 定义教室管理系统类
class ClassroomManagementSystem {
public:
ClassroomManagementSystem() {
LoadData(); // 从文件中读取教室信息
}
// 添加教室
void AddClassroom() {
Classroom classroom;
cout << "请输入房间号:";
cin >> classroom.roomNumber;
cout << "请输入教学楼:";
cin >> classroom.building;
cout << "请输入类型:";
cin >> classroom.type;
cout << "请输入座位数:";
cin >> classroom.seats;
cout << "请输入卫生责任人:";
cin >> classroom.hygieneManager;
cout << "请输入设备责任人:";
cin >> classroom.equipmentManager;
classrooms.push_back(classroom);
SaveData(); // 保存教室信息到文件中
}
// 修改教室
void ModifyClassroom() {
string roomNumber;
cout << "请输入要修改的教室的房间号:";
cin >> roomNumber;
for (int i = 0; i < classrooms.size(); i++) {
if (classrooms[i].roomNumber == roomNumber) {
Classroom& classroom = classrooms[i];
cout << "请输入新的教学楼(原来为 " << classroom.building << "):";
cin >> classroom.building;
cout << "请输入新的类型(原来为 " << classroom.type << "):";
cin >> classroom.type;
cout << "请输入新的座位数(原来为 " << classroom.seats << "):";
cin >> classroom.seats;
cout << "请输入新的卫生责任人(原来为 " << classroom.hygieneManager << "):";
cin >> classroom.hygieneManager;
cout << "请输入新的设备责任人(原来为 " << classroom.equipmentManager << "):";
cin >> classroom.equipmentManager;
SaveData(); // 保存教室信息到文件中
cout << "修改成功!" << endl;
return;
}
}
cout << "找不到该教室,请检查输入的房间号是否正确。" << endl;
}
// 删除教室
void DeleteClassroom() {
string roomNumber;
cout << "请输入要删除的教室的房间号:";
cin >> roomNumber;
for (int i = 0; i < classrooms.size(); i++) {
if (classrooms[i].roomNumber == roomNumber) {
classrooms.erase(classrooms.begin() + i);
SaveData(); // 保存教室信息到文件中
cout << "删除成功!" << endl;
return;
}
}
cout << "找不到该教室,请检查输入的房间号是否正确。" << endl;
}
// 查找教室
void FindClassroom() {
string roomNumber;
cout << "请输入要查找的教室的房间号:";
cin >> roomNumber;
for (int i = 0; i < classrooms.size(); i++) {
if (classrooms[i].roomNumber == roomNumber) {
Classroom& classroom = classrooms[i];
cout << "房间号:" << classroom.roomNumber << endl;
cout << "教学楼:" << classroom.building << endl;
cout << "类型:" << classroom.type << endl;
cout << "座位数:" << classroom.seats << endl;
cout << "卫生责任人:" << classroom.hygieneManager << endl;
cout << "设备责任人:" << classroom.equipmentManager << endl;
if (classroom.reserved) {
cout << "该教室已被预约。" << endl;
} else {
cout << "该教室未被预约。" << endl;
}
return;
}
}
cout << "找不到该教室,请检查输入的房间号是否正确。" << endl;
}
// 预约教室
void ReserveClassroom() {
string roomNumber;
cout << "请输入要预约的教室的房间号:";
cin >> roomNumber;
for (int i = 0; i < classrooms.size(); i++) {
if (classrooms[i].roomNumber == roomNumber) {
Classroom& classroom = classrooms[i];
if (classroom.reserved) {
cout << "该教室已被预约,请选择其他教室。" << endl;
} else {
classroom.reserved = true;
SaveData(); // 保存教室信息到文件中
cout << "预约成功!" << endl;
}
return;
}
}
cout << "找不到该教室,请检查输入的房间号是否正确。" << endl;
}
// 显示教学楼的所有教室
void ShowBuildingClassrooms(string building) {
cout << "教学楼 " << building << " 的教室有:" << endl;
for (int i = 0; i < classrooms.size(); i++) {
if (classrooms[i].building == building) {
cout << classrooms[i].roomNumber << endl;
}
}
}
private:
vector<Classroom> classrooms;
// 从文件中读取教室信息
void LoadData() {
ifstream in("data.txt");
if (!in.is_open()) {
cout << "教室信息文件不存在,将创建新文件。" << endl;
ofstream out("data.txt");
out.close();
return;
}
while (!in.eof()) {
Classroom classroom;
in >> classroom.roomNumber >> classroom.building >> classroom.type >> classroom.seats >> classroom.hygieneManager >> classroom.equipmentManager >> classroom.reserved;
if (classroom.roomNumber != "") {
classrooms.push_back(classroom);
}
}
in.close();
}
// 保存教室信息到文件中
void SaveData() {
ofstream out("data.txt");
for (int i = 0; i < classrooms.size(); i++) {
Classroom& classroom = classrooms[i];
out << classroom.roomNumber << " " << classroom.building << " " << classroom.type << " " << classroom.seats << " " << classroom.hygieneManager << " " << classroom.equipmentManager << " " << classroom.reserved << endl;
}
out.close();
}
};
int main() {
ClassroomManagementSystem system;
while (true) {
cout << endl;
cout << "请选择功能:" << endl;
cout << "1. 添加教室" << endl;
cout << "2. 修改教室" << endl;
cout << "3. 删除教室" << endl;
cout << "4. 查找教室" << endl;
cout << "5. 预约教室" << endl;
cout << "6. 显示教学楼的所有教室" << endl;
cout << "7. 退出系统" << endl;
int choice;
cin >> choice;
switch (choice) {
case 1:
system.AddClassroom();
break;
case 2:
system.ModifyClassroom();
break;
case 3:
system.DeleteClassroom();
break;
case 4:
system.FindClassroom();
break;
case 5:
system.ReserveClassroom();
break;
case 6:
string building;
cout << "请输入教学楼名称:";
cin >> building;
system.ShowBuildingClassrooms(building);
break;
case 7:
return 0;
default:
cout << "输入错误,请重新选择。" << endl;
break;
}
}
return 0;
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)