如果要用面向对象方法设计一个学生宿舍管理软件,您认为应该设计哪些类?试用 C++ 程序语言来定义这些类? 要求:至少定义两个类,每个类中包含至少 2 个数据成员,至少 2 个成员函数。可以不用给出成员函数函数体的定义,但需要注释成员函数的功能。 给出完整代码
时间: 2023-06-14 14:04:27 浏览: 102
在设计学生宿舍管理软件时,至少需要考虑到两个类:学生类和宿舍类。学生类用于存储学生的信息,宿舍类用于存储宿舍的信息。
以下是一个基本的 C++ 程序,用于定义这两个类及其成员函数。需要注意的是,这里只是一个基本的示例,具体的实现可能需要根据具体需求进行调整。
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 定义学生类
class Student {
public:
// 构造函数
Student(string name, int age, string id, string dormitory) {
this->name = name;
this->age = age;
this->id = id;
this->dormitory = dormitory;
}
// 获取学生信息
string getName() {
return name;
}
int getAge() {
return age;
}
string getId() {
return id;
}
string getDormitory() {
return dormitory;
}
private:
string name; // 学生姓名
int age; // 学生年龄
string id; // 学生学号
string dormitory; // 学生所在宿舍
};
// 定义宿舍类
class Dormitory {
public:
// 构造函数
Dormitory(string dormitoryName, int capacity) {
this->dormitoryName = dormitoryName;
this->capacity = capacity;
}
// 添加学生
void addStudent(Student student) {
if (students.size() < capacity) {
students.push_back(student);
} else {
cout << "Error: Dormitory is full." << endl;
}
}
// 获取宿舍信息
string getDormitoryName() {
return dormitoryName;
}
int getCapacity() {
return capacity;
}
vector<Student> getStudents() {
return students;
}
private:
string dormitoryName; // 宿舍名称
int capacity; // 宿舍容量
vector<Student> students; // 宿舍里的学生
};
int main() {
// 创建一个宿舍
Dormitory dormitory("A1", 4);
// 添加学生
Student student1("张三", 18, "1001", "A1");
dormitory.addStudent(student1);
Student student2("李四", 19, "1002", "A1");
dormitory.addStudent(student2);
Student student3("王五", 20, "1003", "A1");
dormitory.addStudent(student3);
Student student4("赵六", 21, "1004", "A1");
dormitory.addStudent(student4);
// 获取宿舍信息
cout << "宿舍名称:" << dormitory.getDormitoryName() << endl;
cout << "宿舍容量:" << dormitory.getCapacity() << endl;
cout << "学生列表:" << endl;
vector<Student> students = dormitory.getStudents();
for (int i = 0; i < students.size(); i++) {
cout << students[i].getName() << " " << students[i].getAge() << " " << students[i].getId() << " " << students[i].getDormitory() << endl;
}
return 0;
}
```
阅读全文