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;
}
}
查看答案
试题二:阅读下列说明和图,回答问题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:人事档案
温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关推荐
2021/10/27
2021/10/27
2021/10/27
2021/10/27
2021/10/27