未分类题

读下列说明和Java代码,将应填入(n)处的字句写在对应栏内。
【说明】
已知某类库开发商捉供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示,其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。

当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如上图中的类MyApplication和类MyDocument,并分别实现Application和 Document类中的某些方法。
已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示:
1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回;
2.创建文档对象;
3.通过文档对象打开文档;
4.通过文档对象读取文档信息;
5.将文档对象加入到Application的文档对象集合中。
【Java代码】
abstract class Document{
public void save(){/*存储文档数据,此处代码省略*/ )
public void open(String docName){ /*打开文档,此处代码省略*/)
public void close(){ /*关闭文档,此处代码省略*/)
public abstract void read(String docName);
};
abstract class Appplication{
private Vector<(1)> docs; /*文档对象集合*/
public boolean canOpenDocument(String docName){
/*判断是否可以打开指定文档,返回真值时表示可以打开,
返回假值表示不可打开,此处代码省略*/
}
public void addDocument(Document aDocument){
/*将文档对象添加到文档对象集合中*/
docs.add((2));
}
public abstract Document doCreateDocument();/*创建一个文档对象*/
public void openDocument(String docName){/*打开文档*/
if ((3)) {
System.out.println(“文档无法打开!”);
return;
}
(4) adoc=(5);
(6);
(7);
(8);
}
};

A.shangxueba.cn/images/ct_csrmsdsz200802_crmsdxprogx_00017(20094).jpg'
B.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回;
C.创建文档对象;
D.通过文档对象打开文档;
E.通过文档对象读取文档信息;
F.将文档对象加入到Application的文档对象集合中。
【Java代码】
G.add((2));
H.out.println(“文档无法打开!”);


【参考答案】

(1)Document (2)aDocument (3)!canOpenDocument(docName) (4)Doc......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

未分类题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】设计希赛IT教育研发中心的工资管理系统,该中心主要有3类人员:经理、销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资计算办法是:经理拿固定月薪8000元;销售员拿固定工资1000元,然后再按当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成,固定月工资为5000元,销售提成为所管辖部门当月销售总额的5‰。按要求设计一个基类employee,销售员类salesman,经理类manager,销售经理类 salesmanager。程序5-1是类employee的模块内容,程序5-2是类salesman的类模块内容,程序5-3是类manager的模块内容,程序5-4是类salesmanager的模块内容。在主测试程序中,输入张三所管部门月销售量10000后的输出结果如下:张三所管部门月销售量:10000销售经理:张三编号:1001本月工资:5050include <iostream.h>include <string.h>class employee{protected:int no;char *name;float salary;public:employee(int num,char *ch){ no=num;name=ch;salary=0; }virtual void pay()=0;virtual void display(){ cout<<'编号:'<<no<<endl;cout<<'本月工资:'<<salary<<endl; }};【程序5-2】class salesman: (1){protected:float commrate, sales;public:salesman(int num,char *ch):employee(num,ch){ commrate=0.04; }void pay(){ cout<<name<<'本月销售额:';cin>>saies;salary=sales*commrate+1000; }void display(){ cout<<'销售员:'<<name<<endl;employee::display(); }};【程序5-3】class manager: (1){protected:float monthpay;public:manager(int num,char *ch):employee(num,ch){ monthpay=8000; }void pay(){ salary=monthpay; }void display(){ cout<<'经理:'<<name<<endl;employee::display(); }};【程序5-4】class salesmanager: (2){public:salesmanager(int num,char *ch): (3){ monthpay=5000;commrate=0.005;}void pay(){ cout<<name<<'所管部门月销售量:';cin>>sales;(4) }void display(){ cout<<'销售经理:'<<name<<endl;(5) }};void main() 主测试函数{ salesmanager p1 (1001,'张三');p1.pay();p1.display();}