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