中级软件设计师下午试题117_第1页
中级软件设计师下午试题117_第2页
中级软件设计师下午试题117_第3页
中级软件设计师下午试题117_第4页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中级软件设计师下午试题-117( 总分: 89.05 ,做题时间: 90 分钟 )一、试题一 ( 总题数: 1,分数: 15.00) 说明某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者的信息,从而快速地提供租赁服务。该系统具有以下功能:1登记房主信息。对于每名房主,系统需登记其姓名、住址和联系电话,并将这些信息写入房主信息文件。2登记房屋信息。所有在系统中登记的房屋都有一个唯一的识别号( 对于新增加的房屋,系统会自动为其分配一个识别号) 。除此之外,还需登记该房屋的地址、房型 ( 如平房、带阳台的楼房、独立式住宅等 ) 、最多能够容纳的房客数、租金及房屋状况 ( 待租赁、已出租

2、 ) 。这些信息都保存在房屋信息文件中。一名房主可以在系统中登记多个待租赁的房屋。3登记租赁者信息。所有想通过该系统租赁房屋的租赁者,必须首先在系统中登记个人信息,包括:姓名、住址、电话号码、出生年月和性别。这些信息都保存在租赁者信息文件中。4租赁房屋。已经登记在系统中的租赁者,可以得到一份系统提供的待租赁房屋列表。一旦租赁者从中找到合适的房屋,就可以提出看房请求。系统会安排租赁者与房主见面。对于每次看房,系统会生成一条看房记录并将其写入看房记录文件中。5收取手续费。房主登记完房屋后,系统会生成一份费用单,房主根据费用单缴纳相应的费用。:6变更房屋状态。当租赁者与房主达成租房或退房协议后,房主

3、向系统提交变更房屋状态的请求。系统将根据房主的请求,修改房屋信息文件。数据流图 1-1 和图 1-2 分别给出了该系统的顶层数据流图和0 层数据流图。(分数: 15.00 )(1). 使用 说明 中给出的词汇,将数据流图1-1 中(1) (4) 处的数据流补充完整。(分数: 5.00 )_正确答案: (1)费用单(2)待租赁房屋列表(3)看房请求(4)变更房屋状态请求)解析:(2).使用 说明 中给出的词汇,将数据流图图1-2中的(5)(8)补充完整。(分数: 5.00 )_正确答案: (5) 房主信息文件(6)租赁者信息文件(7)房屋信息文件 (8)看房记录文件 )解析:(3). 数据流程图

4、图 1-2 中缺失了三条数据流,请指出这三条数据流的起点、终点和数据流名称。* (分数: 5.00 )_正确答案: (1) 起点:房主终点:变更房屋状态数据流名称:变更房屋状态请求(2) 起点:租赁者 终点:登记租赁者信息 数据流名称:租赁者信息(3) 起点:租赁者 终点:安排租赁者看房 数据流名称:看房请求 )解析: 解析 本题考查的是分层数据流图,该题型每年必考,是需要重点掌握的内容。解题的两大原则:数据平衡原则,系统功能描述与数据流图的一致性原则。首先根据数据平衡原则有:在 0 层图中,与“房主”相关的数据流有 5 条。根据数据平衡原则顶层图应有与之对应的数据流,但“费用单”数据流在顶层

5、图中找不到,所以 (1) 应是“费用单”数据流。通过比较顶层图和0 层图中与外部实体“租赁者”相关的数据流,可以发现:出现在0 层图上的数据流“待租赁房屋列表”是顶层图上没有的,且与(2) 处的数据流方向一致。由此可以判定,(2) 处的数据流就是“待租赁房屋列表” 。而顶层图中的数据流“租赁者信息”却是0 层图上没有的。这样就找到了0 层图上缺失的第2 条数据流:租赁者信息,它的起点是“租赁者”,终点是加工“登记租赁者信息” 。根据系统功能描述与数据流图的一致性原则有:6“当租赁者与房主达成租房或(4) 处缺失的数据流是一条输入数据流,从说明中可以看出,只有功能由于房主向系统提交变更房屋状态的

