首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在对应栏内。 【说明】 已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示。其中,Application类表示应用程序自身,而Docum
阅读下列说明和C++代码,将应填入(n)处的字句写在对应栏内。 【说明】 已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示。其中,Application类表示应用程序自身,而Docum
admin
2009-02-01
80
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在对应栏内。
【说明】
已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示。其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。
当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如上图中的类MyApplication和类MyDocument,并分别实现Application和 Document类中的某些方法。
已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示:
1.首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回;
2.创建文档对象;
3.通过文档对象打开文档;
4.通过文档对象读取文档信息;
5.将文档对象加入到Application的文档对象集合中。
【C++代码】
#include<iostream>
#include<vector>
using namespace std;
class Document{
public:
void save(){/*存储文档数据,此处代码省略*/)
void open(string docName){ /*打开文档,此处代码省略*/)
void close(){ /*关闭文档,此处代码省略*/)
virtual void read(string docName) =0;
};
class Appplication{
private:
vector<(1)> docs; /*文档对象集合*/
public:
bool canOpenDocument(string docName){
/*判断是否可以打开指定文档,返回真值时表示可以打开,
返回假值表示不可打开,此处代码省略*/
}
void addDocument(Document * aDocument){
/*将文档对象添加到文档对象集合中*/
docs.push_back((2));
}
virtual Document * doCreateDocument()=0;/*创建一个文档对象*/
void openDocument(string docName){/*打开文档*/
if ((3)){
cout<<“文档无法打开!”<<endl;
return;
}
(4) adoc=(5);
(6);
(7);
(8);
}
};
选项
答案
(1)Document* (2)aDocument (3)!canOpenDocument(docName) (4)Document* (5)doCreateDocument() (6)adoc->open(docName) (7)adoc->read(docName) (8)addDocument(adoc)
解析
本题考查了C++语言的应用能力和模板方法设计模式。空(1)考查了C++标准库中Vector模板类的使用,由于Vector模板类可以存储任意类型,在定义时需要指定其存储类型,根据后面的代码,能够加入到该文档集合对象中的元素是各个文档的指针,因此空(1)处的类型应该为文档指针类型。空(2)处将文档指针加入文档集合对象中。从空(3)开始的代码属于图中Application类的OpenDocument方法,该方法是模板方法,因此,需根据题目给出的步骤一一对应填空。空(3)处判断能否打开文档,需要调用父类自己的方法canOpenDocument。其次需要创建文档对象,调用doCreateDocument方法,接着通过文档对象打开和读取文档,最后通过addDocument方法将该文档对象加入到文档对象集合中。所有这些方法都是在父类或文档对象中进行定义,不涉及到具体的子类,子类负责要实现这些模板方法中需要调用的方法以便运行时被调用。
转载请注明原文地址:https://kaotiyun.com/show/85DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。while(MaxNum-->0){if(10==Type)x=y*2;elseif(100==Type)
若关系R、S如下图所示,则R与S自然连接后的属性列数和元组个数分别为(28);π1,4(σ3=6(R×S))=(29)。
风险分析在软件项目开发中具有重要作用,包括风险识别、风险预测、风险评估和风险控制等。“建立风险条目检查表”是(18)时的活动,“描述风险的结果”是(19)时的活动。
负载压力性能测试需求分析时,应该选择(63)类型的业务作为测试案例。 ①高吞吐量的业务 ②业务逻辑复杂的业务 ③高商业风险的业务 ④高服务器负载的业务 ⑤批处理的业务
对于提升磁盘I/O性能问题,以下表述正确的是(58)。
对软件可靠性的理解,正确的是(45)。①软件可靠性是指在指定条件下使用时,软件产品维持规定的性能级别的能力②软件可靠性的种种局限是由于随着时间的推移,软件需求和使用方式发生了变化③软件可靠性包括成熟性、有效性、容错性、易恢复性
一个软件系统的生存周期包含可行性分析和项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试和维护等活动,其中(18)是软件工程的技术核心,其任务是确定如何实现软件系统。
以下关于白盒测试和黑盒测试的理解,正确是______。A.白盒测试通过对程序内部结构的分析、检测来寻找问题B.白盒测试通过一些表征性的现象、事件、标志来判断内部的运行状态C.单元测试可应用白盒测试方法,集成测试则采用黑盒测试方法D.在软件生命周期各
在C程序中,若表达式中的算术运算对象的类型不同,则需要先统一为相同类型后再进行计算。例如,表达式“a-b”中,若a是双精度浮点型变量,b是整型变量,为了尽可能保证运算精度,通常进行的处理是______。
函数f()、g()的定义如下所示,已知调用f时传递给其形参x的值是10,若以传值方式调用g,则函数f的返回值为__________。
随机试题
临床检验基础学的主要研究对象是
我国民族自治地方的自治权包括()
设某城市房地产交易中卖方、买方应缴纳的税费分别为正常成交价格的6%和3%。现某宗房地产的正常成交价格为2500元/m2,则卖方出售其房地产实得收入为2350元/m2,买方购买该房地产实际付出为2575元/m2。()
在Windows中,启动应用程序的方法只有一种。()
个人生命周期中维持期的主要理财活动是()。
甲企业为增值税一般纳税人,适用的增值税税率为17%,因保管车辆的需要,2017年1月该企业决定采用自营方式建造一栋车库。相关资料如下:(1)2017年1月至6月,购入车库工程物资100万元,增值税17万元;发生运输费用5万元,增值税0.55万元;全部
邓小平在探索中国特色社会主义道路中,虽然没有明确提出“可持续发展战略”,但却包含着丰富的可持续发展的思想。他强调,促进我国经济和社会可持续发展,必须在保持经济增长的同时()。
(1)父母责备(2)留校打球(3)爬树翻墙(4)校门关闭(5)一瘸一拐
在某国,每年有比例为p的农村居民移居城镇,有比例为g的城镇居民移居农村。假设该国总人口数不变,且上述人口迁移的规律也不变。把凡年后农村人口和城镇人口占总人口的比例依次记为xn和yn(xn+yn=1)。设目前农村人口与城镇人口相等,即[*]。
设f(x,y)=,x>0,y>0,求
最新回复
(
0
)