【试题一】

1.二手车物流系统的数据流图
阅读下列说明和图,回答问题1至问题4。

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

问题:1.1   (3分)

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

问题:1.2   (5分)

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

问题:1.3   (4分)

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

问题:1.4   (3分)

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

参考答案:

问题1.1:

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

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

问题1.3:

发送物流信息:起点P5终点E2
新订单信息:起点D2终点P5
合约信息:起点D4终点P5
自动分配:起点P5终点E3
更新物流信息:起点P5终点D2

问题1.4:

WHILE(有新订单){lF 订单.类型为"保卖车或全国购" THEN 分配到竞拍体系ELSE IF 订单.路线为"固定路线和/或包车路线” THEN 分配给合约物流商ELSE  //即不符合固定路线和包车分配到竞拍体系ENDIFENDIF给承运的物流商发送物流消息更新订单的物流信息给车辆交易系统发送物流信息
}WHILE(收到订单){订单信息推送给有相关路线的物流商物流商对订单进行竞拍出价最优报价的物流商中标
}

【试题二】

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

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

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

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

关系模式设计

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

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

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

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

培训(课程号,(f) )

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

问题:2.1

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

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

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

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

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

参考答案:

问题:2.1  
(1)a:部门负责人b:培训师c:新员工
(2)存在缺失数据流,部门和员工之间:1:m(一个部门对应多个员工)

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

问题:2.3
员工关系表:g:主键:员工号   h外健:部门号
讲授关系模式:i主健:课程号 培训师 培训地点  j外健:课程号

问题:2.4
存在传递依赖。员工号决定了岗位,岗位决定了基本工资。所以存在传递依赖。

【试题三】

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所对应的用例名称。

问题:3.2   (5分)
根据说明中的描述,给出图3-2中C1~C5所对应的类名。

问题:3.3   (4分)
根据说明中的描述,给出图3-2中类C4、C5、Patient 和DentalStaff的必要属性。

参考答案:
问题:3.1
A1: Receptionist(接待员)
A2: DentalStaff(医护人员)
A3: OfficeStaff(办公人员)
U1:Maintainpatientinfo (记录病人基本信息)
U2:Recordofficevisitinfo (记录就诊信息)
U3: Print invoices(打印发票)

问题:3.2
C1: Patient Invoice(病人发票)
C2: InsuranceInvoice(机构发票)
C3: Invoice(发票)
C4: Procedure(就诊信息)
C5:OfficeVisit(治疗)

问题:3.3 
C4:就诊时间、就诊费用、支付代码、病人支付费用和医保支付费用
C5:项目名称、项目描述、治疗的牙齿和费用
Patient:姓名、身份证号、出生日期、性别、首次就诊时间、最后就诊时间 等
DentalStaff:姓名、身份证号、出生日期、性别、首次就诊时间、最后就诊时间

【试题四】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/*
变量说明
T:背包容量
v[]:价值数组
w[]:重量数组
c[][]:c[i][j]表示前i个物品在背包容量为j的情况下最优装包方案所能获得的最大价值
*/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 c[i][j];//填空1}if (i==0||j==0){c[i][j]=0;}else{c[i][j]=Calculate_Max_Value(v, w, i-1, j);if(temp<c[i][j]){//填空2temp=c[i][j];//填空3if(c[i][j]<temp){c[i][j]=temp;//填空4}}}return c [i][j];
}

【问题1】(8分)

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

【问题2 】(4分)

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

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

【问题3】  (3分)

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

【试题五】文件管理系统(Java)

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

【说明】

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

【Java代码】

package test_2019_2;import java.util.*;interface Observer{public void update(); //填空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<Observer> myObs;//填空2private 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){obs.update();//填空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, Subject sub) {//填空4myObsName = name;sub.Attach(this);//填空5}public void update() {System.out.println("update observer[" + myObsName + "]");}
}public class ObserverTest {public static void main(String[] args) {System.out.println("Hello Wprld!");Subject subjectA=new Subject() {@Overridepublic void Attach(Observer obs) {}@Overridepublic void Detach(Observer obs) {}@Overridepublic void Notify() {}@Overridepublic void setStatus(int staus) {}@Overridepublic int getStatus() {return 0;}};Observer observerA = new DocExplorer("observerA",subjectA);subjectA.setStatus(1);subjectA.Notify();}
}

