当前位置:首页计算机类软件水平考试中级软件设计师->2021年《软件设计师》下午押题密卷2

2021年《软件设计师》下午押题密卷2

推荐等级:

发布时间: 2021-12-15 17:09

扫码用手机做题

试卷预览

1 问答题 1分

阅读下列说明和图,回答问题1至问题4

【说明】

某大型企业的数据中心为了集中管理、控制用户对数据的访问并支持大量的连接需求,欲构建数据管理中间件,其主要功能如下:

(1)数据管理员可通过中间件进行用户管理、操作管理和权限管理。用户管理维护用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维护权限表,该表存储用户可执行的操作信息。

 (2)中间件验证前端应用提供的用户信息。若验证不通过,返回非法用户信息;若验证通过,中间件将等待前端应用提交操作请求。

 (3)前端应用提交操作请求后,中间件先对请求进行格式检查。如果格式不正确,返回格式错误信息;如果格式正确,则进行权限验证(验证用户是否有权执行请求的操作),

若用户无权执行该操作,则返回权限不足信息,否则进行连接管理。

 (4)连接管理连接相应的后台数据库并提交操作。连接管理先检查是否存在空闲的数据库连接,如果不存在,新建连接;如果存在,则重用连接。

 (5)后端数据库执行操作并将结果传给中间件,中间件对收到的操作结果进行处理后,将其返回给前端应用。

现采用结构化方法对系统进行分析与设计,获得如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。

【问题 1】

使用说明中的词语,给出图1-1中的实体E1~E3的名称。

【问题 2】

使用说明中的词语,给出图1-2中的数据存储D1~D3的名称。

【问题3】

给出图1-2中加工P的名称及其输入、输出流。

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

查看答案 开始考试
正确答案:

本题解析:

?本题考查数据流图(DFD)的应用,是比较传统的题目,要求考生细心分析题目中所描述的内容。

DFD是一种便于用户理解、分析系统数据流程的图形工具。是系统逻辑模型的重要组成部分。

【问题1】???

????本问题考查顶层DFD。顶层DFD一般用来确定系统边界,将待开发系统看作一个加工,因此图中只有唯一的一个加工和一些外部实体,以及这两者之间的输入输出数据流。题目要求根据描述确定图中的外部实体。分析题目中的描述,并结合已经在顶层数据流图中给出的数据流进行分析。题目中有信息描述:数据管理员可通过中间件进行用户管理、操作管理和权限管理;前端应用提交操作请求;连接管理连接相应的后台数据库并提交操作。由此可知该中间件系统有数据管理员、前端应用和后端数据库三个外部实体。从图1-1中数据流和实体的对应关系可知,E1为前端应用,E2为数据管理员,E3为后端数据库。

【问题2】

????本问题考查0层DFD中数据存储的确定。说明中描述:用户信息(用户名、密码)存储在用户表中;标准操作和后端数据库信息存放在操作表中;权限管理维护信息存放在权限表中。因此数据存储为用户表、操作表以及权限表。再根据图1-2可知D1的输入数据流从用户管理来,D2的输入数据流从操作管理来,D3的输入数据流从权限管理来,所以D1为用户表,D2为操作表,D3为权限表。

【问题3】

????本问题考查0层DFD中缺失的加工和数据流。比较图1-1和图1-2,可知顶层DFD中的操作结果和处理后的操作结果没有在0层DFD中体现。再根据描述“后端数据库执行操作并将结果传给中间件,中间件对收到的操作结果进行处理后,将其返回给前端应用”可知,需要有操作结果处理,因此P为操作结果处理,其输入流为从后端数据库E3来的操作结果,输出结果为处理后的操作结果,并返回给前端应用E1。

????考查完P及其输入输出流之后,对图1-2的内部数据流进行考查,以找出缺失的另外2条数据流。从图中可以看出D2和D3只有输入流没有输出流,这是常见DFD设计时的错误,所以首先考查D2和D3的输出流。描述中有“权限验证是验证用户是否有权执行请求的操作,若用户有权执行该操作,进行连接管理;连接管理连接相应的后台数据库并提交操作;权限表存储用户可执行的操作信息”。因此,权限验证有从权限表D3来的输入数据流。而要连接后端数据库,需要数据库信息,从权限验证的输出流中包含有数据库信息可知,权限验证需要获取到数据库信息,所以还需从操作表D2来的输入流。

