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

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
历年软件设计师考试C题集

2010下半年试题 参考答案: 2010上半年试题 试题五 阅读下列说明和C++弋码,将应填入 ?(n) ?处的字句写在对应栏内。 ? ?[说明] ? ?某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。 ? ?                               表5-1 飞机种类 起飞特征 飞行特征 直升机(Helicopter) 垂直起飞(VerticalTakeOff) 亚音速飞行(SubSonicFly) 客机(AirPlane) 长距离起飞(LongDistanceTakeOff) 亚音速飞行(SubSonicFly) 歼击机(Fighter) 长距离起飞(LongDistanceTakeOff) 超音速飞行(SuperSonicFly) 鹞式战斗机(Harrier) 垂直起飞(VerticalTakeOff) 超音速飞行(SuperSonicFly) ? ?为支持将来模拟更多种类的飞机,采用策略设计模式(strategy)设计的类图如图5-1所示。 ? ?图5-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。 ? ? ? ?[C++代码] ? ?#include<iostream> ? ?using namespace std; ? ?class ?FlyBehaVior ?{ ? ?public: virtual void fly()=0; ? ?}; ? ?class ?SubSonicFly: public FlyBehaVior{ ? ?public: void fly(){cout<<亚音速飞行!<<endl;) ? ?}; ? ?class ?SupersonicFly: public 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{ ? ?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; ? ?} ? ?}; ? ?//其他代码省略 参考答案: FlyBehavior *flyBehavior TakeOffBehavjor *=takeOffBehavior flyBehavior->fly()takeOffBehavior->takeOff()SubSonicFly() VerticalTakeOff() ~Helicopter()阅读下列说明和C代码,将应填入 ?(n) ?处的字句写在答题纸的对应栏内。 ? ?[说明] ? ?现欲构造一文

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档