美文网首页软考资讯指南
软件设计师下午试题每日一练

软件设计师下午试题每日一练

作者: 知识的阐述者 | 来源:发表于2018-11-09 15:12 被阅读18次

阅读以下说明以及Java程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)、Closing(正在关闭)五种状态。触发状态的转换事件有click、 complete和timeout三种。事件与其相应的状态转换如图7-1所示。

分享一个软设学习交流群【144750654】 点此进入学习交流区获取更多考试资讯、资料

下面的[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.clik();

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 DoorStay0pen(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 door){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) ;}

//该类定义的其余代码省略

}

//其余代码省略

本文转载于希赛

相关文章

  • 软件设计师下午试题每日一练

    阅读以下说明以及数据流图,回答问题1至问题5,将解答填入答题纸的对应栏内。 分享一个软设学习交流群【1447506...

  • 软件设计师下午试题每日一练

    阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。 [说明] 某宾馆需要建立一个住房管理系统,部分的需...

  • 软件设计师下午试题每日一练

    阅读以下说明以及Java程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明] 传输门是传输系统中的重要...

  • 【软件设计师】 软考准备

    考前准备 1、科目设置(软件设计师) 各科都分别设有上午试题和下午试题,各占75分,总分150分。45分及格、目标...

  • 走路动画-AE动画

    完整动画: AE软件操作,完整界面如下: AE软件操作,局部图层界面: 每日一练,熟能生巧。

  • 软考——02 UML基础

    软件设计师考试——UML基础部分此部分主要是针对下午试题中的UML部分,而不是对整个UML进行全面且细致的总结,因...

  • 软考刷题简记{1}【2019-06-25】(2019上半年软件设

    2019 上半年软件设计师下午真题 试题一(共 15 分)阅读下列说明和图,回答问题 1 至问题 4,将解答填入答...

  • 开更啦

    今日份开心:1重拾扇贝阅读✅ 2技能考试题库每日一练✅ 3最近心情挺好的~希望...

  • 数据流图题目解析(一)

    以2016 年下半年 软件设计师 下午试卷试题一(15 分) 为例来解析 某证券交易所为了方便提供证券交易服务,欲...

  • 每日一练(42):Excel表序号

    title: 每日一练(42):Excel表序号 categories:[剑指offer] tags:[每日一练]...

网友评论

    本文标题:软件设计师下午试题每日一练

    本文链接:https://www.haomeiwen.com/subject/clroxqtx.html