【问题4】

????本问题考查在绘制数据流图中加工绘制时的注意事项。绘制加工时可能出现的错误有:加工的输入、输出时可能出现只有输入而无输出、只有输出而无输入、输入的数据流无法通过加工产生输出流以及输入的数据流与输出的数据流名称相同等错误。

参考答案:

【问题1】

  E1:前端应用????E2:数据管理员???E3:后端数据库

【问题2】

  D1:用户表??D2:操作表???D3:权限表

【问题3】

 P的名称:操作结果处理?名??称起??点终??点输入流操作结果E3P输出流处理后的操作结果PE1?缺少的数据流:起??点终??点D2权限验证D3权限验证【问题4】

  在绘制数据流图时,可能出现的输入、输出错误

  只有输入而无输出?或者?黑洞????

  只有输出而无输入?或者?奇迹????

  输入的数据流无法通过加工产生输出流?或者?灰洞???

  输入的数据流与输出的数据流名称相同???

2 问答题 1分

阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。

【说明】

以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件 (Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

【Java代码】

interface Item{ public void accept(Visitor visitor); public double getPrice();}class Book (1){ private double price; public Book(double price){(2);} public void accept(Visitor visitor){ //访问本元素 (3); } public double getPrice() { return price; }}//其它物品类略 interface Visitor { public void visit(Book book); //其它物品的visit方法 } class Cashier(4){ private double totalForCart; //访问Book类型对象的价格并累加 (5){ //假设Book类型的物品价格超过10元打8折 if(book.getPrice()<10.0){ totalForCart+=book.getPrice(); } else totalForCart+=book.getPrice()*0.8; } //其它visit方法和折扣策略类似,此处略 public double getTotal() { return totalForCart; }} class ShoppingCart { //normal shopping cart stuff private java.util.ArrayListitems=newjava.util.ArrayList<>(); public double calculatePrice() { Cashier visitor=newCashier(); for(Item item:items) { (6); } doubletotal=visitor.getTotal(); return total; } public void add(Item e) { this.items.add(e); }}

查看答案 开始考试
正确答案:

本题解析:

(1)implements Item

(2)this.price=price

(3)visitor.visit(this)

(4)implements Visitor

(5)public void visit(Book book)

(6)item.accept(visitor)【解析】

这里考察的是访问者模式。其定义如下:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作

第一、四空为接口与实现,接口使用Interface,实现使用implements。第二空this表示类实例本身。第三空为访问本元素。第五空实现接口里面的方法。第六空调用accept方法

3 问答题 1分

现准备为某银行开发一个信用卡系统CCMS,该系统的基本功能如下

(1)信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信息,提交CCMS。如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函。非信用卡客户收到确认函后成为信用卡客户。

(2)信用卡激活。信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡。激活操作结束后,CCMS将激活通知发送给客户,告知客户其信用卡是否被成功激活。

(3)信用卡客户信息管理。信用卡客户的个人信息可以在CCMS中进行在线管理。每位信用卡客户可以在线查询和修改个人信息。

(4)交易信息查询。信用卡客户使用信用卡进行的每一笔交易都会记录在CCMS中。信用卡客户可以通过CCMS查询并核实其交易信息(包括信用卡交易记录及交易额)。

图1-4和图1-5分别给出了该系统的顶层数据流图和0层数据流图的初稿。

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

【问题1】

根据说明,将图1-4中的E1-E3填充完整。

【问题2】

图1-4中缺少3条数据流,根据说明分别指出这3条数据流的起点和终点。(注:数据流的起点和终点均采用图中的符号和描述)

【问题3】

图1-5中有两条数据流是错误的,请指出这两条数据流的名称并改正。(注:数据流的 ?起点和终点均采用图中的符号和描述)

【问题4】

根据说明,将图1-5中P1-P4的处理名称填充完整。

查看答案 开始考试
正确答案:

本题解析:

【问题1】

E1:非信用卡客户? ? ?E2:信用卡客户? ? ?E3:银行

【问题2】

缺少的3条数据流

【问题1】

说明的第(1)条是关于非信用卡用户申请信用卡的,有描述"如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函",再结合图1-4,显然E1是非信用卡用户。从这一描述还可以看出,信用卡申请是要被银行审核的,银行接受申请后把申请验证结果发给CCMS系统,所以E3是银行。

说明的第(2)条和第(3)条是关于信用卡客户的操作权限,对应图1-4中的E2,所以E2是信用卡客户。

【问题2】

由说明的第(1)条可知,非信用卡用户是要先向CCMS提交申请的基本信息,然后CCMS才有反馈信息,所以这里缺少一条由E1到P0的数据流。

信用卡客户向CCMS发出交易记录查询请求后,CCMS还得把查询到的交易记录结果反馈给信用卡客户,所以这里缺少由P0到E2的数据流。

由说明的第(2)条"信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡"可知,对应这一描述缺少一条由E2到P0的数据流。

【问题3】

知道了E1-E3以及P1-P4所代表的含义,找错误的数据流就比较简单了。比较明显的是P4到E1的信用卡申请表这一条,这显然是错误的,而且也违背了数据平衡原则。应该是由非信用卡客户向P4发信用卡申请,即起点是E1,终点是P4。

"激活请求"是信用卡客户向CCMS发送的请求,而不是P4和P3之间的活动,所以这条由P4到P3的数据流是错误的,应修改为起点为E2、终点为P3的数据流。

【问题4】

首先分析问题4,如果问题4的结果出来后错误的数据流就比较明显了。显然P1-P4指的是说明中的(4)条。P1显然对应的是第(4)条--交易信息查询,P2对应的是第(3)条-- 信用卡客户信息管理,P3对应的是第(2)条--信用卡激活,P4对应的是第(1)条--信用卡申请。

【问题1】

说明的第(1)条是关于非信用卡用户申请信用卡的,有描述"如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函",再结合图1-4,显然E1是非信用卡用户。从这一描述还可以看出,信用卡申请是要被银行审核的,银行接受申请后把申请验证结果发给CCMS系统,所以E3是银行。

说明的第(2)条和第(3)条是关于信用卡客户的操作权限,对应图1-4中的E2,所以E2是信用卡客户。

【问题2】

由说明的第(1)条可知,非信用卡用户是要先向CCMS提交申请的基本信息,然后CCMS才有反馈信息,所以这里缺少一条由E1到P0的数据流。

信用卡客户向CCMS发出交易记录查询请求后,CCMS还得把查询到的交易记录结果反馈给信用卡客户,所以这里缺少由P0到E2的数据流。

由说明的第(2)条"信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡"可知,对应这一描述缺少一条由E2到P0的数据流。

【问题3】

知道了E1-E3以及P1-P4所代表的含义,找错误的数据流就比较简单了。比较明显的是P4到E1的信用卡申请表这一条,这显然是错误的,而且也违背了数据平衡原则。应该是由非信用卡客户向P4发信用卡申请,即起点是E1,终点是P4。

"激活请求"是信用卡客户向CCMS发送的请求,而不是P4和P3之间的活动,所以这条由P4到P3的数据流是错误的,应修改为起点为E2、终点为P3的数据流。

【问题4】

首先分析问题4,如果问题4的结果出来后错误的数据流就比较明显了。显然P1-P4指的是说明中的(4)条。P1显然对应的是第(4)条--交易信息查询,P2对应的是第(3)条-- 信用卡客户信息管理,P3对应的是第(2)条--信用卡激活,P4对应的是第(1)条--信用卡申请。

错误的数据流

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

改正后的数据流

【问题1】

说明的第(1)条是关于非信用卡用户申请信用卡的,有描述"如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函",再结合图1-4,显然E1是非信用卡用户。从这一描述还可以看出,信用卡申请是要被银行审核的,银行接受申请后把申请验证结果发给CCMS系统,所以E3是银行。

说明的第(2)条和第(3)条是关于信用卡客户的操作权限,对应图1-4中的E2,所以E2是信用卡客户。

【问题2】

由说明的第(1)条可知,非信用卡用户是要先向CCMS提交申请的基本信息,然后CCMS才有反馈信息,所以这里缺少一条由E1到P0的数据流。

信用卡客户向CCMS发出交易记录查询请求后,CCMS还得把查询到的交易记录结果反馈给信用卡客户,所以这里缺少由P0到E2的数据流。

由说明的第(2)条"信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡"可知,对应这一描述缺少一条由E2到P0的数据流。

【问题3】

知道了E1-E3以及P1-P4所代表的含义,找错误的数据流就比较简单了。比较明显的是P4到E1的信用卡申请表这一条,这显然是错误的,而且也违背了数据平衡原则。应该是由非信用卡客户向P4发信用卡申请,即起点是E1,终点是P4。

"激活请求"是信用卡客户向CCMS发送的请求,而不是P4和P3之间的活动,所以这条由P4到P3的数据流是错误的,应修改为起点为E2、终点为P3的数据流。

【问题4】

首先分析问题4,如果问题4的结果出来后错误的数据流就比较明显了。显然P1-P4指的是说明中的(4)条。P1显然对应的是第(4)条--交易信息查询,P2对应的是第(3)条-- 信用卡客户信息管理,P3对应的是第(2)条--信用卡激活,P4对应的是第(1)条--信用卡申请。

【问题1】

说明的第(1)条是关于非信用卡用户申请信用卡的,有描述"如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函",再结合图1-4,显然E1是非信用卡用户。从这一描述还可以看出,信用卡申请是要被银行审核的,银行接受申请后把申请验证结果发给CCMS系统,所以E3是银行。

说明的第(2)条和第(3)条是关于信用卡客户的操作权限,对应图1-4中的E2,所以E2是信用卡客户。

【问题2】

由说明的第(1)条可知,非信用卡用户是要先向CCMS提交申请的基本信息,然后CCMS才有反馈信息,所以这里缺少一条由E1到P0的数据流。

信用卡客户向CCMS发出交易记录查询请求后,CCMS还得把查询到的交易记录结果反馈给信用卡客户,所以这里缺少由P0到E2的数据流。

由说明的第(2)条"信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡"可知,对应这一描述缺少一条由E2到P0的数据流。

【问题3】

知道了E1-E3以及P1-P4所代表的含义,找错误的数据流就比较简单了。比较明显的是P4到E1的信用卡申请表这一条,这显然是错误的,而且也违背了数据平衡原则。应该是由非信用卡客户向P4发信用卡申请,即起点是E1,终点是P4。

"激活请求"是信用卡客户向CCMS发送的请求,而不是P4和P3之间的活动,所以这条由P4到P3的数据流是错误的,应修改为起点为E2、终点为P3的数据流。

【问题4】

首先分析问题4,如果问题4的结果出来后错误的数据流就比较明显了。显然P1-P4指的是说明中的(4)条。P1显然对应的是第(4)条--交易信息查询,P2对应的是第(3)条-- 信用卡客户信息管理,P3对应的是第(2)条--信用卡激活,P4对应的是第(1)条--信用卡申请。

P1:交易信息查询? ? ? P2:信用卡客户信息管理

P3:信用卡激活 ? ? ? ? P4:信用卡申请【解析】

【问题1】

说明的第(1)条是关于非信用卡用户申请信用卡的,有描述"如果信用卡申请被银行接受,CCMS将记录该客户的基本信息,并发送确认函给该客户,告知客户信用卡的有效期及信贷限额;否则该客户将会收到一封拒绝函",再结合图1-4,显然E1是非信用卡用户。从这一描述还可以看出,信用卡申请是要被银行审核的,银行接受申请后把申请验证结果发给CCMS系统,所以E3是银行。

说明的第(2)条和第(3)条是关于信用卡客户的操作权限,对应图1-4中的E2,所以E2是信用卡客户。

【问题2】

由说明的第(1)条可知,非信用卡用户是要先向CCMS提交申请的基本信息,然后CCMS才有反馈信息,所以这里缺少一条由E1到P0的数据流。

信用卡客户向CCMS发出交易记录查询请求后,CCMS还得把查询到的交易记录结果反馈给信用卡客户,所以这里缺少由P0到E2的数据流。

由说明的第(2)条"信用卡客户向CCMS提交激活请求,用信用卡号和密码激活该信用卡"可知,对应这一描述缺少一条由E2到P0的数据流。

【问题3】

知道了E1-E3以及P1-P4所代表的含义,找错误的数据流就比较简单了。比较明显的是P4到E1的信用卡申请表这一条,这显然是错误的,而且也违背了数据平衡原则。应该是由非信用卡客户向P4发信用卡申请,即起点是E1,终点是P4。

"激活请求"是信用卡客户向CCMS发送的请求,而不是P4和P3之间的活动,所以这条由P4到P3的数据流是错误的,应修改为起点为E2、终点为P3的数据流。

【问题4】

首先分析问题4,如果问题4的结果出来后错误的数据流就比较明显了。显然P1-P4指的是说明中的(4)条。P1显然对应的是第(4)条--交易信息查询,P2对应的是第(3)条-- 信用卡客户信息管理,P3对应的是第(2)条--信用卡激活,P4对应的是第(1)条--信用卡申请。

4 问答题 1分

阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。

【说明】

设有整数数组A[1:N](N>1),其元素有正有负。下面的流程图在该数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标K、元素个数L以及最大的和值M。

例如,若数组元素依次为3,-6,2,4,-2,3,-1,则输出K=3,L=4,M=7。该流程图中考察了A[1:N]中所有从下标i到下标j(j≥i)的各元素之和S,并动态地记录其最大值M。

【流程图】

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1,格式为:循环控制变量=初值,终值

查看答案 开始考试
正确答案:

本题解析:

(1)i,N

(2)S+A[j]

(3)S

(4)j-i+1

(5)S

要想在数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标K、元素个数L以及最大的和值M。

那么,会将数组从第一个元素出发,依次比较A[1],A[1] +A[2],A[1] +A[2]+A[3],……,A[1] +A[2]+…+A[N],然后再比较A[2], A[2] +A[3],A[2] +A[3]+A[4],……,A[2] +A[3]+…+A[N],然后再比较A[3] +A[4],A[3] +A[4]+A[5],……,A[3] +A[4]+…+A[N],直到最后一个元素A[N].

按照这种逻辑,要使用两个循环,且要保存之前求和项。一个是i循环,从1到N递增,另一个是j循环,j表示的是求和项的最大下标值,那么j从i开始,且要小于N。 S+A[j]—>S不断保留A[i]+ A[i+1]+…A[j]的值,直到j循环结束。并将S的值与之前保存的M的值进行比较,如果S>M,则将S的值赋给M,并求出L值,在这里,i是最小下标值,j是最大下标值,那么L=j-i+1。如果S<M,则跳出循环。

5 问答题 1分

阅读下列说明和C代码,回答问题1至问题3

【说明】

??? 某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的第m个位置。对于元素值重复的情况,依次放入第m-l、m-2、…个位置。例如,如果元素值小于等于4的元素个数有10个,其中元素值等于4的元素个数有3个,则4应该在输出元素序列的第10个位置、第9个位置和第8个位置上。算法具体的步骤为:

步骤1:统计每个元素值的个数。

步骤2:统计小于等于每个元素值的个数。

步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。

【C代码】

下面是该排序算法的C语言实现。

(1)常量和变量说明

R: 常量,定义元素取值范围中的取值个数,如上述应用中R值应取6

i:循环变量

n:待排序元素个数

a:输入数组,长度为n

b:输出数组,长度为n

c:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。

(2)函数sort

1??? void sort(int n,int a[],int b[]){

2??? ???int c[R],i;

3?? for (i=0;i< ???(1)? :i++){

4?? ??c[i]=0;

5??? ???}

6??? ???for(i=0;i<n;i++){

7??? ?c[a[i]] = ??(2)? ;

8??? ???}

9 ??for(i=1;i<R;i++){

10??? c[i]= ?(3)

11??? ??}

12 ?for(i=0;i<n;i++){

13??? b[c[a[i]]-1]=? (4)?? ;

14??? c[a[i]]=c[a[i]]-1;

15??? ??}

16??? }

【问题1】

? 根据说明和C代码,填充C代码中的空缺(1)~(4)。

【问题2】

根据C代码,函数的时间复杂度和空间复杂度分别为 (5) 和 (6) (用O符号表示)。

【问题3】?

? 根据以上C代码,分析该排序算法是否稳定。若稳定,请简要说明(不超过100字);若不稳定,请修改其中代码使其稳定(给出要修改的行号和修改后的代码)。

查看答案 开始考试
正确答案:

本题解析:

试题答案 【问题1】

(1)R

(2)c[a[i]]+1

(3)c[i]+c[i -1]

(4)a[i]

【问题2】

(5)O(n+R)或者O(n)或n或线性

(6)O(n+R)或者O(n)或n或线性

【问题3】

不稳定。修改第12行的for循环为:for(i=n-1;i>=0;i--){ 即可。

6 问答题 1分

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】 某快递公司为了方便管理公司物品运送的各项业务活动,需要构建一个物品运送信息管理系统。

【需求分析结果】

(1)快递公司有多个分公司,分公司信息包括分公司编号、名称、经理、办公电话和地址。每个分公司可以有多名员工处理分公司的日常业务,每位员工只能在一个分公司工作。每个分公司由一名经理负责管理分公司的业务和员工,系统需要记录每个经理的任职时间。

(2)员工信息包括员工号、姓名、岗位、薪资、手机号和家庭地址。其中,员工号唯一标识员工信息的每一个元组。岗位包括经理、调度员、业务员等。业务员根据客户提交的快件申请单进行快件受理事宜,一个业务员可以受理多个客户的快件申请,一个快件申请只能由一个业务员受理。调度员根据已受理的申请单安排快件的承运事宜,例如:执行承运的业务员、运达时间等。一个业务员可以执行调度员安排的多个快件的承运业务。 (3)客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银行账号。其中,客户号唯一标识客户信息的每一个元组。当客户要寄快件时,先要提交快件申请单,申请号由系统自动生成。快件申请信息包括申请号、客户号、发件人、发件人电话、快件名称、运费、发出地、收件人、收件人电话、收件地址。其中,一个申请号对应唯一的一个快件申请,一个客户可以提交多个快件申请,但一个快件申请由唯一的一个客户提交。 【概念模型设计】 【关系模型设计】根据需求阶段收集的信息,设计的实体联系图(图2-1)和关系模型(不完整)如下:

中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

分公司(分公司编号,名称,经理,办公电话,地址)

员工(员工号,姓名, (a) ,岗位,薪资,手机号,家庭地址) 客户(客户号,单位名称,通信地址,所属省份,联系人,联系电话,银行账号) 申请单( (b) ,发件人,发件人电话,发件人地址,快件名称,运费,收件人,收件人电话,收件地址,受理标志,业务员) 安排承运( (c) ,实际完成时间,调度员)【问题1】 根据问题描述,补充五个联系,完善图2-1的实体联系图。联系名可用联系1、联系2、联系3、联系4和联系5代替,联系的类型分为1:1、1:n和m:n(或1:1、1:*和*:*)。【问题2】 (1)根据实体联系图,将关系模式中的空(a)~(c)补充完整; (2)给出员工、申请单和安排承运关系模式的主键和外键。【问题3】 (1)客户关系的通信地址可以进一步分为邮编、省、市、街道,那么该属性是否属于简单属性,为什么?请用100字以内的文字说明。 (2)假设分公司需要增设一位经理的职位,那么分公司与经理之间的联系类型应修改为(d),分公司的主键应修改为(e)。

查看答案 开始考试
正确答案:

本题解析:

【问题1】中级软件设计师,押题密卷,2021年《软件设计师》下午押题密卷2

【问题2】(a)分公司编号(b)申请号,客户号(c)申请号,业务员员工: 主键:员工号;外键:分公司编号。申请单: 主键:申请号;外键:客户号,业务员。安排承运:主键:申请号;外键:业务员,调度员。

【问题3】通信地址不是简单属性而是一个复合属性,因为该属性可拆分为多个属性。(d)1:n(e)(分公司编号,经理)

其他考生还关注了更多>

相关题库更多>