信管网案例分析

导航

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

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

  • 试题一:阅读下列说明、图和c++代码。
    [说明]
    某订单管理系统的部分uml类图如下图所示。

    上图中,product表示产品,productlist表示产品目录,order表示产品订单,orderitem表示产品订单中的一个条目,orderlist表示订单列表,salessystem提供订单管理系统的操作接口。
    请完善类order的成员函数getorderedamount()和类salessystem的stafistic()方法,各个类的属性及部分方法定义参见下面的c++代码。
    [c++代码]
    class product {                                        //产品
    private:
    string pid;                                       //产品识别码
    string description;                              //产品描述
    double price;                                   ///产品单价
    public:
    void setproductprice(double price);            //设置产品单价
    string getproduetld();                         //获取产品识别码
    string getproduetdescriprion 0;              //获取产品描述
    double getproductprice0;                    //获得产品单价
    //其他成员省略
    };
    class productlist {                             //产品列表类
    private:
    vector <product> products;
    public:
    productlist();
    product getproductbylndex(int i);          //获得产品列表中的第i件产品
    void addproduct(product t);                //在产品列表中加入一件产品
    product * getproductbyid(string pid);      //获得识别码为pid的产品指针
    unsigned iht getproductamount();           //获得产品列表中的产品娄量
    };
    class orderitem {                               //订单条目类
    private:
    product *productptr;                      //指向被订购产品的指针
    int quantity;                             //订购数量
    public:
    orderitem (product *,iht);
    product * getproductptr o;                //获得指向被订购产品的指针
    int getquantity ();                       //获取被订刚强产品数量
    };
    class order {                                  //订单类
    private:
    unsigned int orderid;                    //订单识别号
    vector<orderltem> items;               //订单内容(订单项)
    public:
    order(unsigned int orderid);              //获得识别码为fid的产品在当前订单中被订购的数量
    int getorderedamount(string fid);
    void additem(product *productptr,unsigned int n);    //在订单中增加一个订单项
    };
    class orderlist {                                        //订单列表类
    private:
    vector<order> orders;
    public:
    orderlist();
    //begin()返回指向订单列表第一个元素的迭代器(指针)
    virtual vector<order>::iterator orderlist::begin();
    //end()返回指向订单列表最后一个元素之后的迭代器(指向一个不存在的元素)
    virtual vector<order>::iterator orderlist::end();
    void addorder(order t);             //在订单列表中加入一份订单
    //其他成员省略
    };
    class salessystem{
    private:
    productlist catalog;                 //产品目录
    orderlist sales;                    //订单列表
    public:
    salessystem();
    void statistic();                  //统计所有产品的订购情况
    //其他成员省略
    };
    //在订单中查找识别码为tid的产品的订购数量,若该产品没有被订购,则返回0
    int order::getorderedamount(string tid)
    {   for (int k=0; k < items.size(); k++) {
    if(  (1)  ==tid)
    return   (2)  ;
    }
    return 0;
    }
    //方法statistic()依次统计产品目录中每个产品的订购总量,并打印输出
    //每个产品的识别码、描述、订购总量和订购金额
    void salessystem::statistic()
    {   unsigned int k, t, ordered_qty = 0;
    vector<order>::iterator it;   product p;
    cout<<''产品识别码\t描述\t\t订购数量\t金额''<<endl;
    for (k = 0; k < catalog.gctproductamount(); k++){//遍历产品列表
    p =  (3)  ;            //从产品列表取得一件产品信息存入变量p
    ordered_qty = 0;
    //通过迭代器变量it遍历订单列表中的每一份订单
    for (it = sales. begin();   (4)   : it++) {
    //根据产品识别码获得产品p在当前订单中被订购的数量
    t =  (5)  (p.getproductld());
    ordered_qty +=t;
    }
    cout << p.getproducfld() << "\t\t"<< p.gntproductdescription() << "\t\t";
    cout <<ordered_qty << "\t\t" << p.getproductprice() * ordered_qty << endl;
    }
    }

    查看答案

    参考答案:

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

    信管网考友试题答案分享:

  • 试题二:阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
    【说明】
    某巴士维修连锁公司欲开发巴士维修系统,以维护与维修相关的信息。该系统的 主要功能如下:
    1)记录巴士id和维修问题。巴士到车库进行维修,系统将巴士基本信息和id记录在巴士列表文件中,将待维修机械问题记录在维修记录文件中,并生成维修订单。
    2)确定所需部件。根据维修订单确定维修所需部件,并在部件清单中进行标记。
    3)完成维修。机械师根据维修记录文件中的待维修机械问题,完成对巴士的维修,登记维修情况;将机械问题维修情况记录在维修记录文件中,将所用部件记录在部件 清单中,并将所用部件清单发送给库存管理系统以对部件使用情况进行监控。巴士司机可查看已维修机械问题。
    4)记录维修工时。将机械师提供的维修工时记录在人事档案中,将维修总结发送 给主管进行绩效考核。
    5)计算维修总成本。计算部件清单中实际所用部件、人事档案中所用维修工时的 总成本;将维修工时和所用部件成本详细信息给会计进行计费。
    现采用结构化方法对巴士维修系统进行分析与设计,获得如图1-1所示的上下文 数据流图和图1-2所示的0层数据流图。


    【问题1】(5分)
    使用说明中的词语,给出图1-1中的实体e1~e5的名称。
    【问题2】(4分)
    使用说明中的词语,给出图1-2中的数据存储d1~d4的名称。
    【问题3】(3分)
    说明图1-2中所存在的问题。
    【问题4】(3分)
    根据说明和图中术语,釆用补充数据流的方式,改正图1-2中的问题。要求给出 所补充数据流的名称、起点和终点。

    查看答案

    参考答案:

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

    信管网考友试题答案分享:

    信管网wangly:
    问题1; e1:巴士司机 e2:机械师 e3:会计 e4:主管 e5:库存管理系统 问题2: d1:巴士列表文件 d2:维修记录文件 d3:部件清单 d4:维修工时记录 问题3: d2到3箭头方向相反。 d3到2箭头方向相反。 问题4: 起点d2,终点2,名称:待维修问题 起点d3,终点5,名称:部件成本

    信管网cnitpm455975146352:
    e1:司机 e2:机械师 e3:会计 e4:主管 e5:库存管理系统<br>d1:巴士列表文件 d2:维修记录文件 d3:部件清单 d4:人事档案

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

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

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

下载APP-在线学习

培训课程

0元畅享

考试题库

免费资料

APP下载