软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2022/8/3)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2022/8/3
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2022/8/3)
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某公司的组织结构图如图5-1所示,现采用组合(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); //其他代码省略
}
信管网试题答案与解析:www.cnitpm.com/st/3810116336.html
信管网考友试题答案分享:
信管网试题答案与解析:
www.cnitpm.com/st/3810116336.html