婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
实验要求:
1. 提交类图;
2. 提交源代码;
3. 注意编程规范。
1、类图
2、源代码
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
virtual void findLove() = 0;
virtual void result(int age) = 0;
};
class Customer :public Person {
public:
void findLove() {
cout << "嘉宾1:27周岁 身高178cm 体重65kg 医生" << endl;
cout << "嘉宾2:32周岁 身高182cm 体重70kg 律师" << endl;
cout << "嘉宾3:26周岁 身高175cm 体重62kg 程序员" << endl;
}
void result(int age) {
if (age < 18) {
cout << "对不起,不能早恋!" << endl;
cout << "终止业务——————" << endl;
}
else if (age >= 18) {
cout << "已为您登记好信息...." << endl;
cout << "请等待匹配结果......" << endl;
}
}
};
//Proxy
class Intermediary :public Person
{
public:
Intermediary(Person* person) :m_Person(person) {}
void findLove()
{
cout << "*******欢迎来到婚介所*******" << endl;
cout << "您可以简单浏览一下我们的嘉宾信息...." << endl;
m_Person->findLove();
}
void result(int age) {
if (age < 18) {
cout << "对不起,不能早恋!" << endl;
cout << "终止业务——————" << endl;
}
else if (age >= 18) {
cout << "已为您登记好信息...." << endl;
cout << "请等待匹配结果......" << endl;
}
}
private:
Person* m_Person;
};
//场景
int main()
{
Person* xiaoM = new Customer;
Person* intermediary = new Intermediary(xiaoM);
intermediary->findLove();
cout << "*******请登记一下您的基本信息*******" << endl;
cout << "您的年龄:" << endl;
int age;
cin >> age;
intermediary->result(age);
return 0;
}
posted @
2024-11-18 08:01
记得关月亮
阅读(
2)
评论()
编辑
收藏
举报