2025年上半年软件设计师下午真题试卷_第1页
2025年上半年软件设计师下午真题试卷_第2页
2025年上半年软件设计师下午真题试卷_第3页
2025年上半年软件设计师下午真题试卷_第4页
2025年上半年软件设计师下午真题试卷_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上六個月软件设计師下午试卷第1題阅讀下列阐明和图,回答問題1至問題4,将解答填入答題紙的對应栏内。【阐明】某醫疗器械企业作為复杂醫疗产品的集成商,必须保持高质量部件的及時供应。為了实現這一目的,该企业欲開发一采购系统。系统的重要功能如下:1、检查库存水平。采购部门每天检查部件库存量,當特定部件的库存量降至其订货點時,返回低存量部件及库存量。2、下达采购订單。采购部门针對低存量部件及库存量提交采购祈求,向其供应商(通過供应商文献访問供应商数据)下达采购订單,并存储于采购订單文献中。3、交运部件。當供应商提交提單并交运部件時,运送和接受(S/R)部门通過执行如下三步過程接受货品:(1)验证装运部件。通過访問采购订單并将其与提單進行比较来验证装运的部件,并将提單信息发給S/R职工。假如收货部件项目出目前采购订單和提單上,则已验证的提單和收货部件项目将被送去检查。否则,将S/R职工提交的装运錯误信息生成装运錯误告知发送給供应商。(2)检查部件质量。通過访問质量原则来检查装运部件的质量,并将已验证的提單发給检查员。假如部件满足所有质量原则,则将其添加到接受的部件列表用于更新部件库存。假如部件未通過检查,则将检查员创立的缺陷装运信息生成缺陷装运告知发送給供应商。(3)更新部件库存。库管员根据收到的接受的部件列表添加本次采购数量,与原有库存量累加来更新库存部件中的库存量。標识订單采购完毕。現采用构造化措施對该采购系统進行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。图1-1上下文数据流图图1-20层数据流图問題:1。1使用阐明中的詞語,給出图1-1中的实体E1~E5問題:1.2使用阐明中的詞語,給出图1-2中的数据存储D1~D4的名称。問題:1.3根听阐明和图中术語,补充图1-2中缺失的数据流及其起點和终點。問題:1.4用200字以内文字,阐明建模图1-1和图1-2時怎样保持数据流图平衡。問題1答案解析:問題1:E1供应商 E2采购部门 E3检查员 E4库管员 E5S/R职工問題2答案解析:問題2 D1库存表D2 采购订單表 D3质量原则表 D4供应商表問題3答案解析:装运錯误告知:P3(验证装运部件)-----E1(客户)缺陷装运告知:P4(校验部件质量)-----E1(客户)产品检查:P3(验证装运部件)------P4(校验部件质量)检查库存信息:P1(检查库存水平)-----D1(库存表)問題4答案解析:父图中某個加工的输入输出数据流必须与其子图的输入输出数据流在数量上和名字上相似。父图的一种输入(或输出)数据流對应于子图中几种输入(或输出)数据流,而子图中构成的這些数据流的数据项全体恰好是父图中的這一种数据流。第2題讀下列阐明,回答問題1至問題3,将解答填入答題紙的對应栏内。【阐明】某房屋租赁企业拟開发一种管理系统用于管理其持有的房屋、租客及员工信息。請根据下述需求描述完毕系统的数据库设计。【需求描述】1、企业拥有多幢公寓楼,每幢公寓楼有唯一的楼编号和地址。每幢公寓楼中有多套公寓,每套公寓在楼内有唯一的编号(不一样公寓楼内的公寓号可相似〉。系统需记录每套公寓的卧室数和卫生间数。2、员工和租客在系统中有唯一的编号(员工编号和租客编号)。3、對于每個租客,系统需记录姓名、多种联络電话、一种银行账号(以便自動扣房租)、一种紧急联络人的姓名及联络電话。4、系统需记录每個员工的姓名、一种联络電话和月工资。员工类别可以是經理或维修工,也可兼任。每個經理可以管理多幢公寓楼。每幢公寓楼必须由一种經理管理。系统需记录每個维修工的业务技能,如:水暖维修、電工、木工等。5、租客租赁公寓必须和企业签订租赁协议。一份租赁协议一般由一种或多种租客(合租)与该公寓楼的經理签订,一种租客也可租赁多套公寓。协议内容应包括签订曰期、開始時间、租期、押金和月租金。【概念模型设计】根据需求阶段搜集的信息,设计的实体联络图(不完整)如图2-1所示。【逻辑构造设计】根据概念摸型设计阶段完毕的实体联络图,得出如下关系模式(不完整):联络電话(電话号码,租客编号)租客(租客编号,姓名,银行账号,联络人姓名,联络人電话)员工(员工编号,姓名,联络電话,类别,月工资,(a))公寓楼((b),地址,經理编号)公寓(楼编号,公寓号,卧室数,卫生间数〉协议(协议编号,租客编号,楼编号,公寓号,經理编号,签订曰期,起始曰期,租期,(c),押金)問題:2.1补充图2-1中的“签约”联络所关联的实体及联络类型。問題:2.2补充逻辑构造设计中的(a)、(b)、(c)三处空缺。問題:2.3在租期内,公寓内设施如出現問題,租客可在系统中進行故障登记,填写故障描述,每项故障由系统自動生成唯一的故障编号,由企业派维修工進行故障维修,系统需记录每次维修的维修曰期和维修内容。請根据此需求,對图2-1進行补充,并将所补充的ER图内容转换為一种关系模式,請給出该关系模式。問題1答案解析:問題2答案解析:問題2(a)业务技能(b)楼编号(c)月租金問題3答案解析:新增维修关系,维修工维修公寓,关系模式為维修状况维修状况(故障编号,员工编号,楼编号,公寓号,维修曰期,维修内容)第3題阅讀下列系统设计阐明,回答問題1至問題3,将解答填入答題紙的對应栏内。【阐明】某玩具企业正在開发一套電動玩具在线销售系统,用于向注册會员提供端對端的玩具定制和销售服务。在系统设计阶段,"创立新订單(NewOrder)"的设计用例详细描述如表3-1所示,候选设计类分类如表3-2所示,并根据该用例设计出部分类图如图3-1所示。表3-1创立新订單(NewOrder)设计用例用例名称创立新订單NewOrder用例编号ETM-R002参与者會员前提条件會员已經注册并成功登录系统經典事件流1。會员(C1)點击“新的订單”按钮;

2。系统列出所有正在销售的電動玩具清單及价格(C2)

3。會员點击复选框选择所需電動玩具并输入對应数量,點击“結算”按钮;

4。系统自動计算總价(C3),显示销售清單和會员预先设置個人资料的收货地址和支付方式(C4);

5。會员點击“确认支付”按钮;

6。系统自動调用支付系统(C5)接口支付该账單;

7。若支付系统返回成功標识,系统生成完整订單信息持久存储到数据库订單表(C6)中;

8。系统将以表格形式显示完整订單信息(C7),同步自動发送完整订單信息(C8)至會员预先配置的邮箱地址(C9)。候选事件流3a(1)會员點击“定制”按钮;

(2)系统以列表形式显示所有可以定制的電動玩具清單和定制属性(如尺寸、颜色等)(C10);

(3)會员點击單项选择按钮选择所需要定制的電動玩具并填写所需要定制的属性规定,點击“結算”按钮;

(4)回到环节4。7a(1)若支付系统返回失败標识,系统显示會员目前默认支付方式(C11)让會员确认;

(2)若會员點击“修改付款”按钮,调用“修改付款”用例,可以新增并存储為默认支付方式(C12),回到环节4;

(3)若會员點击“取消订單”,则该用例终止执行。表3-2候选设计类分类接口类(Interface,负责系统与顾客之间的交互)(a)控制类(Control,负责业务逻辑的处理)(b)实体类(Entity,负责持久化数据的存储)(c)

在订單处理的過程中,會员可以點击“取消订單"取消该订單。假如支付失败,该订單将被標识為挂起状态,可後续重新支付,假如挂起超時30分钟未支付,系统将自動取消该订單。订單支付成功後,系统判断订單类型:(1)對于常规订單,標识為备货状态,订單信息发送到货运部,完毕打包後交付快递发货;(2)對于定制定單,會自動進入定制状态,定制完毕後交付快递发货。會员在系统中點击”收货"按钮变為收货状态,結束整個订單的处理流程。根据订單处理過程所设计的状态图如图3-2所示。問題:3.1根据表3-1中所標识的候选设计类,請按照其类别将编号C1~C12分别填入表3-2中的(a)、(b)和(c)处。問題:3.2根据创立新订單的用例描述,請給出图3-1中X1~X4处對应类的名称。問題:3.3根据订單处理過程的描述,在图3-2中S1~S5处分别填入對应的状态名称。問題1答案解析:(a):C4、C5、C7、C8、C10、C11(b):C3(c):C1、C2、C6、C9、C12一、实体类实体类是用于對必须存储的信息和有关行為建模的类。实体對象(实体类的实例)用于保留和更新某些現象的有关信息,例如:事件、人员或者某些現实生活中的對象。实体类一般都是永久性的,它們所具有的属性和关系是長期需要的,有時甚至在系统的整個生存期都需要。二、边界类边界类是系统内部与系统外部的业务主角之间進行交互建模的类。边界类依赖于系统外部的环境,例如业务主角的操作习惯、外部的条件的限制等。它或者是系统為业务主角操作提供的一种GUI,或者系统与其他的系统之间進行一种交互的接口,因此當外部的GUI变化時,或者是通信协议有变化時,只需要修改边界类就可以了,不用再去修改控制类和实体类。业务主角通過它来与控制對象交互,实現用例的任务。边界类调用用例内的控制类對象,進行有关的操作。一种系统也許會有多种边界类:顾客界面类-协助与系统顾客進行通信的类系统接口类-协助与其他系统進行通信的类设备接口类-為用来监测外部事件的设备(如传感器)提供接口的类三、控制类控制类用于對一种或几种用例所特有的控制行為進行建模,它描述的用例的业务逻辑的实現,控制类的设计与用例实既有著很大的关系。在有些状况下,一种用例也許對应多种控制类對象,或在一种控制类對象中對应著對個用例。它們之间没有固定的對应关系,而是根据详细状况進行分析判断,控制类有效将业务逻辑独立于实体数据和边界控制,专注于处理业务逻辑,控制类會将特有的操作和实体类分离,者有助于实体类的统一化和提高复用性。當业务主角通過边界类来执行用例的時候,产生一种控制类對象,在用例被执行完後,控制类對象會被销毁。控制类的特點:独立于环境、和用例的实現关联、使用关联实体类或操作实体类對象、专注于业务逻辑的实現。當然假如用例的逻辑较為简朴,可以直接运用边界类来操作实体类,而不必再使用控制类。或者用例的逻辑较為固定,业务逻辑固定不會变化。也可以直接在边界类实現该逻辑。問題2答案解析:X1:收货地址X2:支付方式X3:邮箱地址X4:電動玩具定制属性問題3答案解析:S1:订單挂起S2:订單备货S3:订單定制S4:订單发货S5:订單收货第4題阅讀下列阐明和C代码,回答問題1至問題3,将解答写在答題紙的對应栏内。【阐明】假币問題:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。現只有一种天平,规定用尽量少的比较次数找出這枚假币。【分析問題】将n枚硬币提成相等的两部分:(1)當n為偶数時,将前後两部分,即1。。。n/2和n/2+1。。。0,放在天平的两端,较轻的一端裏有假币,继续在较轻的這部分硬币中用同样的措施找出假币:(2)當n為奇数時,将前後两部分,即1。。(n-1)/2和(n+1)/2+1。。。0,放在天平的两端,较轻的一端裏有假币,继续在较轻的這部分硬币中用同样的措施找出假币;若两端重量相等,则中间的硬币,即第(n+1)/2枚硬币是假币。【C代码】下面是算法的C語言实現,其中:coins[]:硬币数组first,last:目前考虑的硬币数组中的第一种和最终一种下標#include<stdio。h>intgetCounterfeitCoin(intcoins[],intfirst,intlast){intfirstSum=0,lastSum=0;intì;if(first==last-1){/*只剩两枚硬币*/if(coins[first]<coins[last])returnfirst;returnlast;}if((last-first+1)%2==0){/*偶数枚硬币*/for(i=first;i<(1);i++){firstSum+=coins[i];}for(i=first+(last-first)/2+1;i<last+1;i++){lastSum+=coins[i];}if(2){ReturngetCounterfeitCoin(coins,first,first+(last-first)/2;)}else{ReturngetCounterfeitCoin(coins,first+(last-first)/2+1,last;)}}else{/*奇数枚硬币*/for(i=first;i<first+(last-first)/2;i++){firstSum+=coins[i];}for(i=first+(last-first)/2+1;i<last+1;i++){lastSum+=coins[i];}if(firstSum<lastSum){returngetCounterfeitCoin(coins,first,first+(last-first)/2-1);}elseif(firstSum>lastSum){returngetCounterfeitCoin(coins,first+(last-first)/2-1,last);}else{Return(3)}}}問題問題:4.1根据題干阐明,填充C代码中的空(1)-(3)問題:4.2根据題干阐明和C代码,算法采用了()设计方略。函数getCounterfeitCoin的時间复杂度為()(用O表达)。問題:4.3若输入的硬币数為30,则至少的比较次数為(),最多的比较次数為()。答案解析:問題1(1)first+(last-first)/2或(first+last)/2(2)firstSum<lastSum(3)first+(last-first)/2或(first+last)/2問題2(4)分治法(5)O(nlogn)問題3(6)2(7)4试題分析:若输入30個硬币,找假硬币的比较過程為:第1次:15比15,此時能发現假币在15個的范围内。第2次:7比7,此時,假如天平两端重量相似,则中间的硬币為假币,此時可找到假币,這是最理想的状态。第3次:3比3,此時若平衡,则能找出假币,不平衡,则能确定假币為3個中的1個。第4次:1比1,到這一步無论与否平衡都能找出假币,此時為最多比较次数。第6題阅讀下列阐明和Java代码,将应填入(n)处的字句写在答題紙的對应栏内。【阐明】某快餐厅重要制作并发售小朋友套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类也許不一样,但其制作過程相似。前台服务员(Waiter)调度厨師制作套餐。現采用生成器(Builder)模式实現制作過程,得到如图6-1所示的类图。【Java代码】classPizza{privateStringparts;publicvoidsetParts(Stringparts){this。parts=parts;}publicStringtoString(){returnthis。parts;}}abstractclassPizzaBuilder{protectedPizzapizza;publicPizzagetPizza(){returnpizza;}publicvoidcreateNewPizza(){pizza=newPizza();}public(1);}classHawaiianPizzaBuilderextendsPizzaBuilder{publicvoidbuildParts(){pizza。setParts("cross+mild+ham&pineapp1e”);}}classSpicyPizzaBuilderextendsPizzaBuilder{publicvo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论