专业软件设计师网站|培训机构|服务商(加客服微信:cnitpm或QQ:800184589进软件设计师学霸群)

软题库 培训课程
当前位置:信管网 >> 软件设计师 >> 案例分析 >> 文章内容
软件设计师《案例分析》真题及答案18
来源:信管网 2021年08月24日 【所有评论 分享到微信

软件设计师下午考试科目为案例分析,考试题型为主观题,4道必答题,2道(5、6题)选答题,考试时长2个半小时,共75分。为帮助广大软考中级软件设计师考生更好备考,信管网特整理汇总了软件设计师部分真题、答案及解析供考生查阅,并提供免费在线模拟答题、历年真题免费下载等服务,了解软件设计师更多备考信息请关注信管网。

相关推荐:

点击查看/下载:软件设计师历年真题汇总

点击查看:软件设计师在线培训课程免费试听课程

免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)

阅读以下说明和c代码,将应填入 (n) 处。

[说明]

在一公文处理系统中,开发者定义了一个公文结构officedoc,其中定义了公文应该具有的属性(字段)。当公文的内容或状态发生变化时,与之相关联的docexplorer结构的值都需要发生改变。一个officedoc结构能够关联一组docexplorer结构。当officedoc结构的内容或状态发生变化时,所有与之相关联的docexplorer结构都将被更新,这种应用被称为观察者模式。以下代码采用c语言实现,能够正确编译通过。

[c代码]

#include

#define obs_maxnum 20 /*一个officedoc变量最多能够关联的*/

/*doeexplorer变量的个数*/

typedef void( (1) )(struct officedoc*,street docexplorer*);

struct docexplorer{

func update;/* docexplorer结构采用的更新函数*/

/*其他的结构字段省略*/

};

struct officedoc{

(2) myobs[obs_maxnum];

/*存储所有与officedoc相关联的doeexplorer结构指针*/

int index;/*与officedoc结构变量相关联的docexplorer结构变量的个数*/

};

void attach(struet officedoc *doc, struet docexplorer *ob){

/*关联obersver结构ob与officedoe结构doc*/

int loop=0;

if(doc->index >=obs_maxnum || ob==null) return;

for(loop=0; loop index; loop++)

if(doc->myobs[loop]==ob)return;

doc->myobs[doe->index]=ob;

doc->index++;

)

void detach(struct officedoc *doc, struct docexplorer *ob){

/*解除doc结构与ob结构间的关系*/

int loop;

if(ob==null)return;

for(loop=0; loop index; loop6++){

if(doc->myobs[loop]==ob){

if(loop<=doc->index-2)

doe->myobs[loop]=doc->myobs[ (3) ];

doc->myobs[doe->indox-1]=null;

doe->index--;

break;

}

}

}

void updatel(struct officedoc *doc,struct docexplorer *ob){

/*更新ob结构的值,更新代码省略*/

}

void update2(stmct officedoc *doc, struct docexplorer *ob){

/*更新ob结构的值,更新代码省略*/

}

void notifyobs(struet officedoc *doc){

/*当doc结构的值发生变化时,通知与之关联的所有docexplorer结构变量*/

int loop;

for(loop=0; loop index; loop++){

(doc->myobs[loop])->update( (4) );

}

}

void main(){

stmct officedoc doc;/*定义一officedoc变量*/

struct docexplorer explorer1, explorer2;/*定义两个docexplorer变量*/

/*初始化与officedoc变量相关的docexplorer变量个数为0*/

doc.index=0;

explorer1.update=update1;/*设置explorer1变量的更新函数*/

explorer2.update=update2;/*设置explorer2变量的更新函数*/

attaeh(&doc,&explorer1);/*关联explorer1与doc对象*/

attach(&doc,&explorer2);/*关联explorer2与doc对象*/

/*其他代码省略*/

(5) ;/*通知与officedoc相关的所有docexplorer变量*/

return;

}

信管网参考答案:

(1) *func

(2) struct DocExplorer*

(3) doc->index-1,或等价形式

(4) doc和doc->myObs[loop],或等价形式

(5) notifyObs(&doc)

查看解析:www.cnitpm.com/st/245356842.html

扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章