题目详情
当前位置:首页 > 计算机考试 > 中级软件设计师
题目详情:
发布时间:2023-12-09 05:42:33

[填空题]

阅读以下说明和Java代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
在一公文处理系统中,开发者定义了一个公文类OfficeDoc,其中定义了公文具有的属性和处理公文的相应方法。当公文类的内容或状态发生变化时,关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态。一个OfficeDoc对象能够关联一组DocExplorer对象。当OfficeDoc对象的内容或状态发生变化时,所有与之相关联的DocExplorer对象都将得到通知,这种应用被称为观察者模式。以下代码写在一个Java源文件中,能够正确编译通过。
[Java代码]
//Subject.java文件
public interface Subject
public void attach(Observer DocExplorer);
public void detach(Observer DocExplorer);
void notifyObservers( );
//Observer.Java文件
public interface Obsever(
void update( (1) );

//OfficeDoc.Java文件
import Java.util.*;
public class OfficeDoc implements Subject//OfficeDoc类实现Subject接口
private Vector ObserverVector=new Java.util.Vector( );
//存储与OfficeDoc相关联的DocExplorer对象
public void attach(Obsever observer)
//将某DocExplorer对象与OfficeDoc相关联
ObserverVector.addElement(observer);

publ

更多"阅读以下说明和Java代码,将应填入 (n) 处的字句写在对应栏内。 "的相关试题:

[填空题]

阅读以下说明和Java代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
在一公文处理系统中,开发者定义了一个公文类OfficeDoc,其中定义了公文具有的属性和处理公文的相应方法。当公文类的内容或状态发生变化时,关联此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态。一个OfficeDoc对象能够关联一组DocExplorer对象。当OfficeDoc对象的内容或状态发生变化时,所有与之相关联的DocExplorer对象都将得到通知,这种应用被称为观察者模式。以下代码写在一个Java源文件中,能够正确编译通过。
[Java代码]
//Subject.java文件
public interface Subject
public void attach(Observer DocExplorer);
public void detach(Observer DocExplorer);
void notifyObservers( );
//Observer.Java文件
public interface Obsever(
void update( (1) );

//OfficeDoc.Java文件
import Java.util.*;
public class OfficeDoc implements Subject//OfficeDoc类实现Subject接口
private Vector ObserverVector=new Java.util.Vector( );
//存储与OfficeDoc相关联的DocExplorer对象
public void attach(Obsever observer)
//将某DocExplorer对象与OfficeDoc相关联
ObserverVector.addElement(observer);

publ

[填空题]

阅读以下说明和C代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。
注意到单词列表中不存在组成字符完全相同的单词(如Hack12与Hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按ASCⅡ码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。
函数中使用的符号定义如下:
#define NumberofWords 1275//单词总数
#define MaxLength 10//最长单词所含字符数
char WordList[NumberofWords][MaxLength];//存储单词列表
int cmp(Node *q,Node *p);//q与p比较。p小,返回负值;P大返回正值:相等,返回0
typedef struct Node(//二叉树节点
char *eleLetters;//重组后的字符串
int index;//对应单词表中的下标
struct Node *lChiId,*rChiid;//左右子节点
Node;
[C代码]
void reCompose(Node *p,char *temp)
//重纰,亦即将temp字符串中的字符升序排序,存储于p节点中
//采用直接插入排序法

char c;
strcpy(p->eleLetters,temp);//
int len=strlen(tem

[填空题]阅读以下说明和C代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10k-1+c[k-1]×10k-2+…+c[2]×10+c[1],利用c[0]存储长整数m的位数,即c[0]=k。数组的每个元素只存储长整数m的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于9,这是就应该调用format将其归整,使数组中的每个元素始终只存储长整数的一位数字。
整数a和b(a>b)的组合数为:[*],其中u1=a,u2]=a-1,…,ub=a-b+1,d1=1,d2=2,…,db=b。为了计算上述分式,先从u1,u2,…,ub中去掉d1×d2×…×db的因子,得到新的u1,u2,…,ub,然后再将它们相乘。
[函数]
#define NAXN 100
int gcd(int a,int b)//求两个整数a和b的最大公因子

if(a<b)
intC=a;a=b;b=c;

for(inti=b;i>=2;i--)
if( (1) )return i;

return 1;
void format(int *a)//将长整数数组归整

int i;
for(i=1;i<a[0]||a[i]>=10;i++)
if(i>=a[0]) (2)
a[i+1]+=a[i]/10;
a[i]=a[i]%10;


[填空题]阅读以下说明和Jrdva代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
在销售系统中常常需要打印销售票据,有时需要在一般的票据基础上打印脚注。这样就需要动态地添加一些额外的职责。如下展示了Decorator(修饰)模式。SalesOrder对象使用一个SalesTicket对象打印销售票据。图6-1显示了各个类间的关系。以下是Java语言实现,能够正确编译通过。
[图6-1]
[*]
[Java代码]
//Component.java文件
public (1) class Component
abstract publ ic void prtTicket( );

//salesTicket.java文件
public class SalesTicket extends Component
public void prtTicket( )
//Sales ticket printing code here
System.out.printin("SalesTicket");


//Decorator.java文件
publ ic abstract class Decorator extends Component
public void prtTicket( )
if(myComp!=null)myComp.prtTicket( );

private (2) myComp;
public Decorator(Component myC)
myComp=myC;


//Footer.java文件
public class Footer extends Decorator
public Footer(Component myC)
(3)

public void prtTicket( )
(4)

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

截图扫码使用小程序[完全免费查看答案]
请不要关闭本页面,支付完成后请点击【支付完成】按钮
  • 支付完成
  • 取消支付
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码