试题详情

试题内容

试题七
阅读以下说明以及Java程序。
【说明】
传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening (正在打开)、StayOpen(保持打开)和Closing(正在关闭)五种状态。触发状态的转换事件有click、complete和timeout三种。事件与其相应的状态转换如下图所示。

下面的Java代码1与Java代码2分别用两种不同的设计思路对传输门进行状态模拟,请填补代码中的空缺。
【Java代码1】
public class Door {
public static final int CLOSED = 1;    public static final int OPENING = 2;
public static final int OPEN = 3;  public static final int CLOSING = 4;
public static final int STAYOPEN = 5;  private int state = CLOSED;
//定义状态变量,用不同的整数表示不同状态
private void setState(int state){ this.state = state;}
//设置传输门当前状态
public void getState() {
//此处代码省略,本方法输出状态字符串,
//例如,当前状态为CLOSED时,输出字符串为"CLOSED"
}
public void click()  {  //发生click事件时进行状态转换
if (  (1)  ;)    setState(OPENING.;
else if (  (2)  ;)  setState{CLOSING.;
else if (  (3)  ;)    setState(STAYOPEN);
}
//发生timeout事件时进行状态转换
public void timeout() { if (state == OPEN)    setState(CLOSING.;}
public void complete() {//发生complete事件时进行状态转换
if (state == OPENING.    setState(OPEN);
else if  (state == CLOSING.  setState(CLOSED.;
}
public static void main(String [] args){
Door aDoor = new Door();
aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();
aDoor.getState();aDoor.click();aDoor.getState();aDoor.click();
aDoor.getState();return;
}
}
【Java代码2】
public class Door {
public final DoorState CLOSED = new DoorClosed(this);
public final DoorState OPENING = new DoorOpening(this);
public final DoorState OPEN = new DoorOpen(this);
public final DoorState CLOSING = new DoorClosing(this);
public final DoorState STAYOPEN = new DoorStayOpen(this);
private DoorState state = CLOSED;
//设置传输门当前状态
public void setState(DoorState state) { this.state=state;}
public void getState(){ //根据当前状态输出对应的状态字符串
System.out.println(state.getClass().getName());
}
public void click(){  (4)  ;}//发生click事件时进行状态转换
public void timeout(){  (5)  ;}//发生timeout事件时进行状态转换
public void complete(){  (6)  ;)//发生complete事件时进行状态转换
public static void main(String[]args){
Door aDoor = new Door();
aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();
aDoor.getState();aDoor.timeout();aDoor.getState();return;
}
}
public abstract class DoorState { //定义所有状态类的基类
protected Door door ;
public DoorState(Door doer)  { this.door = door;}
public void click() {}
public void complete() {}
public void timeout() {}
}
class DoorClosed extends DoorState { //定义一个基本的Closed状态
public DoorClosed(Door door) { super(door);}
public void click() {  (7)  ;)
//该类定义的其余代码省略
}
//其余代码省略

查看答案

软题库参考答案:暂时没有答案(仅供参考)

软题库解析:正在加载....

你可能感兴趣的试题

3题:

试题三
阅读以下说明和图,回答问题1至问题3。
【说明】
S公司开办了在线电子商务网站,主要为各注册的商家提供在线商品销售功能。为更好地吸引用户,S公司计划为注册的商家提供商品(Commodity)促销(Promotion)功能。商品的分类(Category)不同,促销的方式和内容也会有所不同。
注册商家可发布促销信息。商家首先要在自己所销售的商品的分类中,选择促销涉及的某一具体分类,然后选出该分类的一个或多个商品(一种商品仅仅属于一种分类),接着制定出一个比较优惠的折扣政策和促销活动的优惠时间,最后由系统生成促销信息并将该促销信息公布在网站上。
商家发布促销信息后,网站的注册用户便可通过网站购买促销商品。用户可选择参与某一个促销活动,并选择具体的促销商品,输入购买数量等购买信息。系统生成相应的一份促销订单(POrder)。只要用户在优惠活动的时间范围内,通过网站提供的在线支付系统,确认在线支付该促销订单(即完成支付),就可以优惠的价格完成商品的购买活动,否则该促销订单失效。
系统采用面向对象方法开发,系统中的类以及类
2题:

试题二
阅读下列说明,回答问题1至问题3,将解答填入对应栏内。
【说明】
某地区举行篮球比赛,需要开发一个比赛信息管理系统来记录比赛的相关信息。
【需求分析结果】
1.登记参赛。球队的信息。记录球队的名称、代表地区、成立时间等信息。系统记录球队每个队员的姓名、年龄、身高、体重等信息。每个球队有一个教练负责管理球队,一个教练仅负责一个球队。系统记录教练的姓名、年龄等信息。
2.安排球队的训练信息。比赛组织者为球队提供了若干块场地,供球队进行适应性训练。系统记录现有的场地信息,包括:场地名称、场地规模、位置等信息。系统可为每个球队安排不同的训练场地,如下表所示。系统记录训练场地安排的信息。

3.安排比赛。该赛事聘请专职裁判,每场比赛只安排一个裁判。系统记录裁判的姓名、年龄、级别等信息。系统按照一定的规则,首先分组,然后根据球队
5题:阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表5-1所示。

该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图5-1所示的类图。

图5-1 类图
【C++代码】
class  DP1{
public:
static void draw_a_line(double  x1,double &nbs
5题:试题五(共15分)
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图5-1所示。


1题:阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某大学为进一步推进无纸化考试,欲开发一考试系统。系统管理员能够创建包括专业方向、课程编号、任课教师等相关考试基础信息,教师和学生进行考试相关的工作。系统与考试有关的主要功能如下。
(1)考试设置。教师制定试题(题目和答案),制定考试说明、考试时间和提醒时间等考试信息,录入参加考试的学生信息,并分别进行存储。
(2)显示并接收解答。根据教师设定的考试信息,在考试有效时间内向学生显示考试说明和题目,根据设定的考试提醒时间进行提醒,并接收学生的解答。
(3)处理解答。根据答案对接收到的解答数据进行处理,然后将解答结果进行存储。
(4)生成成绩报告。根据解答结果生成学生个人成绩报告,供学生查看。
(5)生成成绩单。对解答结果进行核算后生成课程成
6题:

试题六(共15分)
   阅读下列说明和Java代码,将应填入 (n)  处的字句写在答题纸的对应栏内。
【说明】
   某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各
种促销活动,如打折、返利(例如,满300返1 00)等等。现采用策略( Strategy)模式实
现该要求,得到如图6-1所示的类图。





【Java代码】
import java util*;
enum TYPE { NORMAL, CASH_DISCOUNT, CASH_RETURN};
interface CashSuper {
Public   (1)