2019年下半年软件设计师上午真题及答案解析

目录

1.二手车物流系统的数据流图

2. 技能培训管理系统的数据库设计

3.牙科诊所信息系统的用例图和类图

4.0-1背包问题

5.文件管理系统(Java)


1.二手车物流系统的数据流图

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

【说明】
某公司欲开发一款二手车物流系统,以有效提升物流成交效率。该系统的主要功能是:
(1)订单管理:系统抓取线索,将车辆交易系统的交易信息抓取为线索。帮买顾问看到有买车线索后,会打电话询问买家是否需要物流,若需要,帮买顾问就将这个线索发起为订单并在系统中存储,然后系统帮助买家寻找物流商进行承运。
(2)路线管理:帮买顾问对物流商的路线进行管理,存储的路线信息包括路线类型、物流商、起止地点。路线分为三种,即固定路线、包车路线、竞拍体系,其中固定路线和包车路线是合约制。包车路线的发车时间由公司自行管理,是订单的首选途径。
(3)合约管理:帮买顾问根据公司与物流商确定的合约,对合约内容进行设置,合约信息包括物流商信息、路线起止城市、价格、有效期等。
(4)寻找物流商:系统根据订单的类型(保卖车、全国购和普通二手车)、起止城市,需要的服务模式(买家接、送到买家等)进行自动派发或以竞拍体系方式选择合适的物流商。即:有新订单时,若为保卖车或全国购,则直接分配到竞拍体系中:否则,若符合固定路线和/或包车路线系统自动分配给合约物流商,若不符合固定路线和包车路线,系统将订单信息分配到竞拍体系中。竞拍体系接收到订单后,将订单信息推送给有相关路线的物流商,物流商对订单进行竞拍出价,最优报价的物流商中标。最后,给承运的物流商发送物流消息,更新订单的物流信息车辆交易系统发送物流信息
(5)物流商注册:物流商账号的注册开通。
现采用结构化方法对二手车物流系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

问题:1.1   (3分)

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

E1:帮买顾问;E2:车辆交易系统;E3:物流商。

问题:1.2   (5分)

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

D1:线索信息表/线索信息存储;D2:订单信息表/订单信息存储;
D3:路线信息表/路线信息存储;D4:合约信息表/合约信息存储;
D5:物流商信息表。

问题:1.3   (4分)

根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。

数据名

起点

终点

物流信息

P5/寻找物流商

E2/车辆交易系统

新订单信息

D2/订单信息表

P5/寻找物流商

路线信息

D3/路线信息表

P5/寻找物流商

合约信息

D4/合约信息表

P5/寻找物流商

问题:1.4   (3分)

根据说明,采用结构化语言对“P5: 寻找物流商”的加工逻辑进行描述。

寻找物流商{WHILE(有新订单)DO{IF订单类型IN(‘保卖车’,’全国购’)THEN分配订单到竞拍体系;ELSE IF订单.路线符合固定路线或包车路线THEN 自动分配订单给合约物流商;ELSE分配订单到竞拍体系;ENDIF ENDIF给承运的物流商发送信息;更新订单的物流信息;给车辆交易系统发送物流信息;} ENDDO
}
竞拍体系{WHILE(收到订单)DO{推送订单信息给有相关路线的物流商;物流商竞拍出价;最优报价物流商中标;}ENDDO
}或
寻找物流商{WHILE(有新订单)DO{IF订单类型==’普通二手车’ AND订单.路线符合固定路线或包车路线THEN自动分配订单给合约物流商; ELSE分配订单到竞拍体系;ENDIF给承运的物流商发送信息;更新订单的物流信息;给车辆交易系统发送物流信息;} ENDDO
}
竞拍体系{WHILE(收到订单)DO{推送订单信息给有相关路线的物流商;物流商竞拍出价;最优报价物流商中标;}ENDDO
}

2. 技能培训管理系统的数据库设计

公司拟开发新入职员工的技能培训管理系统以便使新员工快速胜任新岗位。

1.部门信息包括:部门号、名称、部门负责人、电话等,部门号唯一标识部门关系中的每一个元组,一个部门有多个员工,但一名员工只属于一个部门,每个部门只有一名负责人,负责部门工作。

2.员工信息包括员工号、姓名、部门号、岗位、基本工资、电话、家庭住址等,其中员工号是唯一标示员工关系中的每一个元组。岗位有新入职员工,培训师、部门负责人等不同岗位设置不同的基本工资,新入职员工要选择多门课程进行培训,并通过考试取得课程成绩,一名培训师可以讲授多门课程、一门课程可由多名培训师讲授。

