| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 515 人关注过本帖
标题:问题求教!
取消只看楼主 加入收藏
lzyren2008
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-8-12
收藏
 问题点数:0 回复次数:0 
问题求教!
#include <string>
#include <iostream>
using namespace std;
class PurchaseRequest {
public:
    double Amount;       // 一个采购的金额
    int Number;              // 采购单编号
    string Purpose;        // 采购目的
};
class Approver {              // 审批者类
public:
    Approver(){    successor = NULL;    }
    virtual void ProcessRequest(PurchaseRequest aRequest)
    {
        if (successor != NULL){  successor->ProcessRequest(aRequest);    }
    }
    void SetSuccessor(Approver *aSuccesssor){ successor = aSuccesssor; }
private:
      Approver* successor;
};
class Congress : public Approver {
public:
    void ProcessRequest(PurchaseRequest aRequest){
        if(aRequest.Amount >= 500000){    /* 决定是否审批的代码省略 */    }
        else   Approver::ProcessRequest(aRequest);
    }
};
class Director : public Approver {
public:
    void ProcessRequest(PurchaseRequest aRequest){  /* 此处代码省略 */    }
};
class President : public Approver {
public:
    void ProcessRequest(PurchaseRequest aRequest){  /* 此处代码省略 */  }
};
class VicePresident : public Approver {
public:
    void ProcessRequest(PurchaseRequest aRequest){  /* 此处代码省略 */   }
};
void main(){
    Congress Meeting;  
    VicePresident VPre;  
    Director Dir;  
    President Pre;      
    // 构造责任链
    Meeting.SetSuccessor(NULL);        
    VPre.SetSuccessor(&Pre);
    Pre.SetSuccessor(&Meeting);
    Dir.SetSuccessor(&VPre);
    
    PurchaseRequest aRequest;     // 构造一采购审批请求
    cin >> aRequest.Amount;   // 输入采购请求的金额
    
    Dir.ProcessRequest(aRequest);     // 开始审批
    return ;
}
07年下半年软设最后一题,这个搞不懂了,不知怎么传来传去的,希望那位高手能解答一下,万分感激了!
2008-03-28 09:34
快速回复:问题求教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022626 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved