如何使用C++编写一个简单的学生宿舍管理系统?
学生宿舍管理系统是一个可以方便管理学生宿舍信息的软件系统。使用C++编写一个简单的学生宿舍管理系统不仅可以锻炼编程技能,还可以提高对学生宿舍管理流程的理解和把握。本文将介绍如何使用C++编写一个简单的学生宿舍管理系统。
首先,我们需要定义学生宿舍的基本信息,包括学生姓名、学号、性别、联系方式等。我们可以使用一个结构体来存储这些信息,如下所示:
struct Student {
string name;
int id;
string gender;
string contact;
};
接下来,我们需要定义宿舍楼的基本信息,包括宿舍楼号、楼层数、每层宿舍房间数等。我们可以使用一个类来表示宿舍楼,如下所示:
class Dormitory {
private:
int number;
int floors;
int roomsPerFloor;
vector<vector<Student>> rooms;
public:
// 构造函数
Dormitory(int n, int f, int r) {
number = n;
floors = f;
roomsPerFloor = r;
rooms.resize(floors, vector<Student>(roomsPerFloor));
}
// 获取宿舍楼号
int getNumber() {
return number;
}
// 获取楼层数
int getFloors() {
return floors;
}
// 获取每层宿舍房间数
int getRoomsPerFloor() {
return roomsPerFloor;
}
// 获取指定房间的学生信息
Student getStudent(int floor, int room) {
return rooms[floor][room];
}
// 更新指定房间的学生信息
void updateStudent(int floor, int room, Student student) {
rooms[floor][room] = student;
}
};
然后,我们可以定义一个学生宿舍管理系统类,包含学生宿舍楼的管理功能。我们可以使用一个向量来存储不同的宿舍楼,如下所示:
class DormitoryManagementSystem {
private:
vector<Dormitory> dormitories;
public:
// 添加宿舍楼
void addDormitory(int number, int floors, int roomsPerFloor) {
dormitories.push_back(Dormitory(number, floors, roomsPerFloor));
}
// 获取宿舍楼个数
int getDormitoryCount() {
return dormitories.size();
}
// 获取指定宿舍楼对象
Dormitory getDormitory(int index) {
return dormitories[index];
}
// 获取指定宿舍楼的房间数
int getRoomCount(int index) {
return dormitories[index].getFloors() * dormitories[index].getRoomsPerFloor();
}
// 获取指定宿舍楼指定房间的学生信息
Student getStudent(int index, int floor, int room) {
return dormitories[index].getStudent(floor, room);
}
// 更新指定宿舍楼指定房间的学生信息
void updateStudent(int index, int floor, int room, Student student) {
dormitories[index].updateStudent(floor, room, student);
}
};
最后,我们可以编写一个主程序,来演示学生宿舍管理系统的使用。主程序可以提供菜单功能,包括添加宿舍楼、查看宿舍楼信息、添加学生信息、查看学生信息等。下面是一个简单的主程序示例:
int main() {
DormitoryManagementSystem system;
int choice;
do {
cout << "1. 添加宿舍楼" << endl;
cout << "2. 查看宿舍楼信息" << endl;
cout << "3. 添加学生信息" << endl;
cout << "4. 查看学生信息" << endl;
cout << "0. 退出" << endl;
cout << "请输入选项:";
cin >> choice;
switch (choice) {
case 1:
int number, floors, roomsPerFloor;
cout << "请输入宿舍楼号:";
cin >> number;
cout << "请输入楼层数:";
cin >> floors;
cout << "请输入每层宿舍房间数:";
cin >> roomsPerFloor;
system.addDormitory(number, floors, roomsPerFloor);
cout << "成功添加宿舍楼!" << endl;
break;
case 2:
int index;
cout << "请输入要查看的宿舍楼索引:";
cin >> index;
if (index >= 0 && index < system.getDormitoryCount()) {
Dormitory dorm = system.getDormitory(index);
cout << "宿舍楼号:" << dorm.getNumber() << endl;
cout << "楼层数:" << dorm.getFloors() << endl;
cout << "每层宿舍房间数:" << dorm.getRoomsPerFloor() << endl;
cout << "总房间数:" << system.getRoomCount(index) << endl;
} else {
cout << "宿舍楼索引无效!" << endl;
}
break;
case 3:
int dormIndex, floor, room;
string name, gender, contact;
cout << "请输入要添加学生的宿舍楼索引:";
cin >> dormIndex;
if (dormIndex >= 0 && dormIndex < system.getDormitoryCount()) {
cout << "请输入学生所在楼层:";
cin >> floor;
cout << "请输入学生所在房间:";
cin >> room;
cout << "请输入学生姓名:";
cin >> name;
cout << "请输入学生性别:";
cin >> gender;
cout << "请输入学生联系方式:";
cin >> contact;
system.updateStudent(dormIndex, floor, room, {name, 0, gender, contact});
cout << "成功添加学生信息!" << endl;
} else {
cout << "宿舍楼索引无效!" << endl;
}
break;
case 4:
int dormIndex, floor, room;
cout << "请输入要查看学生的宿舍楼索引:";
cin >> dormIndex;
if (dormIndex >= 0 && dormIndex < system.getDormitoryCount()) {
cout << "请输入要查看学生的楼层:";
cin >> floor;
cout << "请输入要查看学生的房间:";
cin >> room;
Student student = system.getStudent(dormIndex, floor, room);
cout << "学生姓名:" << student.name << endl;
cout << "学生学号:" << student.id << endl;
cout << "学生性别:" << student.gender << endl;
cout << "学生联系方式:" << student.contact << endl;
} else {
cout << "宿舍楼索引无效!" << endl;
}
break;
case 0:
break;
default:
cout << "无效选项,请重新输入!" << endl;
break;
}
cout << endl;
} while (choice != 0);
return 0;
}
通过以上代码,我们可以实现一个简单的学生宿舍管理系统。用户可以根据菜单选项进行添加宿舍楼、查看宿舍楼信息、添加学生信息和查看学生信息等操作,从而方便地管理学生宿舍信息。
总结起来,使用C++编写一个简单的学生宿舍管理系统的关键步骤包括定义学生和宿舍楼的基本信息,编写相关的类和函数,并设计主程序来演示系统的使用。通过编写学生宿舍管理系统,我们可以提高对C++编程的理解和实践能力,并同时提升对学生宿舍管理流程的掌握和应用能力。