6、请求”所描述的数据流没有在“房主”与系统之间体现出来。退房协议后,层图中缺失的其0 因此可以确定, (4) 处缺失的数据流就是“变更房屋状态请求”。相应的,可以确定,在中一条数据流也是它,其起点是“房主”,终点是“变更房屋状态”这个加工。由于说明中有“租赁者”相关的功能“一旦租赁者从中找到合适的房屋,就可以提出看房请求” ,这一功层图中也没有出现这条数据处的数据流应该是“看房请求”。而 0 能未在图中体现出来。这样就能确定 (3) 条数据流就是“看房请求” ,它的起点是“租赁者”,终点是加工“安排层图中缺失的第3 流。所以, 0 租赁者看房”。由说明的描述可以得知,本系统中的数据存储有:房主信

7、息文件、房屋信息文件、租赁者信息文件、看房处的是租赁者信 (6) 记录文件。下面就可以根据相应的加工对号入座了。显然,(5) 处的是房主信息文件;息文件;(7)(8)处的是看房记录文件。处的是房屋信息文件;15.00),分数: 1 试题二 ( 总题数:二、说明 某汽车维修站拟开发一套小型汽车维修管理系统,对车辆的维修情况进行管理。个对于新客户及车辆,汽车维修管理系统首先登记客户信息,包括:客户编号、客户名称、客户性质(1 、折扣率、联系人、联系电话等信息;还要记录客户的车辆信息,包括:车牌号、车型、颜色、人、单位) 所示。 2-1 车辆类别等信息。一个客户至少有一台车。客户及车辆信息如表( 普

8、通、加急 ) 、作业分类 ( 大、中、小修 )2 记录维修车辆的故障信息。包括:维修类型、结算方式( 自付、三包、索赔 )等信息。维修厂的员工分为:维修员和业务员。车辆维修首先委托给业务员。业务员对车辆进行检查和故障分析后,与客户磋商,确定故障现象,生成维修委托书。如表2-2 所示。3维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择并确定一个或多个具体维修项目,安排相关的维修工及工时,生成维修派工单。维修派工单如表2-3 所示。4客户车辆在车间修理完毕后,根据维修项目单价和维修派工单中的工时计算车辆此次维修的总费用,记录在委托书中。根据需求阶段收集的信息,设计的实体联系图 ( 见

9、图 2-1) 和关系模式 ( 不完整 ) 如下所示。图 2-1 中业务员和维修工是员工的子实体。 概念结构设计 逻辑结构设计 客户 ( (5),折扣率,联系人,联系电话)车辆 ( 车牌号,客户编号,车型,颜色,车辆类别)委托书 ( (6),维修类型,作业分类,结算方式,进厂时间,预计完工时间,登记日期,故障描述,总费用维修项目 ( 维修项目编号,维修项目,单价)派工单 ( (7),工时 )员工 ( (8),工种,员工类型,级别 )(分数: 15.00 )(1). 根据问题描述,填写图 2.1 中(1) (4) 处联系的类型。 联系类型分为一对一、 一对多和多对多三种, 分别使用 1:1 、1:

10、n 或 1:* 、m:n 或*:* 表示。(分数: 3.75 )_正确答案:(1) n或 m或* (2) 1 (3) n或 m或* (4) n或 m或*)解析:),。(分数: 3.75(2).1中的联系并指明其联系类型。联系名可为:联系1,联系2_完整的实体联系图如下图所示。正确答案:()解析:(3). 根据图 2-1 和说明,将逻辑结构设计阶段生成的关系模式中的空(5) (8) 补充完整。(分数: 3.75 )_正确答案: (5) 客户编号,客户名称,客户性质(6) 委托书编号,客户编号,车牌号,业务员编号或委托书编号,车牌号,业务员编号(7) 委托书编号,维修工编号,维修项目编号 (8)

11、员工编号,员工姓名 )解析:(4). 根据问题描述,写出客户、委托书和派工单这三个关系的主键。(分数: 3.75 )_正确答案: ( 客户:客户编号委托书:委托书编号派工单:委托书编号,维修项目编号,维修工编号)解析: 解析 本题考查数据库设计,设计考点有:数据库的概念结构设计和逻辑结构设计。 问题 1 由维修委托书的故障描述,维修类型、作业分类,可知,一台车可能有多个故障,对应多个维修委托书,所以(1) 空填写: * ;题目中“维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择并确定一个或多个具体维修项目,安排相关的维修工及工时,生成维修派工单” ,很明显,一份委托书包含了一个或

