当前位置:首页计算机类软件水平考试中级软件设计师->2021年软件设计师模拟题6

2021年软件设计师模拟题6

卷面总分:6分 答题时间:240分钟 试卷题量:6题 练习次数:125次
填空题 (共4题,共4分)
1.

阅读下列说明和C++代码,将应填入
(n)
处的字句写在答题纸的对应栏内。
【说明】
  某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。表5-1

中级软件设计师,模拟考试,2021年软件设计师模拟题6

 为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图5-1所示。

中级软件设计师,模拟考试,2021年软件设计师模拟题6

图5-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。 【C++ 代码】 #include

标记 纠错
2.

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某网上药店允许顾客凭借医生开具的处方,通过网络在该药店购买处方上的药品。该网上药店的基本功能描述如下:
(1)注册。顾客在买药之前,必须先在网上药店注册。注册过程中需填写顾客资料以及付款方式(信用卡或者支付宝账户)。此外顾客必须与药店签订一份授权协议书,授权药店可以向其医生确认处方的真伪。
(2)登录。已经注册的顾客可以登录到网上药房购买药品。如果是没有注册的顾客,系统将拒绝其登录。
(3)录入及提交处方。登录成功后,顾客按照“处方录入界面”显示的信息,填写开具处方的医生的信息以及处方上的药品信息。填写完成后,提交该处方。
(4)验证处方。对于已经提交的处方(系统将其状态设置为“处方已提交”),其验证过程为:
①核实医生信息。如果医生信息不正确,该处方的状态被设置为“医生信息无效”,并取消这个处方的购买请求;如果医生信息是正确的,系统给该医生发送处方确认请求,并将处方状态修改为“审核中”。
②如果医生回复处方无效,系统取消处方,并将处方状态设置为“无效处方”。如果医生没有在7天内给出确认答复,系统也会取消处方,并将处方状态设置为“无法审核”。
③如果医生在7天内给出了确认答复,该处方的状态被修改为“准许付款”。
系统取消所有未通过验证的处方,并自动发送一封电子邮件给顾客,通知顾客处方被取消以及取消的原因。
(5)对于通过验证的处方,系统自动计算药品的价格并邮寄药品给己经付款的顾客。
该网上药店采用面向对象方法开发,使用UML进行建模。系统的类图如图3-1所示。

中级软件设计师,模拟考试,2021年软件设计师模拟题6
中级软件设计师,模拟考试,2021年软件设计师模拟题6

标记 纠错
3.

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

【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算Am×n*Bn×p,需要m*n*p次乘法运算。 矩阵相乘满足结合律,多个矩阵相乘,不同的计算顺序会产生不同的计算量。以矩阵A110×100,A2100×5,A35×50三个矩阵相乘为例,若按(A1*A2)*A3计算,则需要进行10*100*5+10*5*50=7500次乘法运算;若按A1*(A2*A3)计算,则需要进行100*5*50+10*100*50=75000次乘法运算。可见不同的计算顺序对计算量有很大的影响。 矩阵链乘问题可描述为:给定n个矩阵

标记 纠错
4.

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
  某学校拟开发一套实验管理系统,对各课程的实验安排情况进行管理。
【需求分析】
  一个实验室可进行多种类型不同的实验。由于实验室和实验员资源有限,需根据学生人数分批次安排实验室和实验员。一门课程可以为多个班级开设,每个班级每学期可以开设多门课程。一门课程的一种实验可以根据人数、实验室的可容纳人数和实验类型,分批次开设在多个实验室的不同时间段。一个实验室的一次实验可以分配多个实验员负责辅导实验,实验员给出学生的每次实验成绩。
  (1)课程信息包括:课程编号、课程名称、实验学时、授课学期和开课的班级等信息;实验信息记录该课程的实验进度信息,包括:实验名、实验类型、学时、安排周次等信息,如表2-1所示。

中级软件设计师,模拟考试,2021年软件设计师模拟题6
中级软件设计师,模拟考试,2021年软件设计师模拟题6
中级软件设计师,模拟考试,2021年软件设计师模拟题6
中级软件设计师,模拟考试,2021年软件设计师模拟题6

标记 纠错
问答题 (共2题,共2分)
5.

