軟件設計師案例分析當天每日一練試題地址:www.rydxd.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:www.rydxd.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2022/8/3)在線測試:www.rydxd.com/exam/ExamDayAL.aspx?t1=4&day=2022/8/3
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2022/8/3)
閱讀下列說明和C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
某公司的組織結構圖如圖5-1所示,現(xiàn)采用組合(Composition)設計模式來構造該公司的組織結構,得到如圖5-2所示的類圖。
圖5-1 組織結構圖
圖5-2 類圖
其中Company為抽象類,定義了在組織結構圖上添加(Add)和刪除(Delete)分公司/辦事處或者部門的方法接口。類ConcreteCompany表示具體的分公司或者辦事處,分公司或辦事處下可以設置不同的部門。類HRDepartment和FinanceDepartment分別表示人力資源部和財務部。
【C++代碼】
#include
#include
#include
using namespace std;
class Company {//抽象類
protected:
strìng name;
public:
Company(string name) {(1)= name;}
(2); //增加子公司、辦事處或部門
(3);//刪除子公司、辦事處或部門
};
class ConcreteCompany: public Company {
private:
list<(4)>children; //存儲子公司、辦事處或部門
public:
ConcreteCompany(string name) : Company(name) { }
void Add(Company* c) { (5).push_back(c); }
void Delete(Company* c) { (6).remove(c); }
};
class HRDepartment : public Company {
public:
HRDepartment(string name) : Company(name) { } //其他代碼省略
};
class FinanceDepartment : public Company {
public:
FinanceDepartment(string name) : Company(name) { } //其他代碼省烙
};
void main() {
ConcreteCompany *root = new ConcreteCompany("北京總公司") ;
root->Add(new HRDepartment("總公司人力資源部") ) ;
root->Add(new FinanceDepartment("總公司財務部") ) ;
ConcreteCompany *comp = new ConcreteCompany("上海分公司") ;
comp->Add(new HRDepartment("上海分公司人力資源部") ) ;
comp->Add(new FinanceDepartment("上海分公司財務部") ) ;
(7);
ConcreteCompany *compl = new ConcreteCompany("南京辦事處") ;
compl->Add(new HRDepartment("南京辦事處人力資源部") ) ;
compl->Add(new FinanceDepartment("南京辦事處財務部") ) ;
(8); //其他代碼省略
}
信管網(wǎng)試題答案與解析:www.rydxd.com/st/3810116336.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
www.rydxd.com/st/3810116336.html