信管网案例分析

导航

2021年下半年软件设计师《案例分析》真题模拟试题(6)

2021年10月25日来源:信管网 作者:cnitpm

  • 试题一:阅读以下说明和C++代码。将应填入 (n) 处的字句写在答题纸的对应栏内。
    【说明】
    传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening (正在打开)、StayOpen(保持打开)和Closing(正在关闭)五种状态。触发传输门状态转换的事件有click、complete和timeout三种。事件与其相应的状态转换如下图所示。

    下面的C++代码1与C++代码2分别用两种不同的设计思路对传输门进行状态模拟,请填补代码中的空缺。
    【C++代码1】
    const int CLOSED=1;   const int OPENING=2;
    const int OPEN=3;     const int CLOSING=4;
    const int STAYOPEN=5;  //定义状态变量,用不同整数表示不同状态
    class Door {
    Private:
    int state;  //传输门当前状态
    void setState(int state){ this->state=state;}  //设置当前状态
    public:
    Door():state(CLOSED.{};
    void getState(){    //根据当前状态输出相应的字符串
    switch(state){
    case OPENING: cout<<"OPENING"<<endl;    break;
    case CLOSED:  cout<<"CLOSED"<<endl;     break;
    case OPEN:    cout<<"OPEN"<<endl;       break;
    case CLOSING: cout<<"CLOSING"<<endl;    break;
    case STAYOPEN:cout<<"STAYOPEN"<<endl;   break;
    }
    };
    void click()  {    //发生click事件时进行状态转换
    if (  (1)  )    setState(OPENING.;
    else if (  (2)  )    setState(CLOSING.;
    else if (  (3)  )    setState(STAYOPEN);
    }
    void timeout(){    //发生timeout事件时进行状态转换
    if (state == OPEN)  setState(CLOSING.;
    }
    void complete(){    //发生complete事件时进行状态转换
    if (state == OPENING.    setState(OPEN);
    else if (state == CLOSING.  setState(CLOSED.;
    }
    };
    int main(){
    Door aDoor;
    aDoor.getState();aDoor.click();    aDoor.getState();
    aDoor.complete();aDoor.getState(); aDoor.click();
    aDoor.getState();aDoor.click();    aDoor.getState();    return 0;
    }
    【C++代码2】
    class Door {
    public:
    DoorState *CLOSED,*OPENING,*OPEN,*CLOSING,*STAYOPEN,*state;
    Door();
    virtual~Door(){……//释放申请的内存,此处代码省略);
    void setState(DoorState *state)  { this->state = state;}
    void getState(){
    //此处代码省略,本方法输出状态字符串,
    //例如,当前状态为CLOSED时,输出字符串为“CLOSED”
    };
    void click();
    void timeout();
    void complete();
    };
    Door::Door(){
    CLOSED = new DoorClosed(this);    OPENING = new DoorOpening(this);
    OPEN = new DoorOpen(this);        CLOSING = new DoorClosing(this);
    STAYOPEN = new DoorStayOpen(this);state = CLOSED;
    }
    void Door :: click() {  (4)  ;)
    void Door :: timeout() {  (5)  ;)
    void Door :: complete() {  (6)  ;}
    class DoorState//定义一个抽象的状态,它是所有状态类的基类
    {
    protected:Door *door;
    public:
    DoorState(Door *door) {this->door = door;}
    virtual~DoorState(void);
    virtual void click()  {}
    virtual void complete()  {}
    virtual void timeout()  {}
    };
    class DoorClosed :public DoorState{//定义一个基本的Closed状态
    public:
    DoorClosed(Door *door) :DoorState(door)  {}
    virtual ~ DoorClosed(){}
    void click();
    };
    void DoorClosed :: click() {  (7)  ;}
    //其他状态类的定义与实现代码省略
    int main() {
    Door aDoor;
    aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();
    aDoor.getState();aDoor.timeout();aDoor.getState();return 0;
    }



    查看答案

    参考答案:

    参考解析:www.cnitpm.com/st/245488533.html

  • 试题二:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
    【说明】
    某海外代购公司为扩展公司业务,需要开发一个信息化管理系统。请根据公司现有业务及需求完成该系统的数据库设计。
    【需求描述】
    (1)记录公司员工信息。员工信息包括工号、身份证号、姓名、性别和一个手机号,工号唯一标识每位员工,员工分为代购员和配送员。
    (2)记录采购的商品信息。商品信息包括商品名称、所在超市名称、采购价格、销
    售价格和商品介绍,系统内部用商品条码唯一标识每种商品。一种商品只在一家超市代购。
    (3)记录顾客信息。顾客信息包括顾客真实姓名、身份证号(清关缴税用)、一个手机号和一个收货地址,系统自动生成唯一的顾客编号。
    (4)记录托运公司信息。托运公司信息包括托运公司名称、电话和和地址,系统自动生成唯一的托运公司编号。
    (5)顾客登录系统之后,可以下订单购买商品。订单支付成功后,系统记录唯一的支付凭证编号,顾客需要在订单里指定运送方式:空运或海运。
    (6)代购员根据顾客的订单在超市采购对应商品,一份订单所含的多个商品可能由多名代购员从不同超市采购。
    (7)采购完的商品交由配送员根据顾客订单组合装箱,然后交给托运公司运送。托运公司按顾客订单核对商品名称和数量,然后按顾客的地址进行运送。
    【概念模型设计】
    根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。

    【逻辑结构设计】
    据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
    员工(工号,身份证号,姓名,性别,手机号)
    商品(条码,商品名称,所在超市名称,采购价格,销售价格,商品介绍)
    顾客(编号,姓名,身份证号,手机号,收货地址)
    托运公司司(托运公司编号,托运公司名称,电话,地址)
    订单(订单ID,(a),商品数量,运送方式,支付凭证编号)
    代购(代购ID,代购员工号,(b))
    运送(运送D,配送员工号,托运公司编,订单D,发运时间)
    【问题1】(3分)
    根据问题描述,补充图2-1的实体联系图。
    【问题2】(6分)
    补充逻辑结构设计结果中的(a)、(b)两处空缺。
    【问题3】(6分)
    为方便顾客,允许顾客在系统中保存多组收货地址。请根据此需求,增加“顾客地址”弱实体,对图2-1进行补充,并修改“运送”关系模式。



    查看答案

    参考答案:

    参考解析:www.cnitpm.com/st/3963110017.html

温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

分享至:
请使用浏览器的分享功能,把好文章分享给更多的人

信管网 - 信息系统项目管理专业网站

下载APP-在线学习

培训课程

0元畅享

考试题库

免费资料

APP下载