编写学生宿舍管理系统c++
时间: 2023-07-19 12:29:43 浏览: 100
好的,下面我将给你提供一个简单的学生宿舍管理系统C++代码示例,希望能够对你有所帮助。
```c++
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
// 学生类
class Student {
public:
Student(string name, string id, string gender, string nation) {
this->name = name;
this->id = id;
this->gender = gender;
this->nation = nation;
}
string getName() const {
return name;
}
string getId() const {
return id;
}
string getGender() const {
return gender;
}
string getNation() const {
return nation;
}
private:
string name; // 姓名
string id; // 学号
string gender; // 性别
string nation; // 民族
};
// 宿舍类
class Dormitory {
public:
Dormitory(string no, int floor, int capacity) {
this->no = no;
this->floor = floor;
this->capacity = capacity;
}
string getNo() const {
return no;
}
int getFloor() const {
return floor;
}
int getCapacity() const {
return capacity;
}
private:
string no; // 宿舍号
int floor; // 所在楼层
int capacity; // 床位数
};
// 学生宿舍管理系统
class StudentDormitoryManagementSystem {
public:
// 添加学生
void addStudent(string name, string id, string gender, string nation) {
Student student(name, id, gender, nation);
students.push_back(student);
}
// 删除学生
void removeStudent(string id) {
for (vector<Student>::iterator it = students.begin(); it != students.end(); ++it) {
if (it->getId() == id) {
students.erase(it);
return;
}
}
}
// 添加宿舍
void addDormitory(string no, int floor, int capacity) {
Dormitory dormitory(no, floor, capacity);
dormitories.push_back(dormitory);
}
// 删除宿舍
void removeDormitory(string no) {
for (vector<Dormitory>::iterator it = dormitories.begin(); it != dormitories.end(); ++it) {
if (it->getNo() == no) {
dormitories.erase(it);
return;
}
}
}
// 保存学生信息
void saveStudents(string filename) {
ofstream ofs(filename);
for (vector<Student>::iterator it = students.begin(); it != students.end(); ++it) {
ofs << it->getName() << "," << it->getId() << "," << it->getGender() << "," << it->getNation() << endl;
}
ofs.close();
}
// 保存宿舍信息
void saveDormitories(string filename) {
ofstream ofs(filename);
for (vector<Dormitory>::iterator it = dormitories.begin(); it != dormitories.end(); ++it) {
ofs << it->getNo() << "," << it->getFloor() << "," << it->getCapacity() << endl;
}
ofs.close();
}
private:
vector<Student> students; // 学生列表
vector<Dormitory> dormitories; // 宿舍列表
};
int main() {
StudentDormitoryManagementSystem system;
// 添加学生
system.addStudent("张三", "1001", "男", "汉族");
system.addStudent("李四", "1002", "女", "回族");
system.addStudent("王五", "1003", "男", "满族");
system.addStudent("赵六", "1004", "女", "藏族");
// 删除学生
system.removeStudent("1003");
// 添加宿舍
system.addDormitory("A101", 1, 4);
system.addDormitory("A102", 1, 4);
system.addDormitory("B101", 2, 6);
// 删除宿舍
system.removeDormitory("B101");
// 保存学生信息
system.saveStudents("students.txt");
// 保存宿舍信息
system.saveDormitories("dormitories.txt");
return 0;
}
```
上述示例中,我们定义了一个学生类和一个宿舍类,以及一个学生宿舍管理系统类。在该系统中,我们定义了添加学生、删除学生、添加宿舍、删除宿舍、保存学生信息、保存宿舍信息等操作。同时,我们还使用了文件读写方式,将学生信息和宿舍信息保存到文件中。
希望这个示例能够对你有所帮助!最后,祝你编写学生宿舍管理系统顺利!
阅读全文