3.课程信息包括课程号,课程名称、学时等;其中课程号唯一标识课程关系的每一个元组。

关系模式设计

部门(部门号,部门名,部门负责人,电话)

员工(员工号,姓名,部门号,d,电话,家庭住址)

课程(e,课程名称,学时)

讲授(课程号,培训师,培训地点)

培训(课程号,(f) )

根据需求阶段收集的信息,设计的实体联系图如图2-1所示

问题:2.1

(1)补充图2 -1中的空(a) - (c)

(a)部门负责人;(b)培训师;(c)新入职员工

(2)图2-1中是否存在缺失联系,若存在,则说明所缺失的联系和联系类型

存在缺失联系:员工与部门之间隶属关系,联系类型*:1。

(或,存在缺失联系:部门与员工之间隶属关系,联系类型1:*)。

问题:2.2   根据题意,将关系模式中的空(d) - (f) 补充完整

(d)岗位,基本工资;(e)课程号;(f)新入职员工/新入职员工工号,课程成绩

问题:2.3   员工关系模式的主键为(g) ,外键为(h) ,讲授关系模式的主键为(i) ,外键为(j)。

关系模式

主键

外键

员工关系

(g)员工号

(h)部门号

讲授关系

(i)(培训师,课程号)

(j)课程号、培训师

问题:2.4   员工关系是否存在传递依赖?用100字以内的文字说明理由。

存在传递函数依赖。

在员工关系中,员工的岗位有新入职员工,培训师,部门负责人,不同岗位设置不同的基本工资,即存在传递函数依赖,员工号→岗位,岗位→基本工资。

3.牙科诊所信息系统的用例图和类图

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

【说明】
某牙科诊所拟开发一套信息系统, 用于管理病人的基本信息和就诊信息。 诊所工作人员包括:医护人员(DentalStaff)、 接待员(Receptionist) 和办公人员(OfficeStaff) 等。系统主要功能需求描述如下:
1.记录病人基本信息(Maintain patient info)。初次就诊的病人, 由接待员将病人基本信息录入系统。病人基本信息包括病人姓名、身份证号、出生日期、性别、首次就诊时间和最后一次就诊时间等。每位病人与其医保信息(MedicalInsurance)关联。
2.记录就诊信息(Record office visit info)。 病人在诊所的每一次就诊,由接待员诊信息(Office Visit) 录入系统。就诊信息包括就诊时间、就诊费用、支付代码、病人支付费用和医保支付费用等。
3.记录治疗信息 (Record dental procedure)。 病人在就诊时,可能需要接受多项治疗,每项治疗(Procedure)可能由多位医护人员为其服务。治疗信息包括:治疗项目名称、治疗项目描述、治疗的牙齿和费用等。治疗信息由每位参与治疗的医护人员分别向系统中录入
4.打印发票(Print invoices)发票(Invoice)办公人员打印。发票分为两种:给医保机构的发票(InsuranceInvoice) 和给病人的发票(PatientInvoice)。 两种发票内容相同,只是支付的费用不同。当收到治疗费用后,办公人员在系统中更新支付状态(Enterpayment)
5.记录医护人员信息(Maintain dental staff info)办公人员将医护人员信息录入系统。医护人员信息包括姓名、职位、身份证号、家庭住址和联系电话等。
6.医护人员可以查询并打印其参与的治疗项目相关信息(Search and print procedureinfo)
现采用面向对象方法开发该系统,得到如图3-1所示的用例图和3-2所示的初始类图。

问题:3.1   (6分)

根据说明中的描述,给出图3-1中A1~A3所对应的参与者名称和U1~U3所对应的用例名称。

A1: Receptionist(接待员)

A2: DentalStaff(医护人员)

A3: OfficeStaff(办公人员)

U1:Maintainpatientinfo (记录病人基本信息)

U2:Recordofficevisitinfo (记录就诊信息)

U3: Print invoices(打印发票)

问题:3.2   (5分)

根据说明中的描述,给出图3-2中C1~C5所对应的类名。

C1: Patient Invoice

C2: InsuranceInvoice

C3: Invoice

C4: Procedure

C5:OfficeVisit

问题:3.3   (4分)

根据说明中的描述,给出图3-2中类C4、C5、Patient 和DentalStaff的必要属性。

C4:治疗项目名称、治疗项目描述、治疗的牙齿和费用、Office Visit、Dental Staff

C5:病人就诊时间和费用、支付代码、病人支付费用、医保支付费用、病人patient

Patient:姓名、身份证号、出生日期、性别等