某集团公司拥有多个大型连锁商场,公司需要构建一个数据库系统以方便管理其业务运作活动。

【需求分析结果】

(1)商场需要记录的信息包括商场编号(编号惟一)、商场名称、地址和联系电话。某商场信息如表3-4所示。

表3-4 商场信息表

中级软件设计师,模拟考试,2021年软件设计师模拟题6

(2)每个商场包含不同的部门,部门需要记录的信息包括部门编号(集团公司分配)、部门名称、位置分布和联系电话。某商场的部门信息如表3-5所示。

表3-5 部门信息表

中级软件设计师,模拟考试,2021年软件设计师模拟题6

(3)每个部门雇佣多名员工处理日常事务,每名员工只能隶属一个部门(新进员工在培训期不隶属于任何部门)。员工需要记录的信息包括员工编号(集团公司分配)、姓名、岗位、电话号码和工资。员工信息如表3-6所示。

表3-6 员工信息表

中级软件设计师,模拟考试,2021年软件设计师模拟题6

(4)每个部门的员工中有一名是经理,每个经理只能管理一个部门,系统需要记录每个经理的任职时间。

【概念模型设计】

根据需求阶段搜集的信息,设计实体联系图(如图3-17)和关系模式(不完整)。

中级软件设计师,模拟考试,2021年软件设计师模拟题6

【关系模式设计】

商场(商场编号,商场名称,地址,联系电话)

部门(部门编号,部门名称,位置分布,联系电话,(a))

员工(员工编号,员工姓名,岗位,电话号码,工资,(b))

经理((c),任职时间)

【问题1】

根据问题描述,补充4个联系,完善图3-17所示的实体联系图。联系名可用联系1、联系2、联系3和联系4代替,联系的类型分为1:1、1:n和m:n。

【问题2】

根据实体联系图,将关系模式中的空(a)-(c)补充完整,并分别给出部门、员工和经理 ?关系模式的主键和外键。

【问题3】

为了使商场有紧急事务时能联系到轮休的员工,要求每位员工必须且只能登记一位紧急联系人的姓名和联系电话,不同的员工可以登记相同的紧急联系人。则在图3-17中还需添加的实体是(1),该实体和图3-17中的员工存在(2)联系(填写联系类型)。给出该实体的关系模式。

标记 纠错
6.

阅读以下说明和Java程序,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。

【说明】

以下Java代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分接口、类及其关系如图5-1所示。

中级软件设计师,模拟考试,2021年软件设计师模拟题6

中级软件设计师,模拟考试,2021年软件设计师模拟题6

【Java代码】

interface?DrawCircle?{? //绘制圆形 public(1) ;}class?RedCircle?implements?DrawCircle?{? ?//绘制红色圆形???????public?void?drawCircle(int?radius,intx,?int?y)??{????????????System.out.println("Drawing?Circle[red,radius:"?+?radius?+",x:"?+?x?+?",y:"?+y+?"]");???????}}class?GreenCircle?implements?DrawCircle?{????//绘制绿色圆形??????public?void?drawCircle(int?radius,?int?x,int?y)?{???????????System.out.println("Drawing?Circle[green,radius:"?+radius+",x:?"?+x+?",y:?"?+y+?"]");??????}}abstract?class?Shape?{????//形状? protected? ? (2)???;? ? public?Shape(DrawCircle?drawCircle)?{? ?this.drawCircle=?drawCircle;? ? ? public?abstract?void?draw();}class?Circle?extends?Shape?{? //圆形? ?private?int?x,y,radius;? public?Circle(int?x,int?y,intradius,DrawCircle?drawCircle)?{? ?(3)???;? this.x?=?x;? ? ? this.y?=?y;? ?this.radius?=radius;? }? ? ?public?void?draw()?{? ? drawCircle.? ?(4)? ?;? ? ? }}public?class?DrawCircleMain?{? public?static?void?main(String[]?args)?{? Shape?redCircle=new?Circle(?100,100,10,? (5) );//绘制红色圆形? Shape?greenCircle=new?Circle(200,200,10,(6) );//绘制绿色圆形? ?redCircle.draw(); greenCircle.draw();? ?}}

标记 纠错

答题卡(剩余 道题)

填空题
1 2 3 4
问答题
5 6
00:00:00
暂停
交卷