2019年下半年软件设计师下午试题相关推荐

  1. 2020年下半年软件设计师下午试题

    [试题一]工厂智能缺陷检测系统的数据流图 某工厂制造企业为了开发软件智能检测以有效提升检测效率,节约人力资源,该系统的主要功能是: (1 )基础信息管理.管理员对检测标准和检测规则等基础信息设置. ( ...

  2. 2022年下半年软件设计师下午试题

    试题一 随着新能源车数量的迅猛增长,全国各地电动汽车配套充电桩急速增长,同时也带来了充电桩计量准确性的问题.充电桩都需要配备相应的电能计量和电费计费功能,需要对充电计量准确性强制进行检定.现需开发计量 ...

  3. 软考 | 2019年下半年 软件设计师 下午试卷

    试题一 阅读下列说明和图,回答问题 1 至问题 4. [说明] 某公司欲开发一款二手车物流系统,以有效提升物流成交效率.该系统的主要功能是: (1)订单管理:系统抓取线索,将车辆交易系统的交易信息抓取 ...

  4. 2016年下半年软件设计师下午试题

    试题一 [说明] 某证券交易所为了方便提供证券交易服务,欲开发一证券交易平台,该平台的主要功能如下: (1)开户.根据客户服务助理提交的开户信息,进行开户,并将客户信息存入客户记录中,账户信息(余额等 ...

  5. 2019计算机软件考试笔试答案,2019年下半年软件设计师考试上午真题(含答案)

    2019年下半年软件设计师考试上午真题(含答案) (15页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 20XX年下半年软件设计师考试上午 ...

  6. 2019年下半年软件设计师备考指南

    2019年下半年软件设计师备考指南 软件设计师考试内容.科目.考试时间.备考方式 考试内容及时间 基础知识 纸考 基础知识 2019-11-09 09:00:00(150分钟) 应用技术 纸考 应用技 ...

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

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

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

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

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

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

最新文章

  1. 判断有向图g中顶点i到顶点j是否有路径_[源码和文档分享]基于Dijkstra算法的最短路径问题求解...
  2. 18种方法让你集中精力工作
  3. Py之prettytable:prettytable的简介、安装、使用方法之详细攻略
  4. SAP Spartacus 基于行项目的订单取消功能(order cancel)实现
  5. Linux下串口通信详解
  6. java处理url中的特殊字符%等
  7. qtextedit 默认文案_QT-纯代码控件-QSplitter(分裂器)
  8. 用VC++绘制位图按钮
  9. python电商用户购买力分析_Python + pandas + 不同客户购买力图形显示
  10. 默认适应窗口_自适应网格分析带孔平板的应力集中问题
  11. 【Luogu】重返现世
  12. 登录 Unix 操作系统
  13. 在我的ibmR40上装osx86
  14. 魔兽世界az端和TC端有什么区别 Mangos,TC,SW,AZ,AC的关系
  15. RPC + Dubbo
  16. 吉林大学珠海学院c语言考试题,吉林大学珠海学院-c语言试卷_a卷.doc
  17. VCS自带的UPF低功耗仿真demo介绍
  18. 求助!spyder beautifulsoup4显示错误:AttributeError: 'HTMLParserTreeBuilder' object has no attribute 'initia
  19. CTF初体验:Web18秋名山车神
  20. 第一场web3的游戏直播带领我走向直播的另一高点

热门文章

  1. 3-Linux基础操作-cd、文件-文件夹的创建、复制、移动、删除
  2. springboot毕设项目张家口市防疫志愿者网站r6k13(java+VUE+Mybatis+Maven+Mysql)
  3. talkback-6.1.1支持安卓6,也就是SdkVer=23的方法
  4. LOADRUNNER中PACING的设置
  5. DPDK学习(一)DPDK简介
  6. 快钱联手浩方 开拓网络游戏运营
  7. keyup与keydown(详解)
  8. SUSE Linux 软件管理
  9. android 请求服务器抛io异常,Android开发中与服务器交互时,遇到java.io.IOException: Target host must not be null的问题...
  10. asp.net iframe html,ASP.NET中使用IFRAME建立类Modal窗口