12、多个维修项目,而每个维修项目可以由多个维修工来完成,每一个维修工又可以完成多个维修项目,所以(2) 空填写: 1,(3) 、(4) 填写: * 。 问题 2 需要补充车辆和客户之间以及委托书和业务员之间的关系。由题目“一个客户至少拥有一台车”可知,客户和车辆之间是“拥有”关系,且是一对多的关系;在由题目中“业务员对车辆进行检查和故障分析后,与客户磋商,确定故障现象,生成维修委托书”可知,业务员与委托书之间是“委托”关系,且一名业务员可以受理多份委托书,而一份委托书由一名业务员来生成。 问题 3 本题又是补充逻辑结构设计题,几乎每年都考,这类题目只要仔细看需求分析结果或者仔细观察题目中已知的表,

13、很容易就能做出,关键是需要细心,不要漏掉什么属性。根据客户和车辆信息表可知,客户关系应包括客户编号、客户名称、客户性质、折扣率、联系人等属性,主键显然为客户编号;而车辆关系应包括车牌号、客户编号、车型、颜色、车辆类别等属性,主键为车牌号。根据维修委托书表可知委托书应包括委托书编号、车牌号、客户编号、业务员编号、维修类型等属性,其主键为委托书编号。根据维修派工单可知,派工单应包括委托书编号、维修项目编号、维修工编号、工时等属性,主键是委托书编号、维修项目编号和维修员编号。根据实体联系图知,员工包括业务员和维修工,他们共有的属性是员工编号、员工姓名、工种、员工类型、级别等属性,主键为员工编号。 问

14、题 4 参考问题 3 的分析。三、试题三 ( 总题数: 1,分数: 15.00) 说明某图书管理系统的主要功能如下。1图书管理系统的资源目录中记录着所有可供读者借阅的资源,每项资源都有一个唯一的索引号。系统需登记每项资源的名称、出版时间和资源状态( 可借阅或已借出 ) 。2资源可以分为两类:图书和唱片。对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD或者磁带 ) 。3读者信息保存在图书管理系统的读者信息数据库中,记录的信息包括:读者的识别码和读者姓名。系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息。现采用面向对象方法开发该图书管理系统。识别类是面

15、向对象分析的第一步。比较常用的识别类的方法是寻找问题描述中的名词,再根据相关规则从这些名词中删除不可能成为类的名词,最终得到构成该系统的给出了说明中出现的所有名词。 3-1 类。表3-21 。UML表类图 ( 通过对表 3-1 中的名词进行分析,最终得到了图3-1 所示的类的说明见表(分数: 15.00 )(1). 表 3-2 所给出的类并不完整,根据说明和表3-1 ,将图 3-1 中的(a) (c) 处补充完整。(分数: 5.00 )_正确答案: (a)资源目录; (b)图书; (c)唱片 )解析:(2).根据 说明 中的描述,给出图3-1 中的类CatalogItem以及 (b) 、(c)

16、 处所对应的类的关键属性( 使用表3-1中给出的词汇 ) ,其中, CatalogItem有 4 个关键属性; (b) 、(c) 处对应的类各有2 个关键属性。(分数: 5.00 )_正确答案: (Catalogltem的属性:索引号、名称、出版时间、资源状态图书的属性:作者、页数唱片的属性:演唱者、介质类型)解析:(3). 识别关联的多重度是面向对象建模过程中的一个重要步骤。根据说明中给出的描述,完成图3-1 中的 (1) (6) 。* (分数: 5.00 )_正确答案: (1) 1, (2) 0.*,(3)1, (4) 0.*,(5)1,(6)1或者 0.1)解析: 解析 本题主要考查 U