DentalStaff:姓名、职位、身份证号、住址、联系电话、职工号

4.0-1背包问题

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

【说明】

0-1背包问题定义为:给定i个物品的价值v[1…i]、小重量w[1...i]和背包容量T,每个物品装到背包里或者不装到背包里。求最优的装包方案,使得所得到的价值最大。

0-1背包问题具有最优子结构性质。定义c[i][T]为最优装包方案所获得的最大价值,则可得到如下所示的递归式。

【c代码】

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

(1)常量和变量说明

T: 背包容量

v[]:价值数组

w[]:重量数组

c[][]:c[i][j]表示前i个物品在背包容量为j的情况下最优装包方案所能获得的最大价值

(2) C程序

#include <stdio.h>
#include <math.h>
#define N 6
#define maxT 1000
int c[N][maxT]={0};int Memoized_Knapsack(int v[N],int w[N],int T) {int i;int j;for(i=0; i<N; j++){for(j=0; j<=T; j++){c[i][f]= -1;}}return Calculate_Max_Value(v, w, N-1, T);
}int Calculate_Max_Value(int v[N],int w[N], int i, int j){int temp =0;if (c[i][j]!=-1){return(1);}if (i==0||j==0){c[i][j]=0;}else{c[i][j]=Calculate_Max_Value(v, w, i-1, j);if( (2) ){temp=(3);if(c[i][j]<temp){(4);}}}return c [i][j];
}

问题:4.1   (8分)

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

(1)c[i][j]

(2)i>0&&j>=w[i]

(3)Calculate_Max_Value(v, w, i-1, j-w[i] ) + v[i]

(4)c[i][j]=temp

问题:4.2   (4分)

根据说明和C代码,算法采用了 (5) 设计策略。在求解过程中,采用了(6)

(自底向上或者自顶向下)的方式。

(5)动态规划

(6)自顶向下

问题:4.3   (3分)

若5项物品的价值数组和重量数组分别为v[]= {0,1,6,18,22,28}和w[]= {0,1,2,5,6,7}背包容量为T= 11,则获得的最大价值为 (7) 。

(7)40

5.文件管理系统(Java)

阅读下列说明和Java代码,将应填入(n) 处的字句写在答题纸的对应栏内。

【说明】

某文件管理系统中定义了类OfficeDoe和DocExplorer。当类OfficeDoe发生变化时,类DocExplorer的所有对象都要更新其自身的状态。现采用观察者(Observer) 设计模式来实现该需求,所设计的类图如图6-1所示。

【Java代码】

import java.util.*
interface Observer{//(2)public (1);
}interface Subject{public void Attach(Observer obs);public void Detach(Observer obs);public void Notify();public void setStatus(int staus);public int getStatus();
}class OfficeDoc implements Subject{private List< (2) > myObs;private String mySubjectName;private int m_status;public OfficeDoc (String name){mySubjectName=name;this.myObs=new Arraylist<Observer>();m_status=0;}public void Attach(Observer obs);{this.myObs.add(obs);}public void Detach(Observer obs);{this.myObs.remove(obs);}public void Notify(){for(Observer obs:this.myObs){(3);}}public void setStatus(int status;){m_status=status;System out.println("SetStatus Subject["+mySubjectName+"]status:"+status);}public int getStatus(){return m_status;}
}
class DocExplorer implements Observer{private String myObsName;public DocExplorer(String name, (4) sub){myObsName=name;sub (5);}public void update(){//(1)System.out.println("update observer["+myObsName+"]" ) ;}
]
class ObserverTest{public static void main(String []args) {System.out.println("Hello World!" ) ;Observer observerA=new DocExplorer("observerA",subjectA);subjectA.serStatus(1);subjectA.Notify();}
}

(1)void update();

(2)Observer;

(3)obs.update();

(4)Subject;

(5)Attach(this);

2019年下半年软件设计师下午真题试题(案例分析)及答案相关推荐

  1. 2020年下半年软件设计师下午真题试题(案例分析)及答案

    2020年下半年软件设计师上午真题及答案解析 目录 1.工厂智能缺陷检测系统的数据流图 2.M集团业务管理需求的数据库设计 3.房产信息管理系统的用例图 4.希尔排序算法 5.在线支付(Java) 1 ...

  2. 2018年下半年软件设计师下午真题试题(案例分析)及答案

    目录 1.房屋中介信息系统的数据流图 2.员工管理系统的数据库设计 3.社交网络平台的类图 4.最佳配对方案 5.会员积分系统(Java) 1.房屋中介信息系统的数据流图 阅读下列说明和图,回答问题1 ...

