欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    历年软件设计师考试C++题集.docx

    • 资源ID:11501974       资源大小:1.31MB        全文页数:52页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    历年软件设计师考试C++题集.docx

    1、历年软件设计师考试C+题集历年软件设计师考试C+题集2010下半年试题参考答案:2010上半年试题试题五阅读下列说明和C+弋码,将应填入 (n) 处的字句写在对应栏内。 说明 某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。 表5-1 飞机种类起飞特征飞行特征直升机(Helicopter)垂直起飞(VerticalTakeOff)亚音速飞行(SubSonicFly)客机(AirPlane)长距离起飞(LongDistanceTakeOff)亚音速飞行(SubSonicFly)歼击机(Fighter)长距离起飞(L

    2、ongDistanceTakeOff)超音速飞行(SuperSonicFly)鹞式战斗机(Harrier)垂直起飞(VerticalTakeOff)超音速飞行(SuperSonicFly) 为支持将来模拟更多种类的飞机,采用策略设计模式(strategy)设计的类图如图5-1所示。 图5-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞

    3、行行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。 C+代码 #includeiostream using namespace std; class FlyBehaVior public: virtual void fly()=0; ; class SubSonicFly: public FlyBehaVior public: void fly()cout亚音速飞行!endl;) ; class SupersonicFly: pu

    4、blic FlyBehaVior public: void fly()cout超音速飞行!endl;) ; class TakeOffBehavior publie: virtual void takeOff()=0; ; class VerticalTakeOff: public TakeOffBehavior public: void takeOff()cout垂直起飞!endl ; class LongDistanceTakeOff: public TakeOffBehavior public: void takeOff()cout长距离起飞!endl; ; class AirCraft

    5、 protected: (1) ; (2) ; public: void fly() (3) ; void takeoff() (4) ; ; ; class Helicopter: public AirCraft public: Helicopter () flyBehavior=new (5) ; takeoffBehavior=new (6) ; (7) if(!flyBehaVior) delete flyBehaVior; if(!takeoffBehavior) delete takeoffBehaVior; ; /其他代码省略 参考答案:1.FlyBehavior *flyBeh

    6、avior2.TakeOffBehavjor *=takeOffBehavior3.flyBehavior-fly()4.takeOffBehavior-takeOff()5.SubSonicFly()6.VerticalTakeOff()7.Helicopter()2009上半年试题阅读下列说明和C+代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 说明 现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如下图所示: C+代码 #includelist #includeiostream #includestring using namespace std;

    7、 class AbstractFile protected: string name; /文件或目录名称 public: void printName()coutname; /打印文件或目录名称 virtual void addChild(AbstractFile *file)=0; /给一个目录增加子目录或文件 virtual void removeChild(AbstractFile*file)=0; /删除一个目录的子目录或文件 virtual listAbstractFile*getChildren()=0; /获得一个目录的子目录或文件 ; class File:publiC Abs

    8、tractFile public: File(string name) (1) =name; void addChild(AbstractFile *file) return; void removeChild(AbstractFile*file) return; (2) getChildren() return (3) ; ; class Folder:public AbstractFile private: listAbstractFile*childList; /存储子目录或文件 public: Folder(string name) (4) =name; void addChild(A

    9、bstractFile*file)childList.push_back(file); void removeChild(AbstractFile*file) childList.remove(file); listAbstractFile*getChildren()return (5) ; ; void main() /构造一个树形的文件/目录结构 AbstractFile*rootFolder=new Folder(c:); AbstractFile*compositeFolder=new Folder(compositel); AbstractFile*windowsFolder=new

    10、 Folder(windows); AbstractFile*file=new File(TestComposite.java); rootFolder-addChild(compositeFolder); rootFolder-addChild(windowsFolder); compositeFolder-addChild(file); 参考答案:1.this-name2.listAbstractFile*3.NULL4.this-name5.&childList2009下半年试题试题六阅读下列说明和C+代码,将应填入 (n) 处的字句写在的对应栏内。1.说明 现欲实现一个图像浏览系统,要

    11、求该系统能够显示BMP、3PEG和GIF三种格式的文件,并且能够在Windows和Linux两种操作系统上运行。系统首先将BMP、JPEG和 GIF三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计,所得类图如下图所示。 采用该设计模式的原因在于:系统解析BMP、GIF与JPEG文件的代码仅与文件格式相关,而在屏幕上显示像素矩阵的代码则仅与操作系统相关。 C+代码 class Matrix / 各种格式的文件最终都被转化为像素矩阵 / 此处代码省略 ; c

    12、lass Imagelmp public: virtual void doPaint (Matrix m)=0; / 显示像素矩阵m ; class WinImp :public ImageImp public: void doPaint (Matrix m) /*调用Windows系统的绘制函数绘制像素矩阵*/) ; class LinuxImp : public ImageImp public: void doPaint(Matrix m) /*调用 Linux系统的绘制函数绘制像素矩阵*/ ; class Image public: void set Imp (Image Imp *im

    13、p) (1) = imp; virtual void parse File(string file Name)=0; protected: (2) *imp; ; class BMP : public Image public: void parse File(string file Name) / 此处解析BMP文件并获得一个像素矩阵对象m (3) ;/ 显示像素矩阵m ; class GIF : public Image / 此处代码省略 ; class JPEG : public Image / 此处代码省略 ; void main() /在Windows操作系统上查看demo. bmp

    14、图像文件 Image *imagel = (4) ; ImageImp *imageImpl = (5) ; (6) ; imagel-parseFile(demo.bmp); 现假设该系统需要支持10种格式的图像文件和5种操作系统,不考虑类Matrix,若采用桥接设计模式则至少需要设计 (7) 个类。参考答案:(1)this-imp (2)ImageImp (3)imp-doPaint(m) (4)new BMP() (5)new WinImp() (6)imagel-setImp(imageImpl) (7)172008下半年试题试题六 阅读下列说明和C+代码,将应填入 (n) 处的字句写

    15、在对应栏内。1.【说明】 已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如下图所示。其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。 当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如上图中的类MyApplication和类MyDocument,并分别实现Application和 Document类中的某

    16、些方法。 已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示: 1首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回; 2创建文档对象; 3通过文档对象打开文档; 4通过文档对象读取文档信息; 5将文档对象加入到Application的文档对象集合中。【C+代码】 #includeiostream #includevector using namespace std; class Document public: void save()/*存储文档数据,此处代码省略*/)

    17、 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)

    18、 /*将文档对象添加到文档对象集合中*/ 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)doCreateDocumen

    19、t() (6)adoc-open(docName)(7)adoc-read(docName) (8)addDocument(adoc)2008上半年试题试题六 阅读下列说明和C+代码,将应填入 (n) 处的字句写在对应栏内。1.【说明】 已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器如左下所示。该遥控器共有4个按钮,编号分别是0至3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如右

    20、下所示。 右上图中,类RomoteController的方法onPressButton(int button)表示当遥控器按键按下时调用的方法,参数为按键的编号;Command接口中on和off方法分别用于控制电器的开与关;Light中turnLight(int degree)方法用于调整电灯灯光的强弱,参数 degree值为0时表示关灯,值为100时表示开灯并且将灯光亮度调整到最大;TV中 setChannel(int channel)方法表示设置电视播放的频道,参数channel值为0时表示关闭电视,为1时表示开机并将频道切换为第1频道。【C+代码】class Light /电灯类publ

    21、ic: void trunLight(int degree)/调整灯光亮度,0表示关灯,100表示亮度最大);class TV/电视机类public:vold setChannel(int channel/调整电视频道,0表示关机,1表示开机并切换到1频道;class Command/抽象命令类public: virtual void on()=0; virtual void off()=0;class RemoteController /遥控器类protected: Command* commands 4;/遥控器有4个按钮,按照编号分别对应4个Command对象public: void o

    22、nPressButton(int button) /按钮被按下时执行命令对象中的命令 if(button % 2=0)commandsbutton-on(); else commandsbutton-off(); void setCommand(int button,Command* command) (1) =command;/设置每个按钮对应的命令对象;class LightCommand:public Command /电灯命令类protected: Light* light; /指向要控制的电灯对象public: void On()light-trunLight(100);); voi

    23、d off()light- (2) ;); LightCommand(Light * light)this-light=light;);class TVCommand:public Command/电视机命令类protected: TV*tv; /指向要控制的电视机对象public: void on()tv- (3) ; void off()tv-setChannel(0);); TVCommand(TV *tv)this-tv=tv;);void main() Light light; TV tv;/创建电灯和电视对象 LightCommand lightCommand (&light);

    24、TVCommand tVCommand(&tv); RemoteController remoteController; remoteController. setCommand(0, (4) ); /设置按钮0的命令对象 /此处省略设置按钮1、按钮2和按钮3的命令对象代码 本题中,应用命令模式能够有效让类 (5) 和类 (6) 、类 (7) 之间的耦合性降至最小。参考答案:(1)commandsbutton (2)trunLight(0) (3)setChaunel(1) (4)&lightCommand (5)RemoteController (6)Light (7)TV2007下半年试题

    25、试题六阅读下列说明和C+代码,将应填入 (n) 处的字句写在对应栏内。1. 【说明】 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。 采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图6-1所示。 【C+代码】#include string#include iostreamusing namespace std;class PurchaseRequest public: double Amount; /*一个采购的金额*/ int Number; /*采购单编号*/ string Purpose; /*采购目的*/;class Approver /*审批者类*/public: Approver() successor = NULL; virtual void ProcessRequest(PurchaseRequest aRequest) if (successor != NULL) successor- (1) ; void SetSuc


    注意事项

    本文(历年软件设计师考试C++题集.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开