logo资料库

2012下半年软件设计师考试真题及答案-下午卷.doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
2012下半年软件设计师考试真题及答案-下午卷 [试题1] 阅读以下说明,根据要求回答下列问题。 [说明] 某电子商务系统采用以数据库为中心的集成方式改进购物车的功能,详细需求如下。 1.加入购物车。顾客浏览商品,点击加入购物车,根据商品标识从商品表中读取商 品信息,并更新购物车表。 2.浏览购物车。顾客提交浏览购物车请求后,显示出购物车表中的商品信息。 3.提交订单。顾客点击提交订单请求,后台计算购物车表中商品的总价(包括运费) 加入订单表,将购物车表中的商品状态改为待付款,显示订单详情。若商家改变价格,则刷 新后可看到更改后的价格。 4.改变价格。商家查看订购自家商品的订单信息,根据特殊优惠条件修改价格,更 新订单表中的商品价格。 5.付款。顾客点击付款后,系统先根据顾客表中关联的支付账户,将转账请求(验证 码、价格等)提交给支付系统(如信用卡系统)进行转账;然后根据转账结果返回支付状态并 更改购物车表中商品的状态。 6.物流跟踪。商家发货后,需按订单标识添加物流标识(物流公司、运单号);然后 可根据顾客或商家的标识以及订单标识,查询订单表中的物流标识,并从相应物流系统查询 物流信息。 7.生成报表。根据管理员和商家设置的报表选项,从订单表、商品表以及商品分类 表中读取数据,调用第三方服务Crystal Reports生成相关报表。 8.维护信息。管理员维护(增、删、改、查)顾客表、商品分类表和商品表中的信息。 现采用结构化方法实现上述需求,在系统分析阶段得到如图1-9所示的顶层数据流图 和图1-10所示的0层数据流图。
1、[问题1] 使用说明中的词语,给出图1-9中的实体E1~E4的名称。 2、[问题2] 使用说明中的词语,给出图1-10中的数据存储D1~D4的名称。 3、[问题3] 图1-10中缺失了数据流,请用说明或图1-10中的词语,给出其起点和终点。 4、[问题4] 根据说明,给出数据流“转账请求”、“顾客订单物流查询请求”和“商家订单物流 查询请求”的各组成数据项。 [试题2] 阅读下列说明和图,回答下列问题。 [说明] 某会议策划公司为了方便客户,便于开展和管理各项业务活动,需要构建一个基于网 络的会议预定系统。 [需求分析] 1.会议策划公司设有受理部、策划部和其他部门。部门信息包括部门号、部门名称、 部门主管、电话和邮箱号。每个部门有多名员工处理部门的日常事务,每名员工只能在一个 部门工作。每个部门有一名主管负责管理本部门的事务和人员。 2.员工信息包括员工号、姓名、部门号、职位、联系方式和工资;其中,职位包括 主管、业务员、策划员等。业务员负责受理会议申请。若申请符合公司规定,则置受理标志 并填写业务员的员工号。策划部主管为已受理的会议申请制定策划任务,包括策划内容、参 与人数、要求完成时间等。一个已受理的会议申请对应一个策划任务,一个策划任务只对应 一个已受理的会议申请,但一个策划任务可由多名策划员参与执行,且一名策划员可以参与 多项策划任务。
3.客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银 行账号。其中,一个客户号唯一标识一个客户。一个客户可以提交多个会议申请,但一个会 议申请对应唯一的一个客户号。 4.会议申请信息包括申请号、开会日期、会议地点、持续天数、会议人数、预算费 用、会议类型、酒店要求、会议室要求、客房类型、客房数、联系人、联系方式、受理标志 和业务员的员工号等。客房类型有豪华套房、普通套房、标准间、三人间等,且申请号和客 房类型决定客房数。 [概念模型设计] 根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如图1-11所示: [关系模式设计] 部门(部门号,部门名称,主管,电话,邮箱号) 员工(员工号,姓名, (a) ,联系方式,工资) 客户(客户号,单位名称,通信地址,所属省份,联系人,联系电话,银行账号) 会议申请( (b) ,开会日期,会议地点,持续天数,会议人数,预算费用,会议 类型,酒店要求,会议室要求,客房数,联系人,联系方式,受理标志,员工号) 策划任务( 执行策划( (c) ,策划内容,参与人数,要求完成时间) (d) ,实际完成时间) 5、[问题1] 根据问题描述,补充5个联系、联系的类型,完善图1-11的实体联系图。 6、[问题2] 根据实体联系图,将关系模式中的空缺处补充完整(1个空缺处可能有多个数据项)。 对会议申请、策划任务和执行策划关系模式,用下划线和群分别指出各关系模式的主键和外 键。 7、[问题3] 请说明关系模式“会议申请”存在的问题及解决方案。 [试题3] 阅读下列说明和图,回答下列问题。 [说明] 某城市的各国家公园周边建造了许多供游客租用的小木屋和营地,为此,该城市设置 了一个中心售票处和若干个区域售票处。游客若想租用小木屋或营地,必须前往中心售票处 进行预定并用现金支付全额费用。所有的预定操作全部由售票处的工作人员手工完成。现欲 开发一信息系统,实现小木屋和营地的预定及管理功能,以取代手工操作。该系统的主要功 能描述如下。 1.管理预定申请。游客可以前往任何一个售票处提出预定申请。系统对来自各个售 票处的预定申请进行统一管理。 2.预定。预定操作包含登记游客预定信息、计算租赁费用、付费等步骤。
3.支付管理。游客付费时可以选择现金和信用卡付款两种方式。使用信用卡支付可 以享受3%的折扣,现金支付没有折扣。 4.游客取消预定。预定成功之后,游客可以在任何时间取消预定,但需支付赔偿金, 剩余部分则退还给游客。赔偿金的计算规则是,在预定入住时间之前的48小时内取消,支付 租赁费用10%的赔偿金;在预定入住时间之后取消,则支付租赁费用50%的赔偿金。 5.自动取消预定。如果遇到恶劣天气(如暴雨、山洪等),系统会自动取消所有的预 定,发布取消预定消息,全额退款。 6.信息查询。售票处工作人员查询小木屋和营地的预定情况和使用情况,以判断是 否能够批准游客的预定申请。 现采用面向对象方法开发上述系统,得到如表1-6所示的用例列表和表1-7所示的类列 表。对应的用例图和类图分别如图1-12和图1-13所示。 表1-6 用例列表 用例名 说 明 ManageInquiries 管理预定申请 MakeReservation 预定 ManagePayment 支付管理 游客取消预定 CancelReservati on CheckAvailabili ty PublishMessage 用例名 说 明 ManageCashPayme nt 现金支付 ManageCrCardPay ment 信用卡支付 GetDiscount 计算付款折扣 AutoCancelReser 系统自动取消预 vation 定 信息查询 CalculateRefund 计算取消预定的 赔偿金 发布取消预定消 息 表1-7 类列表 类名 说明 NationalPark 国家公园 Reservation 预定申请 TicketingOffice r Bungalow Discount 售票处 小木屋 付款折扣 CreditCardPayme nt 信用卡支付 类名 Customer 说明 游客 ReservationItem 预定申请内容 CampSite Payment 营地 付款 CashPayment 现金支付 Rate 租赁费用
8、[问题1] 根据说明中的描述与表1-6,给出图1-12中UC1~UC6处所对应的用例名称。 9、[问题2] 根据说明中的描述与表1-7,给出图1-13中C1~C7处所对应的类名。 10、[问题3] 对于某些需求量非常大的小木屋或营地,说明中功能4的赔偿金计算规则,不足以弥 补取消预定所带来的损失。如果要根据预定的时段以及所预定场地的需求量,设计不同层次 的赔偿金计算规则,需要对图1-13进行怎样的修改?(请用文字说明。) [试题4] 阅读下列说明和C代码,回答下列问题。 [说明] 设有n个货物要装入若干个容量为C的集装箱以便运输,这n个货物的体积分别为{s1, s2,...,sn},且有s1≤c(1≤i≤n)。为节省运输成本,用尽可能少的集装箱来装运这n个货
物。 下面分别采用最先适宜策略和最优适宜策略来求解该问题。 最先适宜策略(firstfit)首先将所有的集装箱初始化为空,对于所有货物,按照所给 的次序,每次将一个货物装入第一个能容纳它的集装箱中。 最优适宜策略(bestfit)与最先适宜策略类似,不同的是,总是把货物装到能容纳它 且目前剩余容量最小的集装箱,使得该箱子装入货物后闲置空间最小。 [C代码] 下面是这两个算法的C语言核心代码。 11变量说明 n:货物数 C:集装箱容量 s:数组,长度为n,其中每个元素表示货物的体积,下标从0开始 B:数组,长度为n,b[i]表示第i+1个集装箱当前已经装入货物的体积,下标从0开始 i,j:循环变量 k:所需的集装箱数 min:当前所用的各集装箱装入了第i个货物后的最小剩余容量 m:当前所需要的集装箱数 temp:临时变量 12函数firstfit int firstfit13 { int i, j; k=0; for(i=0; i<n; i++){ b[i]=0; } for i=0; i<n; i++) { ______; while (C-b [j]<s [i]){ j++; } ______; k=k>(j+1)? k: (j+1); } return k; } 14函数bestfit int bestfit13 { int i, j ,min, m, temp; k=0; for (i=0; i<n; i++) { b[i]=0; } for (i=0; i<n; i++) { min=C; m=k+1; for (j=0; j<k+1; j++) { temp=C-b [j]-s [i]; if(temp>0 && temp<min) { ______; m=j; }
} ______; k=k>(m+1)? k: (m+1); } return k; } 11、[问题1] 根据[说明]和[C代码],填充C代码中的空缺处。 12、[问题2] 根据[说明]和[C代码],该问题在最先适宜和最优适宜策略下分别采用了______和 ______算法设计策略,时间复杂度分别为______和______(用O符号表示)。 13、[问题3] 考虑实例n=10,C=10,各个货物的体积为{4,2,7,3,5,4,2,3,6,2}。该实例 在最先适宜和最优适宜策略下所需的集装箱数分别为______和______。考虑一般的情况,这 两种求解策略能否确保得到最优解?______(能或否)。 [试题5] 14、阅读下列说明和C++代码,回答下列问题。 [说明] 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模 式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department为例, 其类图如图1-14所示。 [C++代码] #include<iostream> using namespace std; class Department{/*代码省略*/}; class IDepartment{ public: ______=0; ______=0; }; class SqlserverDepartment: ______{
public: void Insert(Department* department){ cout<<"Insert a record into Department in SQL Server!\n"; //其余代码省略 } Department GetDepartment(int id){ } }; class AccessDepartment: ______{ public: void Insert(Department* department){ cout<<"Insert a record into Department in ACCESS!\n"; //其余代码省略 } Department GetDepartment(int id){ /*代码省略*/ } }; ______{ public: ______=0; }; class SqlServerFactory: public IFactory{ public: IDepartment* CreateDepartment() {return new SqlserverDepartment(); } }; class AccessFactory:public IFactory{ public: IDepartment* CreateDepartment() { //其余代码省略 }; return new AccessDepartment() ; } [试题6] 15、阅读下列说明和Java代码,回答下列问题。 [说明] 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模 式设计该系统。以SOLServer和Access两种数据库以及系统中的数据库表Department为例, 其类图如图1-15所示。
分享到:
收藏