  3. 2021年下半年软件设计师下午真题答案及解析(三)

    阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内. [说明] 某游戏公司欲开发一款吃金币游戏.游戏的背景为一种回廊式迷宫(Maze),在迷宫的不同位置上设置有墙.迷宫中有两种类型的机器 ...

  4. 2021年下半年软件设计师下午真题答案及解析(二)

    回答问题1至问题4,将解答填入答题纸的对应栏内 [说明] 某汽车维修公司为了便于管理车辆的维修情况,拟开发一套汽车维修管理系统,请根据下述需求描述完成该系统的数据库设计. [需求描述] (1)客户信息 ...

  5. 2019年上半年软件设计师下午真题试题(案例分析)及答案

    目录 1.学生跟踪系统的数据流图 2.创业项目信息系统的数据库设计 3.书籍销售系统的类图 4.n皇后问题 5.汽车竞速类游戏(Java) 1.学生跟踪系统的数据流图 阅读下列说明和图,回答问题1至问 ...

  6. 2022年下半年网络规划设计师下午真题及答案解析

    试题一(25分) 某高校两个校区相距30公里,通过互联网相连.两校区网络相互独立,并采用两套认证系统,管理维护较繁琐. 现需要对校园网进行升级改造,将老校区网络作为一个子网通过线路A接入到新校区,与新 ...

  7. 2019年下半年电子商务设计师上午真题(手抄版)

    本人参加了2019年下半年电子商务设计师考试,由于考试剩余时间较多,本人将自己不会做或没有把握的题目摘抄到一张纸上.目前在网上还找不到2019年下半年电子商务设计师的真题,因此本人将手抄版的部分真题拿 ...

  8. 2019上半年软件设计师 下午真题-简答题及免费答案(一)

    2019上半年软件设计师 下午真题-简答题及免费答案(一) 试题一(15分) 阅读下列说明和图,回答问题1至4,将解答填入答题纸的对应栏内. [说明] 某学校欲开发一学生跟踪系统,以便更自动化.更全面 ...

  9. 2019年下半年软件设计师考试上午题的英语部分原文。

    2019年下半年软件设计师考试上午题的英语部分原文. 找了半天,辛苦我了.

  10. 2022年下半年软件设计师上午真题及答案解析

    1.以下关于RISC(精简指令集计算机)特点的叙述中,错误的是(  ). A.对存储器操作进行限制,使控制简单化 B.指令种类多,指令功能强 C.设置大量通用寄存器 D.选取使用频率较高的一些指令,提 ...

最新文章

  1. 医生再添新助手!深度学习诊断传染病 | 完整代码+实操
  2. H.265(HEVC)深度解析
  3. 如何用计算机仿真解决能源危机,计算机仿真技术在安全领域内的应用.pdf
  4. python随机数比大小_1到范围内的随机数系统最大大小总是1模2^10
  5. python中的bs4怎么导入_在Python 3.5导入BS4
  6. 前端每日实战 2018 年 9 月份项目汇总(共 26 个项目)
  7. mysql sqlsugar_sqlSugar的使用---入门
  8. WF4.0 基础篇 (六) 数据的传递 Arguments 参数
  9. 操作系统概念之OSAL
  10. 分享文章到新浪微博(源码)
  11. 拼多多狂砸百亿补贴的iphone是真的吗?
  12. 玩转【斗鱼直播APP】系列之实现无限轮播
  13. 魔方世界连服务器未响应,为什么魔方世界显示无法连接服务器 | 手游网游页游攻略大全...
  14. 如何应对CPU帧率瓶颈和卡顿?腾讯游戏学院专家带你剖析
  15. opencv与openmv?
  16. 2021哈工大计算机专业考研参考书,哈尔滨工业大学计算机专业考研参考书目推荐...
  17. 解决 Vue3.0 globalThis is note defined
  18. android颜色透明度百分比
  19. java的幂运算_java中幂指数值的运算
  20. 正常人白手起家挣一千万需要多久?

热门文章

  1. protoc库的卸载与安装
  2. 关于HTML转word小记
  3. NLP(自然语言处理技术)
  4. PCB的走线电阻的计算方法
  5. 上,下拉电阻的作用与计算
  6. vue中下载pdf文件
  7. 三角矩阵的逆矩阵怎么求_「线性代数」求可逆矩阵P,使得相似矩阵对角化
  8. Opencv图像预处理
  9. VS2012 Npcap使用
  10. SublimeText 3 高亮 MATLAB语法