2024.11.13(周三)

婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于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)  评论(0编辑  收藏  举报