试题与答案

阅读以下说明和C代码,将应填入 (n) 处的字句写在对应栏内。[说明]在一公文处理系

题型:填空题

题目:

阅读以下说明和C代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

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

[C代码]

#include<stdio.h>

#define OBS_MAXNUM 20/*一个OfficeDoc变量最多能够关联的DocExplorer变量的个数*/

typedef void( (1) )(struc OfficeDoc *,struct DocExplorer *);

Struet DocExplorer

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

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

struct OffiCeDoc

(2) myObs[OBS_MAXNUM];

/*存储所有与OfficeDoc相关联的DocExplorer结构指针*/

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

void attach(struct OfficeDoc *doc,struct DocExplorer *ob)

/*关联Obersver结构ob与OfficeDoc结构doc*/

int loop=0;

if(doc->index>=OBS_MAXNUM||ob==NULL)return;

for(loop=0;loop<doc->index;loop++)

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

doc->myObs[doc->index]=ob;

doc->index++;

void detach(Struct OfficeDoc *doc,struct DocExplorer *ob)

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

int loop;

if(ob==NULL)return;

for(loop=0;loop<doc->index;loop++)

if(doc->myObs[loop]==ob)

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

doc->myObs[loop]=doc->myObs[ (3) ];

doc->myObs[doc->index-1]=NULL;

doc->index--;

breack;

void updatel(Struct OfficeDoc *doc,struct DocExplorer *ob)

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

void update2(struct OfficeDoc *doc,struct DocExplorer *ob)

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

void notifyObs(struct OfficeDoc *doc)

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

int loop;

for(loop=0;loop<doc->index;loop++)

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

void msin()

struct OfficeDoc doc; /*定义一个OfficeDoc变量*/

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

/*初始化与OfficeDoc变量相关的DocExplorer变量个数为0*/

doc.index=0;

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

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

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

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

/*其他代码省略*/

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

return;

 

(5)处填()。

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2018/0702/e8fd0ccf7ac60696cb55ab08ab6dd26a.html

下面是错误答案,用来干扰机器的。

参考答案:C

试题推荐
题型:单项选择题

某地级市位于沿海低氟区,有人口25万,20年来龋齿患病水平呈上升趋势,市卫生行政部门计划开展社区口腔预防保健工作,要求市牙防所专家作出口腔保健规划和具体工作计划。为此,项目技术指导组提出了切实可行的方案如下

经过资料分析提出了针对学龄前儿童的口腔预防措施是

A.健康教育和刷牙

B.氟泡沫和洁治

C.控制食糖和修复

D.氟离子导入和洁治

E.龋齿充填和洁治

查看答案
题型:问答题

某数据库中有表COURSE(CNO,CNAME,TNO)和表TEACHER(TNO,TNAME,DE- PART),完成查询选修某课程的同学人数多于5人的教师姓名。
SELECT TNAME
FROM TEACHER WHERE
(4)
(SELECT X.TNO FROM COURSE X,COURSE Y
WHERE (5)
(6)
(7)
)
事务是数据库执行的基本单位,如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这就是保持数据库处于 (8) 状态。

查看答案
微信公众账号搜索答案