欢迎来到天天文库
浏览记录
ID:43566965
大小:481.34 KB
页数:9页
时间:2019-10-11
《计算机水平考试-中级软件设计师下午试题分类模拟16》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、中级软件设计师下午试题分类模拟16试题一阅读下列说明和C++代码,填入横线处的字句。1>[说明]现欲构造一文件/目录树,采用组合(Composite)设计模式來设计,得到的类图如下图所示。类图[C++程序]#include#include#includeusingnamespacestd;elassAbstractFile{protected:stringname;//文件或目录名称public:voidprintName(){cout<2、)=0;//给——个目录增力口子目录或文件virtualvoidremovechild(AbstractFile*file)=0;//册0除一个目录白勺了目录或//文件virtuallist*getChildren()=0;//获得一个目录B勺子目录或文件};classfile:publicAbstractFile{public:File(stringname){=name;}voidaddChild(AbstractFile*file){return;}voidremovechild(AbstractFile*file){return;}getChildren3、(){return;}r;classFolder:publicAbstractFile{private:listchildList://存储子口录或文件public:Folder(stringname){=name;voidaddChild(AbstractFile*file){childList・pushback(file);voidremovechild(AbstractFile*file){childList.remove(file);;list*getChildren(){return;}};voidmain(){//构造一个4、树形的文件/目录结构TkbstractFile*rootFolder=newFolder(nC:\H);TkbstractFile*compositeFolder=newFolder(ncompositen);TkbstractFile*windowsFolder=newFolder(nwindowsf,);2kbstractFile*file=newFile(nTestCompositejavan);rootFolder-^addChiId(compositeFolder);rootFolder-^addChiId(windowsFolder);compositeFolder-^addCh5、iId(file);试题二阅读下列说明和C++代码,填入横线处的字句。2、[说明]现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并1L能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具冇较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计,所得类图如下图所示。ImageImagehn+doPain类图采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而6、在屏幕上显示像素矩阵的代码则仅与操作系统和关。[C++程序]classMatzirix{//各种格式的文件最终都被转化为像素矩阵//此处代码省略};classImageImp{public:virtualvoiddoPaint(Matrixm)=0;//显示像索矢巨卩车m};classWinimp:publicImageImp{public:voiddoPaint(Matrixm){/*调用Windows系统的绘制函数绘制像索矩阵★/}};classLinuxlmp:publicImageImp{public:voiddoPaint(Matrixm){八调用Linux系统的绘制函数绘制像素矩阵7、*/}};classImage{publie:voidsetimp(ImageImp*imp){=imp;}virtualvoidparseFile(stringfileName)=0;protected:*imp;TclassBMP:publicImagepublic:voidparseFile(StringfileName){//此处解析BMP文件并获得一个像素矩阵对彖m;//显示像素矩阵mc
2、)=0;//给——个目录增力口子目录或文件virtualvoidremovechild(AbstractFile*file)=0;//册0除一个目录白勺了目录或//文件virtuallist*getChildren()=0;//获得一个目录B勺子目录或文件};classfile:publicAbstractFile{public:File(stringname){=name;}voidaddChild(AbstractFile*file){return;}voidremovechild(AbstractFile*file){return;}getChildren
3、(){return;}r;classFolder:publicAbstractFile{private:listchildList://存储子口录或文件public:Folder(stringname){=name;voidaddChild(AbstractFile*file){childList・pushback(file);voidremovechild(AbstractFile*file){childList.remove(file);;list*getChildren(){return;}};voidmain(){//构造一个
4、树形的文件/目录结构TkbstractFile*rootFolder=newFolder(nC:\H);TkbstractFile*compositeFolder=newFolder(ncompositen);TkbstractFile*windowsFolder=newFolder(nwindowsf,);2kbstractFile*file=newFile(nTestCompositejavan);rootFolder-^addChiId(compositeFolder);rootFolder-^addChiId(windowsFolder);compositeFolder-^addCh
5、iId(file);试题二阅读下列说明和C++代码,填入横线处的字句。2、[说明]现欲实现一个图像浏览系统,要求该系统能够显示BMP、JPEG和GIF三种格式的文件,并1L能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具冇较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计,所得类图如下图所示。ImageImagehn+doPain类图采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而
6、在屏幕上显示像素矩阵的代码则仅与操作系统和关。[C++程序]classMatzirix{//各种格式的文件最终都被转化为像素矩阵//此处代码省略};classImageImp{public:virtualvoiddoPaint(Matrixm)=0;//显示像索矢巨卩车m};classWinimp:publicImageImp{public:voiddoPaint(Matrixm){/*调用Windows系统的绘制函数绘制像索矩阵★/}};classLinuxlmp:publicImageImp{public:voiddoPaint(Matrixm){八调用Linux系统的绘制函数绘制像素矩阵
7、*/}};classImage{publie:voidsetimp(ImageImp*imp){=imp;}virtualvoidparseFile(stringfileName)=0;protected:*imp;TclassBMP:publicImagepublic:voidparseFile(StringfileName){//此处解析BMP文件并获得一个像素矩阵对彖m;//显示像素矩阵mc
此文档下载收益归作者所有