2021年08月17日来源:信管网 作者:cnitpm
软件设计师下午考试科目为案例分析,考试题型为主观题,4道必答题,2道(5、6题)选答题,考试时长2个半小时,共75分。为帮助广大软考中级软件设计师考生更好备考,信管网特整理汇总了软件设计师部分真题、答案及解析供考生查阅,并提供免费在线模拟答题、历年真题免费下载等服务,了解软件设计师更多备考信息请关注信管网。
相关推荐:
免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)
阅读以下说明和c++代码,将应填入 (n) 处。
[说明]
在一公文处理系统中,开发者定义了一个公文类officedoc,其中定义了公文具有的属性和处理公文的相应方法。当公文的内容或状态发生变化时,关注此officedoc类对象的相应的docexplorer对象都要更新其自身的状态。一个officedoc对象能够关联一组 docexplorer对象。当officedoc对象的内容或状态发生变化时,所有与之相关联的 docexplorcr对象都将得到通知,这种应用被称为观察者模式。以下代码写在一个c++源文件中,能够正确编译通过。
[c++代码]
#include
const obs_maxnum=20;//最多与officedoc对象相关联的docexplorer对象的个数
(1) ;
class docexplorer{ //关注officedoc公文对象的类
public:
docexplorer( (2) *doc); //构造函数
(3) void update(officedoc *doc)=0;//更新自身状态的函数
//其他相关属性和方法省略
};
class officedoc{ //公文类
private:
docexplorer *myobs[obs_maxnum];
//关注此公文类的docexplorer类对象指针数组
int index; //与officedoc对象关联的docexplorer对象的个数
public:
officedoe()
index=0;
}
void attach(docexplorer *o){
//将一doeexplorer对象与officedoe对象相关联
if(index >=obs_maxnum ||o=null)return;
for(int loop=0; loop
if(myobs[loop]==o) return;
myobs[index]=o;
index++;
}
void detaeh(docexplorer *o){
//接触某doeexplorer对象与officedoc对象的关联
if(0==null) return;
for(int loop=0; loop
if(myobs[loop]==o){
if(loop<=index-2)myobs[loop]=myobs[index-1];
myobs[index-1]=null;
index--;
break;
}
}
}
private:
void notifyobs(){ //通知所有的docexplorer对象更改自身状态
for(int loop=0; loop
myobs[loop]-> (4) ; //docexplorer对象更新自身状态
}
}
//其他公文类的相关属性和方法
};
docexplorer::docexplorer(officedoc *doc){//docexplorer 类对象的构造函数
doc-> (5) ; //将此docexplorer对象与doc对象相关联
}
信管网参考答案:
(1) class OfficeDoc
(2) OfficeDoc
(3) virtual
(4) update(this)
(5) attach(this)
查看解析:www.cnitpm.com/st/2453319636.html
温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关推荐