2023年软件设计师下午试卷.docx

上传人:太** 文档编号:72233770 上传时间:2023-02-09 格式:DOCX 页数:17 大小:28.74KB
返回 下载 相关 举报
2023年软件设计师下午试卷.docx_第1页
第1页 / 共17页
2023年软件设计师下午试卷.docx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《2023年软件设计师下午试卷.docx》由会员分享,可在线阅读,更多相关《2023年软件设计师下午试卷.docx(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、2023年下半年软件设计师下午试卷第1页(共1页)全国计算机技术与软件专业技术资格(水平)考试2023年下半年软件设计师下午试卷(考试时间14:0016:30共150分钟)请按卜述规定对的填写答题纸1 .在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。2 .在答题纸的指定位置填写准考证号、出生年月日和姓名。3 .答题纸上除填写上述内容外只能写解答。4 .本试卷共7道题,试题一至试题四是必答题,试题五至试题七选答1道。每题15分,满分75分。5 .解答时笔迹务必清楚,笔迹不清时,将不评分。6 .仿照下面例题,将解答写在答题纸的相应栏内。例题2023年下半年全国计算机技术与软件

2、专业技术资格(水平)考试口期是(1)月(2)日。由于对的的解答是“11月4日”,故在答题纸的相应栏内写上“11”和“4”(参看下表)。例题解答栏(1) 11(2) 42023年下半年软件设计师下午试卷第2页(共2页)试题一(共15分)阅读以下说明以及数据流图,回答问题1至问题5,将解答填入答题纸的相应栏内。说明 某银行已有一套基于客户机/服务器模式的储蓄系统A和一套建帐软件。建帐软件主 注册商家可发布促销信息。商家一方面要在自己所销售的商品的分类中,选择促销涉及 的某一具体分类,然后选出该分类的一个或多个商品(一种商品仅仅属于一种分类),接 着制定出一个比较优惠的折扣政策和促销活动的优惠时间,

3、最后由系统生成促销信息并将 该促销信息公布在网站上。商家发布促销信息后,网站的注册用户便可通过网站购买促销商品。用户可选择参与 某一个促销(Promotion)活动,并选择具体的促销商品(Commodity),输入购买数量等购买 信息。系统生成相应的份促销订单(POrder)。只要用户在优惠活动的时间范围内,通过 网站提供的在线支付系统,确认在线支付该促销订单(即完毕支付),就可以优惠的价格 完毕商品的购买活动,否则该促错订单失效。系统采用面向对象方法开发,系统中的类以及类之间的关系用UML类图表达,图3-1 是该系统类图中的一部分;系统的动态行为采用UML序列图表达,图3-2是发布促俏的 序

4、列图。图3-1在线促销系统部分类图(1) (3)(4) 2023年下半年软件设计师下午试卷第7页(共7页)图3-2发布促销序列图问题1(6分)辨认关联的多重度是面向对象建模过程中的一个重要环节。根据说明中给出的描述, 完毕图3-1中的(1)(6)。问题2 (4分)请从表3-1中选择方法,完毕图3-2中的(7)(10)。表3-1可选消息列表 功能描述方法名 向促销订单中添加所选的商品buyConimodilies向促销中添加要促销的商品addCommodities查找某个促销的所有促销订单信息列表getPromotionOrders生成商品信息createCommodity查找某个分类中某商家的

5、所有商品信息列表getCommodities生成促销信息createPromolion生成促销订单信息crcatePOrder查找某个分类的所有促销信息列表gelCalegoryPromotion查找某商家所销售的所有分类列表getCategories查找某个促销所涉及的所有商品信息列表getPromotionCommodities问题3 (5分)关联(Association)和聚集(Aggregation)是UML中两种非常重要的关系。请说明关联和聚集的关系,并说明其不同点。(5)(6) 2023年下半年软件设计师下午试卷第8页(共8页)试题四(共15分)阅读以下说明和图,填补流程图中的空缺

6、,将解答填入答题纸的相应栏内。说明某汽车制造工厂有两条装配线。汽车装配过程如图4-1所示,即汽车底盘进入装配线, 零件在多个工位装配,结束时汽车自动完毕下线工作。a0,0 a0,l a0,2 a0,3 a0,n-2a 1,0 a 1,1 a 1,2 a 1,3 al,n-2tO,OtO,l t0,2 t0,n-2 xOtl,2tl,n-2xleOel底盘.汽车S0,0 SOJ S0,2 S0,3 SO,n-2 SO,n-lS1,OS1,1 Sk2Sl,3Sl,n-2Sl.n-laO,n-lal,n-l图4-1汽车装配线(I)cO和el表达底盘分别进入装配线0和装配线1所需要的时间。(2)每条装

7、配线有n个工位,第一条装配线的工位为S0.0, S0,l,SO,n-l,第二条装配线的工位为S1,O,S1,1, -,Sl,n-lo其中SO,k和Sl,k (OWkWn-1)完毕相同的任务,但所需时间也许不同。(3)ai,j表达在工位Si,j处的装配时间,其中i表达装配线(i=0或i=l), j表达工位号(OWjWn-1 )o(4) ti,j表达从Si,j处装配完毕后转移到另一条装配线下一个工位的时间。(5)x0和xl表达装配结束后,汽车分别从装配线0和装配线1下线所需要的时间。(6)在同一条装配线上,底盘从一个工位转移到其下一个工位的时间可以忽略不计。图4-2所示的流程图描述了求最短装配时间

8、的算法,该算法的输入为:n:表达装配线上的工位数; eil:表达el和e2, i取值为。或1;表达ai,j, i的取值为。或I, j的取值范围为。n-l;表达ti,j, i的取值为。或1, j的取值范围为0n-1; xi:表达xO和xl, i取值为。或1。算法的输出为:丘最短的装配时间;li:获得最短装配时间的下线装配线号(0或者1)。算法中使用的fiR表达从开始点到Si,j处的最短装配时间。2023年下半年软件设计师下午试卷第9页(共9页)开始结束(1) j=1jn ?fOnnnn-1 +xxxx0=ffllfnnnn-l+xxxxl ?(4) (5)=-1 +ttttlU-1 +aaaa0

9、1j ?f0jj=f()j- 1 +aaaaOJlj fl()|(jl=fl 1 |j-11+1 |j1 l+aaaaOUJf llj=fl I Jlj-1 J+aaaa 1 llj fl 1 llil=nO|j- 1 J+ttttO|j-1 J+aaaa 1 UjiYYYNj += += += 1NY初始化数据第0条装配线j号工位完成装配的最短时间第1条装配线j号工位完成装配的最短时间最短装配时间图4-2求最短装配时间算法2023年下半年软件设计师下午试卷第1。页(共10页) 试题五(15分)阅读以下说明、图和C代码,将应填入(n)处的字句写在答题纸的相应栏内。说明一般的树结构常采用孩子一兄

10、弟表达法表达,即用二叉链表作树的存储结构,链表中结点的两个链域分别指向该结点的第个孩子结点和下个兄弟结点。例如,图5-1(a) 所示的树的孩子一兄弟表达如图5-l(b)所示。D ABAFEPCA AAA A A ADBAEFPC(a) (b)图5-1树及其孩子一兄弟表达示意图函数LevelTraverse。的功能是对给定树进行层序遍历。例如,对图5-1所示的树进行层序遍历时,结点的访问顺序为:DBAEFPC o对树进行层序遍历时使用了队列结构,实现队列基本操作的函数原型如卜.表所示: 函数原型说明void InitQueue(Queue *Q)初始化队列Bool IsEmpty(Queue Q

11、)判断队列是否为空,若是则返回TRUE,否则返回FALSEvoid EnQueue(Queue *Q,TreeNo nextbrother;while (brotherptr)EnQueue(&tempQ,brotherp(r);;/*end-while*/while (3) (4);printf(%ct,ptr-data);if (5) continue;;brotherpir = ptr-firstchild-nextbrother;while (brotherptr)EnQueue(&tempQ,brotherptr);;/*cnd-while*/*cnd-while*/return O

12、K;/*LevelTraverse*/ 2023年下半年 软件设计师 下午试卷 第12页(共12页) 试题六(共15分)阅读以下说明和C+代码,将应填入(n)处的字句写在答题纸的相应栏内。说明传输门是传输系统中的重要装置。传输门具有Open (打开)、Closed (关闭)、Opening(正在打开)、StayOpen (保持打开)、Closing (正在关闭)五种状态。触发传输门状态转 换的事件有click complete和timeout三种。事件与其相应的状态转换如图6-1所示。 Closed已关闭Closing正在关闭Opening正在打开Open打开StayOpen保持打开click

13、completecompletetimeoutclickclickclickclick图6-1传输门响应事件与其状态转换图 下面的C+代码1与C+代码2分别用两种不同的设计思绪对传输门进行状态模拟, 要用于将储蓄所手工解决的原始数据转换为系统A所需的数据格式。该建帐软件具有以下 功能:(1)分户帐录入:手工办理业务时建立的每个分户帐数据均由初录员和复录员分别录入,以保证数据的对的性;(2)初录/复录比对:将初录员和复录员录入的数据进行一一比较,并标记两套数据是否一致;(3)数据确认:当上述两套数据完全一致后,将其中任套作为最终进入系统A的原始数据;(4)汇总核对和打印:对通过确认的数据进行汇总

14、,井和会计账目中的相关数据进行核对,以保证数据的整体对的性,并打印输出通过确认的数据,为以后核兖也许的错误提供依据;(5)数据转换:将通过确认的数据转换为储蓄系统A需要的中间格式数据;(6)数据清除:为加快初录和复录的解决速度,在数据确认之后,可以有选择地清除初录员和复录员录入的数据。该软件的数据流图如图1-1图1-3所示。图中部分数据流数据文献的格式如下:初录分户帐=储蓄所号+帐号+户名+开户日+开户金额+当前余额+性质复录分户帐=储蓄所号+帐号+户名+开户日+开户金额+当前余额+性质初录数据=手工分户帐+ 一致性标志复录数据=手工分户帐+ 一致性标志会计账目=储蓄所号+总户数+总余额操作结

15、果=初录操作结果+比对操作结果+复录操作结果试题一至试题四是必答题2023年下半年软件设计师下午试卷第3页(共3页)1录入比对2数据确认确认的数据请填补代码中的空缺。C+代码Iconst int CLOSED = 1; const int OPENING = 2;const int OPEN = 3; const int CLOSING = 4;const int STAYOPEN = 5; 定义状态变量,用不同整数表达不同状态class Door private:int stale; 传输门当前状态void setState(int state) this-state = state; /设

16、立当前状态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; 2023 年下半年 软件设计师 下午试卷第13页(共13页)case STAYOPEN: cout STAYOPEN cndl; break;)void

17、click() 发生click事件时进行状态转换if( (1) ) sctStatc(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 (slate = CLOSING) setStace(CLOSE

18、D););int main()Door aDoor;aDoor.getState(); aDoor.clickO; aDoor.getState(); aDple(e();aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.click();aDoor.getS(ate(); return 0;C+代码2class Door public:DoorState CLOSED, *OPENING *OPEN, *CLOSING *STAYOPEN, *state;Door();virtual -Door() 释放申请的内存,此处代码省略;

19、void setStatc(DoorState *statc) this-state = state; void getSta(e()/此处代码省略,本方法输出状态字符串, 例如,当前状态为CLOSED时,输出字符串为CLOSED” void click();void timeout。;void complete();;2023年下半年软件设计师下午试卷第14页(共14页)Door:Door()CLOSED = new DoorClosed(this); OPENING = new DoorOpening(this);OPEN = new DoorOpen(this); CLOSING = n

20、ew DoorClosing(this);STAYOPEN = new DoorStayOpen(this); state = CLOSED;void Door:click() (4) ;) void Door:timeout() (5) ; void Door:complete() (6) ; class DoorSlate/定义一个抽象的状态,它是所有状态类的基类 protected: Door *door;public:DoorState(Door *door) this-door = door;)virtual -DoorState(void);virtual void click()

21、 virtual void complete() virtual void timcout() class DoorCloscd :public DoorStatc 定义一个基本的 Closed 状态public:DoorClosed(Door *door):DoorS(ate(door) virtual - DoorClosed ()void click(););void DoorCloscd:click() (7) ; /其它状态类的定义与实现代码省略int main()Door aDoor;aDoor.getState(); aDoor.click(); aDoor.getState()

22、; aDplete();aDoor.getState(); aDoor.timeout(); aDoor.getState(); return 0;)2023年下半年软件设计师下午试卷笫15页(共15页)试题七(共15分)阅读以下说明以及Java程序,将应填入(n)处的字句写在答题纸的相应栏内。说明传输门是传输系统中的重要装置。传输门具有Open (打开)、Closed (关闭)、Opening(正在打开)、StayOpen (保持打开)、Closing (正在关闭)五种状态。触发状态的转换事 件有click complete和limeout三种。事件与其相应的状态转换如图7-1所示。Clos

23、ed己关闭Closing正在关闭Opening正在打开Open打开StayOpen保持打开clickcompletecompletetimeoutclickclickclickclick图7-1传输门响应事件与其状态转换图下面的Java代码1与Java代码2分别用两种不同的设计思绪对传输门进行状态模 拟,请填补代码中的空缺。(Javaava Java 代码 11public class Door public static final int CLOSED = 1; public static final int OPENING = 2;public static final int OPEN

24、 = 3; public static final int CLOSING = 4;public static final int STAYOPEN = 5; private int state = CLOSED;定义状态变量,用不同的整数表达不同状态private void setState(int state)this.state = state; 设立传输门当前状态public void gctStatc()此处代码省略,本方法输出状态字符串, 例如,当前状态为CLOSED时,输出字符串为” CLOSED public void click() 发生click事件时进行状态转换 if(

25、(1) ) setState(OPENING);else if( (2) ) setState(CLOSING);else if( (3) ) setState( STAYOPEN);2023年下半年软件设计师下午试卷第16页(共16页)发生timeout事件时进行状态转换public void limeout() if (slate = OPEN) setState(CLOSING); public void compleie。(发生complete事件时进行状态转换if (state = OPENING) setState(OPEN);else if (state = CLOSING) s

26、etStatc(CLOSED);)public static void main(String args)Door aDoor = new Door();aDoor.getState(); aDoor.click(); aDoor.getState(); aDplete();aDoor.getState(); aDoor.click(); aDoor.getState(); aDoor.click();aDoor.getState(); return;Javaava Java 代码 2public class Door public final DoorState CLOSED = new D

27、oorClosed(this);public final DoorState OPENING = new DooiOpcning(this);public final DoorState OPEN = new DoorOpen(this);public final DoorState CLOSING = new DoorClosing(this);public final DoorState STAYOPEN = new DoorStayOpen(this);private DoorState state = CLOSED;设立传输门当前状态public void setState(DoorS

28、tate state) this.state = state; public void getState。根据当前状态输出相应的状态字符串System.out.println(state.getClass().getName();public void click() (4) ;)发生click事件时进行状态转换public void timeout() (5) ;发生timeout事件时进行状态转换public void complete()( (6) ;发生 complete 事件时进行状态转换public static void main(String args)Door aDoor =

29、 new Door();aDoor.getState(); aDoor.click(); aDoor.getState(); aDplete();aDoor.getState(); aDoor.timeout(); aDoor.getState(); return;2023年下半年 软件设计师下午试卷第17页(共17页)public abstract class DoorState 定义所有状态类的基类protected Door door;public DoorStatc(Door door) this.door = door; public void click() public void

30、 complcte() public void limeout() class DoorClosed extends DoorState定义一个基本的 Closed 状态public DoorClosed(Door door) super(door); public void click() (7) ; 该类定义的其余代码省略其余代码省略3汇总核对6数据清除4打印清单5数据转换打印机建帐软件初录员/复录员会计系统A会计账目操作结果核对结果手工分中 间 格 式 数 据 分 户 帐 清 单 操 作 结 果 手 工 分 户 帐 中 间 格 式据分户帐清单会计账目核对结果图1-1建帐软件顶层数据流图图

31、1-2建帐软件第0层数据流图初录员复录员1.2 复录1.3 比对初录数据复录数据初录比对操作结果初录作 结 果 复 录 操 作 结 果 初 录 分 户 帐 初 录 结 果 复 录 分 户 帐 复 录果图1-3建帐软件第1层数据流图2023年下半年软件设计师下午试卷第4页(共4页)软件需要打印的分户帐清单样式如表1-1所示:表1-1分户帐清单样式表储蓄所帐号开户日户名其他分户帐数据储蓄所1储蓄所1合计共XXX户,总余额9999999.99元储蓄所2储蓄所2合计共XXX户,总余额9999999.99元问题1 (4分)请采用说明中的词汇,给出数据确认解决所需的数据流在第1层图中的所有可选起点 (第0

32、层图和第1层图中均未给出)。问题2 (2分)不考虑数据确认解决(加工2),请指出数据流图中存在的错误。问题引(2分)打印分户帐清单时,必须以下列哪一组数据作为关键字进行排序,才干满足需求?请从卜面选项中选择,并将相应序号填入答题纸相应栏。储蓄所帐号开户日总户数和总余额问题4 (4分)加工1 (录入比对解决)除可以检查出初录数据和复录数据不一致外,还应当检测出下列哪些错误,请将相应序号填入答题纸相应栏。输入的无效字符输入的半个汉字显示器无法显示初录员反复录入同一帐户汇总数据与会计账目不符打印机卡纸问题5 (3分)请使用数据字典条目定义形式,给出第0层DFD中的“手工分户帐”数据流和第1层 DFD

33、中的“初录分户帐”、“复录分户帐”的关系。2023年下半年软件设计师下午试卷第 5页(共5页)试题二(共15分)阅读以下说明,回答问题1至问题4,将解答填入答题纸的相应栏内。说明某宾馆需要建立一个住房管理系统,部分的需求分析结果如下:(1) 一个房间有多个床位,同一房间内的床位具有相同的收费标准。不同房间的床位 收费标准也许不同。(2)每个房间有房间号(如201、202等)、收费标准、床位数目等信息。(3)每位客人有身份证号码、姓名、性别、出生日期和地址等信息。(4)对每位客人的每次住宿,应当记录其入住日期、退房日期和预付款额信息。(5)管理系统可查询出客人所住房间号。根据以上的需求分析结果,

34、设计一种关系模型如图2-1所示:房间住宿客人m n图2-1住房管理系统的实体联系图问题I(1分)根据上述说明和实体-联系图,得到该住房管理系统的关系模式如卜所示,请补充住 宿关系。房间(房间号,收费标准,床位数目) 客人(身份证号,姓名,性别,出生日期,地址)住宿(1),入住日期,退房日期,预付款额)问题2 (4分)请给出问题1中住宿关系的主键和外键。问题3 (4分)若将上述各关系直接实现为相应的物理表,现需查询在2023年1月1日到2023年12 月31日期间,在该宾馆住宿次数大于5次的客人身份证号,并且按照入住次数进行降序 排列。下面是实现该功能的SQL语句,请填补语句中的空缺。SELEC

35、T住宿.身份证号,counl(入住日期)FROM住宿,客人WHERE 入住日期 =20230101 AND 入住日期 5(3) 问题4 (6分)为加快SQL语句的执行效率,可在相应的表上创建索引。根据问题3中的SQL语句, 除主键和外键外,还需要在哪个表的哪些属性上创建索引,应当创建什么类型的索引,请 说明因素。2023年下半年软件设计师下午试卷第6页(共6页)试题三(共15分)阅读以下说明和图,回答问题1至问题3,将解答填入答题纸的相应栏内。说明S公司开办了在线电子商务网站,重要为各注册的商家提供在线商品销售功能。为更好地吸引用户,S公司计划为注册的商家提供商品(Commodity)促销(Promotion)功能。商品的分类(Calegory)不同,促销的方式和内容会有所不同。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com