17、ML中的类图设计,题目3 个问题都是对类图的元素进行补充。类图的设计是根据系统的功能需求而来的,所以解题的关键在于对“系统功能说明”的理解。下面我们将通过对“系统功能说明”的分析,来解答试题:从系统功能说明中的 “图书管理系统的资源目录中记录着所有可供读者阅读的资源”和“资源可分为两类: 图书和唱片”,可以得知1 个资源目录中对应着多个可供读者借阅的资源,这些资源分为图书类与唱片类,所以(a) 为资源目录, (b)和(c) 分别为图书和唱片,同时(1) 应填: 1,(2)应填:0.*。( 所有的可供读者借阅资源数有可能为0,即还未录入任何资源的状态 ) 。从“每项资源都有一个唯一的索引号。系统

18、需登记每项资源的名称、出版时间和资源状态” 。可以得知,资源目录中的每项资源,即类图中的 CatalogItern ,有索引号、名称、出版时间和资源状态这 4 个关键属性。从“对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD或者磁带 ) ”,可以得知图书有作者和页数 2 个关键属性,唱片有演唱者和介质类型2 个关键属性。Borrower 代表读者,而 BorrowerItems 为借书记录文件,同时系统功能说明中有“系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息”,所以它们之间的关系应为1 对 1,即第 (5) 空和第 (6) 空均填 1。四、试

19、题四 ( 总题数: 1,分数: 15.00) 说明一般的树结构常采用孩子- 兄弟表示法表示,即用二叉链表作树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩予节点和下一个兄弟节点。例如,图4-1(a) 所示的树的孩子 - 兄弟表示如图 4-1fb) 所示。函数 LevelTraverse()的功能是对给定树进行层序遍历。 例如,对图 4-1 所示的树进行层序遍历时, 节点的访问次序为:DBAEFPC 。对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如下表所示。Bool 、Status 类型定义如下:typedef enum FALSE = 0, TRUE = 1 Bool

20、;typedef enum OVERFLOW = -2, UNDERFLOW = -1, ERROR = 0, OK = 1 Status;树的二叉链表节点定义如下:typedef struct Nodechar data ;struct Node *fimrstchiid, *nextbrother;Node, *TreeNode;函数 Status LevelTraverse(TreeNode root)/* 层序遍历树,树采用孩子- 兄弟表示法, rootQueue tempQ;TreeNode ptr, brotherptr;if (!root)return ERROR;InitQue

21、ue( tempQ);(1) ;brotherptr = root - nextbrother;while (brotherptr) EnQueue(&tempQ, brotherptr);(2) ;/*end-while*/while( (3) )(4) ;printf( %ct, ptr-data);是树根节点的指针*/if( (5) )continue;(6) ;brotherptr = ptr-firstchild-nextbrother;while(brotherptr) EnQueue(&tempQ, brotherptr);(7) ;/*end-while*/*e

