题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C代码(代码13-4),将应填入(n)处的字句写在对应栏内。 【说明】在一公文处理系统中,开

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

【说明】

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

【代码13-4】

include<stdio.h>

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

typedef void((1) )(struc OffieeDoc*, struct DoeExplorer*)I;

struct DocExplorer{

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

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

};

struet OffieeDoc{

(2) myObs[OBS_MAXNUM];

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

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

};

void attaeh(struct OfficeDoc*doc, struct DocExplorer*ob){

/*关联Observer结构ob与OffieeDoe结构doe*/

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[doe->index]=ob;

doc->index++;

}

void detaeh(struct OfficeDoc*doc, struct DocExplorer*ob){

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

int loop;

if(ob==NULL)return;

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

if(doe->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 OfficeDoe*doe, struct DoeExplorer *ob){

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

} void update2(struct OffieeDoc*doc,struet 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 main(){

struct OfficeDoc doc; /*定义一了OfficeDoe变量*/

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); /*通知与OfficeDoe相关的所有DoeExploer变量*/

return;

}

提问人:网友beinuo0501 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“阅读以下说明和C代码(代码13-4),将应填入(n)处的字句…”相关的问题
第1题
阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列阅
读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(); //调用 quicksort 对数组 arr[ ]进行排序 for(i=0; i

点击查看答案
第2题
阅读以下说明和Java代码,请回答问题1和问题2。【说明】 己知类Stock和类cxyjava都定义在cxyjava.jav
阅读以下说明和Java代码,请回答问题1和问题2。 【说明】 己知类Stock和类cxyjava都定义在cxyjava.java文件中,类Stock的定义中第14行前共有四行出现了错误,将下面代码修改正确并完善后的输出结果为: 0:0 1:23 【Java代码】 01
阅读以下说明和Java代码,请回答问题1和问题2。【说明】 己知类Stock和类cxyjava都定义在cxyjava.jav

阅读以下说明和Java代码,请回答问题1和问题2。 【说明】 己知类Stock和类cxyjava都定义在cxyjava.java文件中,类Stock的定义中第14行前共有四行出现了错误,将下面代码修改正确并完善后的输出结果为: 0:0 1:23 【Java代码】 01

点击查看答案
第3题
() 阅读下列说明和JAVA代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中外

() 阅读下列说明和JAVA代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展中外中学生野外生存夏令营活动,由于中外学生的语言障碍,随队为外籍学员配置一名翻译。以下代码采用适配器(Adapter)模式模拟翻译适配器。其类图如下:() 阅读下列说明和JAVA代码,将应填入空(n)处的字句写在答题纸的对应栏内。【说明】 某中学开展

点击查看答案
第4题
阅读以下说明和Java代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。

【说明】某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。【Java代码】

阅读以下说明和Java代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。	【说明】某数据

点击查看答案
第5题
阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在对应栏内。【说明】 以下代码实现了当用户

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

【说明】

以下代码实现了当用户退出界面时,判断TextEdit中的文字是否发生改变,弹出对话框判断,让用户选择是否保存文件或取消退出界面操作。阅读下面的代码,将其补充完整。

【代码7-1】

Begin VB.Form. Forml

//...窗体描述(略)

Begin VB.TextBox TextEdit

Height = 1830

Left = 180

Tablndex = 0

Text = "TextEdit"

Top = 360

Width = 3885

End

//...窗体描述(略)

End

【代码7-2】

Dim txtchange As Boolean

Dim myval As String

Private Sub Form. Load ()

TextEdit.Text: "CIU, 中国软考联盟!"

txtchange = False

End Sub

【代码7-3】

Private Sub TextEdit_Change ()

Static notchange As Boolean

(1)

notchange = Tree

End Sub

Private Sub Form_Unload (Cancel As Integer )

Dim myval As String

If (2) Then

myval = MsgBox ("保存文件的更改吗?", vbYesNoCancel, "提示信息" )

If (3) Then

MsgBox "保存成功"

End

End If

If (4) Then End

If (5) Then Cancel = 1

End If

End Sub

点击查看答案
第6题
阅读以下说明和Java代码,回答问题1和问题2,将解答填写在对应栏内。【Java代码】 class usethread im

阅读以下说明和Java代码,回答问题1和问题2,将解答填写在对应栏内。

【Java代码】

class usethread implements (1) {

int num

usethread(int n){

num=n;

}

public void (2) {

for(int i=0;i<3;i++)

System.out.println("running:"+num);

System.out.println("finished:"+num);

}

public class multhread{

public static void main(String args[]) (3) InterruptedException{

Thread m1=new Thread(new usethread(1));

Thread m2=new Thread(new usethread(2));

m1.start();

m2.start();

m1.join();

m2.join();

}

}

【问题1】

补充完整上面Java代码中(n)处。

【问题2】

写出上面Java代码运行的结果。

点击查看答案
第7题
阅读以下说明和C语言代码,回答问题1至问题5,将解答填入答题纸的对应栏内。[说明] 在实模式存储管

阅读以下说明和C语言代码,回答问题1至问题5,将解答填入答题纸的对应栏内。

[说明]

在实模式存储管理方案下,嵌入式系统的内存地址空间的布局一般可以分为五个段:代码段(text)、数据段(data)、bss段(bss)、堆(heap)和栈(stack)。

图16-4为一段例程。

1: include

2: unsigned char gvCh;

3: unsigned short gvShort;

4: unsigned int gvInt = 0x12345678;

5: unsigned long gvLong = 0x87654321;

6: void main(void)

7: {

8: unsigned char array[lO],*p;

9: p = malloc(lO*sizeof(char));

10: while (1);

代码段、数据段和bss段的大小是在什么时候确定的?

点击查看答案
第8题
阅读以下说明和C++代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。

某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。【C++代码】

阅读以下说明和C++代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。	某数据文件stu

点击查看答案
第9题
阅读以下说明和JAVA 2代码,将应填入(n)处的字句写在对应栏内。 [说明] 以下程序为类类型的变量应

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

[说明]

以下程序为类类型的变量应用实例,通过异常处理检验了类CCircle的变量的合法性,即参数半径应为非负值。仔细阅读代码和相关注释,将程序补充完整。

[JAVA代码]

//定义自己的异常类

class CCircleException extends Exception

{

}

// 定义类 CCircle

class CCircle

{

private double radius;

public void setRadius (double r ) (1)

{

if (r<0 ) {

(2)

}

else

(3)

}

Public void show () {

System. out. println ("area="+3.14*radius*radius );

}

}

public class ciusample

{

public static void main (String args[] )

{

CCircle cir=new CCircle();

(4) {

cir. setRadius (-2.0 )

}

(5)

{

System. out. println (e+" throwed" ) ;

}

cir. show() ;

}

}

点击查看答案
第10题
阅读以下说明和C++代码,填入(n)处。[说明] 以下C++代码使用虚函数实现了同一基类shape派生出来的C

阅读以下说明和C++代码,填入(n)处。

[说明]

以下C++代码使用虚函数实现了同一基类shape派生出来的Class rectangle、Class triangle、Class circle实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将(n)处语句补充完整。

[代码5-1]

include<iostream.h>

define PI 3.14159

class shape {//基类

protected:

(1);

public:

(2);

(3);

};

[代码5-2]

class rectangle: public shape {

public:

rectangle (int x2,int y2,int r2): (4) {};

double area () {return x*y; };

};

class circle: public shape {

public:

circle (int x3,int y3,int r3):(5){};

double area () {return r*r*PI; };

};

[代码5-3]

void main ()

{

rectangle r (10,20,0);

circle c (0,0,30);

shape (6);

cout<<"长方形面积="<<s1->area () <<endl;

cout<<"圆形面积="<<s2->area () <<endl;

}

[运行结果]

长方形面积=200

圆形面积=2827.43

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信