欢迎来到天天文库
浏览记录
ID:15653639
大小:677.84 KB
页数:17页
时间:2018-08-04
《计算机水平考试-软件设计师分类模拟题面向对象程序设计(二)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件设计师分类模拟题面向对象程序设计(二) 阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。 [说明] 某游戏公司现欲开发一款面向儿童的模游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表18-5所示。表18-5鸭子各类及其特征鸭子种类发声特征飞行特征外现特征灰鸭(MallaIdDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings)灰色羽毛红头鸭(RedHeadDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings)灰色羽毛、头部红色棉花鸭(
2、CottonDuck)不发声(QuackNoWay)不能飞行(FlyNoWay)白色橡皮鸭(RubberDuck)发出橡皮与空气摩擦声(Squeak)不能飞行(FlyNoWay)黑色橡皮颜色 为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图18-8所示。 其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly10、quack10和display10分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特
3、征;接NFlyBehavior与QuackBehavior分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下Java代码中的空缺。 [Java代码] 1 FlyBehavior{ publicvoidfly10; }; 2 QuackBehavior{ publicvoidquack10; }; class FlyWithWingsimple
4、ments FlyBehaVior{ publicvoidfly10(System.out.println("使用翅膀飞行!");} }; classFlyNoWayimplementsFlyBehaVior{ publicvoidfly10(System.out.println("不能飞行!");} }; class Quackimplements QuackBehavior{ publicvoidquack10(System.out.println("发出'嘎嘎'声!");} }; class Squeakimplements Quac
5、kBehavior{ publicvoidquack10(System.out.println("发出空气与橡皮摩擦声!");} }; class QuackNoWayimplements QuackBehaVior{ publicvoidquack10(System.out.println("不能发声!");} }; abstractclassDuck{ protectedFlyBehavior 3 ; protected QuackBehavior 4 ; publicvoidfly10( 5 ;} publicvoidquack10{
6、6 ;}; public 7 voiddisplay10; }; classRubberDuckextendsDuck{ public RubberDuck10{ flyBehavior=Fiew 8 ; quackBehavior=new 9 ; publicvoiddisplay10{/*此处省略显示橡皮鸭的代码*/} }; //其他代码省略 阅读下列说明和C++代码,将应填入 (n) 处的字句写在对应栏内。 [说明] 已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万
7、元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。 采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图18-9所示。 [C++代码] #include<string> #include<iostream> usingnamespacestd; classPurchaseRequest{ public: doubleAmount; //采购的金额 intNumber;
8、 //采购单编号 st
此文档下载收益归作者所有