22、nd-while*/return OK;)/*LevelTraverse*/(分数: 14.98 )填空项 1:_ (正确答案: EnQueue(&tempQ,root) )解析:填空项 1:_ (正确答案: brotherptr=brotherptr-nextbrother)解析:填空项 1:_ (正确答案: !IsEmpty(tempQ) )解析:填空项 1:_ (正确答案: DeQueue(&tempQ,&ptr))解析:填空项 1:_ (正确答案: !ptr-firstchild)解析:填空项 1:_ (正确答案: EnQueue(&tempQ,ptr-

23、 firstchild))解析:) nextbrother brotherptr=brotherptr-(正确答案: 1:_ 填空项解答此题的关键在于理解用队列层序遍历树的过程。算法的流程是这样的:首先将树根节点解析:解析;完成这一操作以后,便开始出入队,然后将其所有兄弟节点入队( 当然,由于是根节点,故无兄弟节点 ) 队、打印;在打印完了之后,需要进行一个判断,判断当前节点有无孩子节点,若有孩子节点,则将孩子节点入队,同时将孩子节点的所有兄弟节点入队;完了以后继续进行出队操作,出队后再次判断当前节点是否有孩子节点,并重复上述过程,直至所有节点输出。入队,并同时检查是否有兄弟节点,对于兄弟节点

24、则D接下来以本题为例来说明此过程。首先将树根节点 。没有兄弟节点,所以队列此时应是: D 一并入队。这里的 D 入队,同,所以将 BD接下来执行出队操作。 D 出队,出队以后检查是否有子节点,经检查,D 有子节点 B 。、时将 B的兄弟节点 A 和 E按顺序入队。得到队列: BA、E出队,A 接下来再执行出队操作。 B出队,同时检查 B 是否有子节点, B 无子节点,所以继续执行出队操作。 、A 有子节点 F,所以将 F 入队,同时将 F 的兄弟节点 P入队。得到队列: E、F 同时检查 A 是否有子节点, P 。 、C。PC,所以 C出队。得:F、E接下来再次执行出队操作。 E出队,有子节点

25、出队,整 P 仍无子节点,最后 CF出队, F 无子节点,继续出队操作,P 出队,接下来再次执行出队操作。个过程结束。执行入队操作,即。应是对根节点root 通过对算法的详细分析,我们可以轻松得到答案。 (1) ,此变量无语句对其进行更新,所brotherptr。EnQueue(&tempQ,root)(2) 在一个循环当中,循环变量是。(2) 应填:brotherpu=brotherptr-nextbrotherbrotherptr以(2) 必定是更新。结合前面的算法分析可知; ”是控制数据的输出,这些数据应是从队列中加上后面的语句“printf(%ct,ptr-data)(3)、(

26、4)!IsEmpty(tempQ)填:、(4) 得到,所以此处必有出队操作,同时在出队之前应判断队列是否为空,所以(3) 实际上是问“在什么情况下,要持续进行出队操作?”,前面的算法分析中。(5)DeQueue(&tempQ,&ptr) 和所在的 (7) 已指出:若出队节点无子节点,则继续进行出队操作,所以(5) 填:!ptr-firstchild。(6) 和 (6) 语句段的功能是将刚出队节点的子节点及其兄弟节点入队,所以填: EnQueue(&tempQ,ptr- firstchild)。(7) 和。brotherptr-nextbrother(2)相同,填:bro

27、therptr-15.00)总题数:1,分数:五、试题五( 说明某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表下表所示。5-1 所示。 为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(strategy)设计的类图如图其中, Duck 为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck 、CottonDuck 和 RedHeadDuck分别描述具体的鸭子种类,方法 fly() 、quack() 和 display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特

28、征;类FlyBehavior 与 QuackBehavior 为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与 FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak 与 QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。C+代码 # includeiostream using namespace (1) ;class FlyBehaviorpublic : (2) fly()=0;;class QuackBehaviorpublic: (3) quack()=0;Cla

29、ss FlyWithWings :public F1yBehaviorpublic: void fly()cout使用翅膀飞行尡endl;class FlyNoWay :public FlyBehaviorpublic: void fly()cout不能飞行尡 endl;class Quack :public QuackBehaviorpublic: void quack()cout发出 ' 嘎嘎' 声尡 endl;class Squeak :public QuackBehaviorpublic: void quack()cout发出空气与橡皮摩擦声尡endl;class Qu

30、ackNOWay :public QuackBehaViorpublic: void quack()cout不能发声尡 endl;C1ass Duckprotected:FlyBehavior * (4) ;QuackBehaVior * (5) ;public:VOid fly() (6) ;VOid quack() (7) ; ;virtual void display()=0;class RubberDuck: public Duckpublic:RubberDuck()flyBehavior=new (8) ;quackBehavior=new (9) ; RubberDuck()if

31、 (!flyBehavior) delete flyBehaVior;i f(!quackBehavior)delete quackBehavior;Void display() /*此处省略显示橡皮鸭的代码*/ 其他代码省略(分数: 15.03 )填空项 1:_ (正确答案: std )解析:填空项 1:_ (正确答案: Virtual void)解析:填空项 1:_ (正确答案: Virtual void)解析:填空项 1:_ (正确答案: flyBehavior)解析:填空项 1:_ (正确答案: quackBehavior )解析:填空项 1:_ (正确答案: flyBehavior-

32、fly())解析:)quackBehaviot- quack() 填空项 1:_ (正确答案:解析: )1:_ (正确答案:FlyNoWay()填空项解析: )1:_ (正确答案: Squeak() 填空项 本题考查面向对象的程序设计的抽象类和多态。程序解释如下: 解析 解析:标准程序库中的所有 C+namespace,是指标识符的各种可见范围。(1)using namespace (1)std ; /*所谓*/中。的 namespace标识符都被定义于一个名为std 为抽象类,分别用于表示抽象的飞行行为与发声行为,QuackBehaviorFlyBehavior 与(2)由题中信息:类,需要

33、定义虚函数,用以给子类进)( 即多态而这两种行为对应的不止是一种方式,为了表示多种行为方式。所以voidvoid quack() 可知,父类中的对应函数返回值也应为行重载。再由予类中的函数 voidfly()及 (3) 的填空如下: (2) 和 class FlyBehaviorpublic: (2) virtual void fly( )=O;class Qutack: Behaviorpublic: (3) virtual void quack( )=0;类中出现的“flvBehavior=newlyNoWay();quackBehavior=new由子类RubberDuck(3)Duck

34、 类的定义,(5) 填空如下:。所以 (4) 和 Squeak(); ”可知这两个指针类型对象为nyBehavior 。和 quackBehaviorClass Duckprotected:FlyBehavior * (4) fiybehavior;QuackBehavior * (5) quackBehavior;由“ FlyBehavior * flyBehavior;QuackBehavior * quackBehavior;”及函数名可知,该函数体应调用填空如下: (6)和(7)ny 函数和 QuackBehavior 类中的 quack 函数。所以 FlyBehavior 类中的 p

35、ublic:fiy(); void fly()(6)fiybehavior-quack();void quack()(7)quackBehavior-virtualvoiddisplay()=0;是“发出空气与橡皮摩擦声”并且“不能飞行”的鸭子种类,因此构RubberDuck(4) 由题中所给信息可知和,所以第(8)对应的类型分别为FlyNoWay,Squeak 造函数中创建的对象flyBehavior和 quackBehavior (9)空的填空如下: ClassRubberDuck: public Duck public:RubberDuck()flyBehavior=new (8) Fi

36、yNoWay();quackBehaVior=new (9) Squeak();14.00),分数: ( 总题数: 1 六、 试题六 说明 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如下表所示。为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图6-1 所示。其中, Duck 为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck 、CottonDuck 和 RedHeadDuck分别描述具体的鸭子种类,方法 fly()、quack() 和 d

37、isplay()分别表示不同种类的鸭子都具有飞行特征、分别用于表示抽象的飞行行为与发声行为;类QuackBehavior 与 FlyBehavior发声特征和外观特征;接口QuackNoWay与 SqueakFlyNoWay与 FlyWithWings 分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。Java 代码(1) FlyBehaVior public void fly(););(2) QuackBehavior public void quack();Class FlyWithWings implements FlyBehavior異汢捩瘠楯 ?汦?匩獹整 ?畯?牰湩汴 ?使用翅膀飞行 !);Class FlyNoWay implements FlyBehaVior異汢捩瘠楯 ?汦?匩獹整 ?畯?牰湩楴 ?不能飞行 !);Class Quack implements QuackBehaviorpubiic void quack()System>out>println(发出 ' 嘎嘎 ' 声! );class Squeak implements QuackBehavior发出空气与橡皮摩擦声! );Cl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论