下半年下午试题软件设计师考试真题案例分析Word下载.docx
- 文档编号:3989937
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:13
- 大小:554.74KB
下半年下午试题软件设计师考试真题案例分析Word下载.docx
《下半年下午试题软件设计师考试真题案例分析Word下载.docx》由会员分享,可在线阅读,更多相关《下半年下午试题软件设计师考试真题案例分析Word下载.docx(13页珍藏版)》请在冰点文库上搜索。
使用说明中的词语,说明“预约处理”可以分解为哪些子加工,并说明建模图1-1和图1-2是如何保持数据流图平衡。
【试题二】
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
某海外代购公司为扩展公司业务,需要开发-一个信息化管理系统。
请根据公司现有业务及需求完成该系统的数据库设计。
[需求描述]
(1)记录公司员工信息。
员工信息包括工号、身份证号、姓名、性别和-一个手机号,工号唯一标识每位员工,员工分为代购员和配送员。
(2)记录采购的商品信息。
商品信息包括商品名称、所在超市名称、采购价格、销售价格和商品介绍,系统内部用商品条码唯一标识每种商品。
一种商品只在一家超市代购。
(3)记录顾客信息。
顾客信息包括顾客真实姓名、身份证号(清关缴税用)、一个手机号和一个收货地址,系统自动生成唯一的顾客编号。
(4).记录托运公司信息。
托运公司信息包括托运公司名称、电话和地址,系统自动生成唯一的托运公司编号。
(5)顾客登录系统之后,可以下订单购买商品。
订单支付成功后,系统记录唯一的支付凭证编号,顾客需要在订单里指定运送方式:
空运或海运。
(6)代购员根据顾客的订单在超市采购对应商品,一份订单所含的多个商品可能由多名代购员从不同超市采购。
(7)采购完的商品交由配送员根据顾客订单组合装箱,然后交给托运公司运送。
托运公司按顾客订单核对商品名称和数量,然后按顾客的地址进行运送。
I概念模型设计]
根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。
[逻辑结构设计]
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
员工(工号,身份证号,姓名,性别,手机号
商品(条码,商品名称,所在超市名称,采购价格,销售价格,商品介绍)顾客(编号,姓名,身份证号,手机号,收货地址)
托运公司(托运公司编号,托运公司名称,电话,地址)
订单(订单ID,(a).,商品数量,运送方式,支付凭证编号)代购(代购ID,代购员工号,(b)
运送(运送ID,配送员工号,托运公司编号,订单ID,发运时间)
问题2.1(3分)
根据问题描述,补充图2-1的实体联系图。
问题2.2(6分)
补充逻辑结构设计结果中的(a)、(b)两处空缺。
问题2.3(6分)
为方便顾客,允许顾客在系统中保存多组收货地址。
请根据此需求,增加“顾客地址”弱实体,对图2-1进行补充,并修改“运送”关系模式。
【试题三】
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
某ETC(ElectronicTollCollection,不停车收费)系统在高速公路沿线的特定位置上设置一一个横跨道路上空的龙门架(Tollgantry)_,龙广]架下包括6条车道(Trafficlanes).,每条车道上安装有雷达传感器(Radarsensor)、无线传输器(Radiotransceiver)和数码相机(DigitalCamera)等用于不停车收费的设备,以完成正常行驶速度下的收费工作。
该系统的基本工作过程如下:
(1)每辆汽车上安装有车载器,驾驶员(Driver)将一-张具有唯一识别码的磁卡插入车载器中。
磁卡中还包含有驾驶员账户的当前信用记录。
(2)当汽车通过某条车道时,不停车收费设备识别车载器内的特有编码,判断车型,将收集到的相关信息发送到该路段所属的区域系统,(Regionalcenter)中,计算通行费用,创建收费交易(Transaction),从驾驶员的专用账户中扣除通行费用。
如果驾驶员账户透支,则记录透支账户交易信息。
区域系统再将交易后的账户信息发送到维护驾驶员账户信息的中心系统(Centralsystem).
(3)车载器中的磁卡可以使用邮局的付款机进行充值。
充值信息会传送至中心系统,以更新驾驶员账户的余额。
(4)当没有安装车载器或者车载器发生故障的车辆通过车道时,车道上的数码相机将对车辆进行拍照,并将车辆照片及拍摄时间发送到区域系统,记录失败的交易信息;
并将该交易信息发送到中心系统。
(5)区域系统会获取不停车收费设备所记录的交通事件(Trafficevents);
交通广播电台(Trafficadvicecenter)根据这些交通事件进行路况分析并播报路况。
现采用面向对象方法对上述系统进行分析与设计,得到如表3-1所示的用例列表以及如图3-1所示的用例图和图3-2所示的分析类图。
问题3.1(4分)
根据说明中的描述,给出图3-1中A1~A4所对应的参与者名称。
问题3.2(5分)
根据说明中的描述及表3-1,给出图3-1中U1~U5所对应的用例名称。
问题3.3(6分)
根据说明中的描述,给出图3-2中C1~C6所对应的类名。
【试题四】
阅读下列说明和C代码,回答问题1和问题2,将解答填入答题纸的对应栏内。
某公司购买长钢条,将其切割后进行出售。
切割钢条的成本可以忽略不计,钢条的长度为整英寸。
已知价格表<
em>
p<
/em>
,其中
<
sub>
i<
<
/sub>
(<
=1,2,..<
m<
)表示长度为i英寸的钢条的价格。
现要求解使销售收益最大的切割方案。
求解此切割方案的算法基本思想如下:
假设长钢条的长度为<
n<
英寸,最佳切割方案的最左边切割段长度为<
英寸,则继续求解剩余长度为<
一<
i<
英寸钢条的最佳切割方案。
考虑所有可能的<
得到的最大收益
r<
对应的切割方案即为最佳切割方案。
的递归定义如下:
=max<
l&
le;
i
&
(<
+<
-<
)对此递归式,给出自顶向下和自底向上两种实现方式。
[C代码]
/*常量和变量说明
n:
长钢条的长度pll:
价格数组
*/
#defineLEN100
intTop_Down_Cut_Rod(intpl[],intn){/*自顶向下*/
intr=0;
inti;
if(n==0){
return0;
for(i=1;
u>
(1)<
/u>
;
i++){
inttmp=pil+Top_Down_CutRod(p,n-i);
r=(r>
=tmp)?
r:
tmp;
}
returnr;
intBottom.Up_Cut.Rod(intpl],intn){/自底向上*/
intr[LEN]=(0;
inttemp=0;
inti
for(fi=1j&
lt;
=nj++){
temp=O;
(2)<
i++){.
temp=<
(3)<
(4)<
}
returnr[n];
div>
/div>
问题4.1(8分)
根据说明,填充C代码中的空
(1)~(4)。
问题4.2(7分)
根据说明和C代码,算法采用的设计策略为<
(5)<
。
求解<
r<
时,自顶向下方法的时间复杂度为<
(6)<
;
自底向上方法的时间复杂度为<
(7)<
(用<
O<
表示)。
【试题五】
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
生成器(Builder),模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
图5-1所示为其类图。
[C++代码]
#include
iostream>
string>
using
namespace
std;
class
Product
{
private:
string
partA,
partB;
public:
Product0
{}
void
setPartA(const
string&
amp;
s)
{PartA=
s;
}
setPartB(const
{
PartB=
}
//其余代码省略
};
Builder
(1)
virtual
buildPartB0=0;
(2)
};
ConcreteBuilder1
:
public
Product*
product;
ConcreteBuilder1()
{product
=
new
Product();
buildPartA(){<
I(3)<
("
Component
A"
);
buildPartB(){<
(4)<
B"
getResult()
return
}
Director
Builder*
builder;
Director(Builder*
pBuilder)
builder=
pBuilder;
construct()
(5)
int
mainO
Director*
director1
(new
ConcreteBuilder10);
director1->
constructO;
delete
directorl;
0;
【试题六】
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
生成器,(Builder)模式的意图是将-一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
图6-1所示为其类图。
[Java代码]
importjava.util.*;
classProduct{
privateStringpartA;
privateStringpartB;
publicProduct(){}
publicvoidsetPartA(Strings){partA=s;
publicvoidsetPartB(Strings){partB=s;
interfaceBuilder{
public<
publicvoidbuildPartB0;
classConcreteBuilder1implementsBuilder{
privateProductproduct;
publicConcreteBuilderl0{product=newProduct();
publicvoidbuildPartA(){<
(3)<
("
ComponentA"
publicvoidbuildPartB(){<
Component)B"
publicProductgetResult(){returnproduct;
classConcreteBuilder2implementsBuilder{
//代码省略
private
Director(Builder
builder)
{this.builder
construct(){
Test
static
main(Stringl
args)
directorl
Director(new
ConcreteBuilder1();
directorl.construct0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 下半年 下午 试题 软件 设计师 考试 案例 分析