軟件設(shè)計(jì)師案例分析當(dāng)天每日一練試題地址:www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計(jì)師每日一練試題匯總:www.shundajiancai.com/class/27/e4_1.html
軟件設(shè)計(jì)師案例分析每日一練試題(2022/8/3)在線測(cè)試:www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4&day=2022/8/3
點(diǎn)擊查看:更多軟件設(shè)計(jì)師習(xí)題與指導(dǎo)
軟件設(shè)計(jì)師案例分析每日一練試題內(nèi)容(2022/8/3)
閱讀下列說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某公司的組織結(jié)構(gòu)圖如圖5-1所示,現(xiàn)采用組合(Composition)設(shè)計(jì)模式來構(gòu)造該公司的組織結(jié)構(gòu),得到如圖5-2所示的類圖。
	圖5-1  組織結(jié)構(gòu)圖
	圖5-2  類圖
其中Company為抽象類,定義了在組織結(jié)構(gòu)圖上添加(Add)和刪除(Delete)分公司/辦事處或者部門的方法接口。類ConcreteCompany表示具體的分公司或者辦事處,分公司或辦事處下可以設(shè)置不同的部門。類HRDepartment和FinanceDepartment分別表示人力資源部和財(cái)務(wù)部。
【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; //存儲(chǔ)子公司、辦事處或部門
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("總公司財(cái)務(wù)部") ) ;
ConcreteCompany *comp = new ConcreteCompany("上海分公司") ;
comp->Add(new HRDepartment("上海分公司人力資源部") ) ;
comp->Add(new FinanceDepartment("上海分公司財(cái)務(wù)部") ) ;
(7);
ConcreteCompany *compl = new ConcreteCompany("南京辦事處") ;
compl->Add(new HRDepartment("南京辦事處人力資源部") ) ;
compl->Add(new FinanceDepartment("南京辦事處財(cái)務(wù)部") ) ;
(8);      //其他代碼省略
}
信管網(wǎng)試題答案與解析:www.shundajiancai.com/st/3810116336.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
www.shundajiancai.com/st/3810116336.html