2010下半年软件设计师下午真题及参考答案

loading 分享 2026-7-18 下载文档

5 / 11

【问题 3】(2 分)

若将元素 10 插入到堆 A =〈15, 13, 9, 5, 12, 8, 7, 4, 0, 6, 2, 1〉中,调用 maxHeapInsert函数进行操作,则新插入的元素在堆 A 中

第(9)个位置(从 1 开始)。

试题五(共 15 分)

阅读下列说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】

某公司的组织结构图如图5-1 所示,现采用组合(Composition)设计模式来构造该公司的组织结构,得到如图5-2 所示的类图。

其中Company 为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分司/办事处或者部门的方法接口。类 ConcreteCompany 表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类 HRDepartment 和 FinanceDepartment分别表示人力资源部和财务部。 【C++代码】

#include #include #include using namespace std;

class Company { // 抽象类 protected:

string 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 {

6 / 11

public:

FinanceDepartment(string name) : Company(name) {} // 其它代码省略 };

void main() {

ConcreteCompany *root = new ComcreteCompany(\北京总公司\ root->Add(new HRDepartment(\总公司人力资源部\ root->Add(new FinanceDepartment(\总公司财务部\

ConcreteCompany *comp = new ConcreteCompany(\上海分公司\comp->Add(new HRDepartment(\上海分公司人力资源部\ comp->Add(new FinanceDepartment(\上海分公司财务部\ (7) ;

ConcreteCompany *comp1 = new ConcreteCompany(\南京办事处\comp1->Add(new HRDepartment(\南京办事处人力资源部\comp1->Add(new FinanceDepartment(\南京办事处财务部\ (8) ; //其它代码省略 }

试题六(共 15 分)

阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】说明及图表和上题相同。 【Java 代码】 import java.util.*;

(1) Company {

Protected String name;

Public Company(String name) { (2) = name; }

Public abstract void Add(Company c); // 增加子公司、办事处或部门 Public abstract void Delete(Company c); // 删除子公司、办事处或部门 }

class ConcreteCompany extends Company {

private List< (3) > children = new ArrayList< (4) >(); // 存储子公司、办事处或部门

public ConcreteCompany(String name) { super(name); } public void Add(Company c) { (5) .add(c); } public void Delete(Company c) { (6) .remove(c); } }

class HRDepartment extends Company {

public HRDepartment(String name) { super(name); } // 其它代码省略 }

class FinanceDepartment extends Company {

public FinanceDepartment(String name) { super(name); } // 其它代码省略 }

public class Test {

public static void main(String[] args) {

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 comp1 = new ConcreteCompany(\南京办事处\ comp1.Add(new HRDepartment(\南京办事处人力资源部\ comp1.Add(new FinanceDepartment(\南京办事处财务部\ (8) ; // 其它代码省略 } }

7 / 11

8 / 11


2010下半年软件设计师下午真题及参考答案.doc 将本文的Word文档下载到电脑
搜索更多关于: 2010下半年软件设计师下午真题及参考答案 的文档
相关推荐
相关阅读