11.24每日总结

[实验任务一]:股票提醒

当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。

实验要求:

1. 提交源代码;

2. 提交类图;

3. 注意编程规范。

 

 

 

 

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

class MyObserver

{

public:

    virtual void response1() = 0;

    virtual void response2() = 0;

};

 

class Investor:public MyObserver

{

public:

     void response1(){

        cout<<"股民买股票"<<endl;

    }

    void response2(){

        cout<<"股民大哭一场"<<endl;

    }

};

class Subject

{

public:

    Subject(){}

    virtual ~Subject(){}

    virtual void attach(MyObserver *observer)=0;

    virtual void detach(MyObserver *observer)=0;

    virtual void stockUp()=0;

    virtual void stockDown()=0;

};

class Stock:public Subject

{

public:

    void attach(MyObserver *observer)

    {

        observers.push_back(observer);

    }

    void detach(MyObserver *observer)

    {

        vector<MyObserver*>::iterator observer_rm = find(observers.begin(), observers.end(), observer);

        observers.erase(observer_rm);

    }

    void stockUp()

    {

         cout<<"股票上涨5%"<<endl;

         vector <MyObserver *>::iterator iObserver = observers.begin();

         while(iObserver != observers.end())

         {

              (*iObserver)->response1();

              iObserver++;

         }

    }

     void stockDown()

    {

         vector <MyObserver *>::iterator iObserver = observers.begin();

         cout<<"股票下降5%"<<endl;

         while(iObserver != observers.end())

         {

              (*iObserver)->response2();

              iObserver++;

         }

    }

private:

    vector<MyObserver*> observers;

};

int main()

{

    Stock subject;

    Investor obs;

    subject.attach(&obs);

    subject.stockUp();

    subject.stockDown();

}

posted @ 2023-11-24 23:36  ME社长  阅读(18)  评论(0)    收藏  举报