首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如6—7所示: 【c++代码】 #include #include #include
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如6—7所示: 【c++代码】 #include #include #include
admin
2010-05-08
65
问题
阅读下列说明和c++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如6—7所示:
【c++代码】
#include<1ist>
#include
#include
using namespace std;
class AbstractFile{
protected:
string name;//文件或目录名称
public:
void printName(){cout<
virtual void addChild(AbstractFile*file)=0 ; //给一个目录增加子目录或文件
virtual void removeChild(AbstractFile*file)=O; //删除一个目录的子目录或文件
virtual list
*getChildren()=0; //获得一个目录的子目录或文件
};
class File:public AbstractFile{
public:
File(string name){ (1) =name;)
void addChild(AbstractFile*file){return ;)
void removeChiid(AbstractFile*file){return;}(2) getChildren(){return ( 3 ) ;}
};
class Folder:public AbstractFile{
private:
list
childList; //存储子目录或文件
public:
Folder(string name){ (4) =name;}
void addChild(AbstractFile*file){childList.push back(file);}
void removeChiid(AbstractFile*file)(chiidList.remove(file);}
list
*getChildren(){return (5) ;)
};
voidmain(){
//构造一个树形的文件/目录结构
AbstractFile*rootFolder=new Folder(“C:\\”);
AbstractFile*compositeFolder=flew Folder(”composite”);
AbstractFile*windowsFolder=new Folder(”windows”);
AbstractFile*file=new File(”TestComposite.java”);
rootFolder->addChild(compositeFolder);
rootFolder->addChild (windowsFolder);
compositeFolder->addChiid(file);
)
选项
答案
(1)this一>name(2)list
*(3)NULL(4)this->name(5)&childList
解析
Composite模式定义:将对象以树型结构组织起来,以达成“部分一整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。AbstractFile为一个抽象文件类,其作用主要是实现对文件或者文件夹的抽象。文件类File继承自AbstractFile。File(stringname)为File类的一个属性,用于获取文件名称。Addchild方法用来给一个目录增加子目录或文件。Removechild方法用于删除一个目录的子目录或文件。Getchildren方法用于获取一个目录或文件,所以返回值类型应该是一个列表形式的AbstractFile,但文件本身不包括子目录,故返回NULL。Fold类表示一个文件夹,属性Fold.er用于获取文件夹名称,Getchildren方法返回值应为List型的AbstractFile对象指针。
转载请注明原文地址:https://kaotiyun.com/show/kSDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
假设某公司营销系统有营销点关系S(营销点,负责人姓名,联系方式)、商品关系P(商品名,条形码,型号,产地,数量,价格),其中,营销点唯一标识S中的每一个元组。每个营销点可以销售多种商品,每一种商品可以由不同的营销点销售。关系S和P的主键分别为(15),S
国标16260中,在描述外部(内部)效率度量时,给出了若干针对计算机系统时间消耗的定义,以下描述项中正确的有(31)。①响应时间是指从按下传送键到得到结果为止所需要的时间。②处理时间是指从接受一个消息到送出它的结果之间计算机的历时时间。③周转时间是指
为说明某一问题,在学术论文中需要引用某些资料。以下叙述中,()是不正确的。
某系统中有一个中央数据存储,模块A负责接收新来的数据并修改中央数据存储中的数据,模块B负责访问中央数据存储中的数据,则这两个模块之间的耦合类型为________________。若将这两个模块及中央数据合并成一个模块,则该模块的内聚类型为_________
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最少时间为________________天。活动FG的松弛时间为________________天。
系统交付后,修改偶尔会出现乱码的问题,该行为属于________________维护。
可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))-d”,由于________________,因此可判断
在一个完整的功能测试过程中,______不属于应该编写的测试文档。A.测试需求文档B.测试用例文档C.测试标准D.问题报告单
在各种不同的软件需求中,()描述了产品必须要完成的任务,可以在用例模型中予以说明。
下面为C语言程序,边界值问题可以定位在(45)。 int data(3), int i, for(i=1, i<=3, i++)data(i)=100
随机试题
肾小球疾病的临床表现有
进行阴极保护时,使金属腐蚀过程停止,金属所必须达到的电位称为()。
目多见于
下列可用于饮片初步粉碎的是
关节活动范围评定中,精确度最高的仪器是
下列说法中正确的是()。代理人隐瞒无权代理这一事实而与相对人进行磋商,应承担()责任。
以下属于银行金融机构的是()。
Gotochurch,thenhaveabiglunch,thengoouttoplaywhilemumdoesthehousework.ThatwasatypicalBritishSundayinthe
运动经验只是加速或提前了心理发展,持这种观点的是()
_______theseobjections,wecannotignoretheadvantagesoflearningthroughtheInternet.
最新回复
(
0
)