软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2024/7/1)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2024/7/1
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2024/7/1)
阅读下列说明和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/exam/ExamDayAL.aspx?t1=4&day=2024/7/1
信管网考友试题答案分享:
信管网cnitpm488202624972:
1、this->name
2、void add(company* c)
3、void DELETE(company* c)
4、company
5、children
6、children
7、root->add(comp)
8、comp->add(compl)
信管网yjiaitfk:
1)name
2)abstract void add(company)
3)abstract void DELETE(company)
4)company
5)children
6)children
7)root. add
8)comp. add
信管网cnitpm475547856609:
this->name<br>virtual void add(*)<br>virtual void delete(*)<br>company*<br>children<br>children<br>
信管网试题答案与解析:
www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2024/7/1