2018上半年软件设计师下午真题(二)

软考 胡媛 浏览 10826 来源:希赛网

2018上半年软件设计师考试已结束,小编为大家整理了2018上半年软件设计师下午真题,以下为第二部分。

●  阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某ETC( Electronic Toll Collection,不停车收费)系统在高速公路沿线的特定位置上设置一个横跨道路上空的龙门架( Toll gantry),龙门架下包括6条车道( Traffic lanes),每条车道上安装有雷达传感器( Radar sensor)、无线传输器( Radio transceiver)和数码相机( Digital Camera)等用于不停车收费的设备,以完成正常行驶速度下的收费工作。该系统的基本工作过程如下:

(1)每辆汽车上安装有车载器,驾驶员( Driver)将一张具有识别码的磁卡插入车载器中。磁卡中还包含有驾驶员账户的当前信用记录。

(2)当汽车通过某条车道时,不停车收费设备识别车载器内的特有编码,判断车型,将收集到的相关信息发送到该路段所属的区域系统( Regional center)中,计算通行费用创建收费交易( Transaction),从驾驶员的专用账户中扣除通行费用。如果驾驶员账户透支,则记录透支账户交易信息。区域系统再将交易后的账户信息发送到维护驾驶员账户信息的中心系统( Central system)

(3)车载器中的磁卡可以使用邮局的付款机进行充值。充值信息会传送至中心系统,以更新驾驶员账户的余额。

(4)当没有安装车载器或者车载器发生故障的车辆通过车道时,车道上的数码相机将对车辆进行拍照,并将车辆照片及拍摄时间发送到区域系统,记录失败的交易信息;并将该交易信息发送到中心系统。

(5)区域系统会获取不停车收费设备所记录的交通事件( Traffic events);交通广播电台( Traffic advice center)根据这些交通事件进行路况分析并播报路况。

现采用面向对象方法对上述系统进行分析与设计,得到如表3-1所示的用例列表以及如图3-1所示的用例图和图3-2所示的分析类图。

2018上半年软件设计师下午真题

【问题1】(4分)

根据说明中的描述,给出图3-1中A1~A4所对应的参与者名称。

【问题2)(5分)

根据说明中的描述及表3-1,给出图3-1中U1-U5所对应的用例名称。

【问题3】(6分)

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


● 阅读下列说明和C代码,回答问题1和问题2,将解答填入答题纸的对应栏内。

【说明】

某公司购买长钢条,将其切割后进行出售。切割钢条的成本可以忽略不计,钢条的长度为整英寸。已知价格表P,其中中Pi(i=1,2,...,m)表示长度为i英寸的钢条的价格。现要求解使销售收益最大的切割方案。

求解此切割方案的算法基本思想如下:

假设长钢条的长度为n英寸,最佳切割方案的最左边切割段长度为i英寸,则继续求解剩余长度为n-i 英寸钢条的最佳切割方案。考虑所有可能的i,得到的最大收益rn对应的切割方案即为最佳切割方案。rn的递归定义如下:

rn =max1≤ i ≤n(pi +rn-i)

对此递归式,给出自顶向下和自底向上两种实现方式

【C代码】

/*常量和变量说明

n:长钢条的长度

P[]:价格数组

*/

#define LEN 100

int Top_Down_ Cut_Rod(int P[],int n){/*自顶向下*/

int r=0;

int i;

if(n==0){

retum 0;

}

for(i=1;(1);i++){

int tmp=p[i]+Top_Down_ Cut_Rod(p,n-i);

r=(r>=tmp)?r:tmp;

}

return r;

}

int Bottom_Up_Cut_Rod(int p[],int n){ /*自底向上*/

int r[LEN]={0};

int temp=0;

int i,j;

for(j=1;j<=n;j++){

temp=0;

for(i=1;(2);i++){

temp=(3);

}

(4)

}

return r[n];

}

【问题1】(8分)

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

【问题2】(7分)

根据说明和C代码,算法采用的设计策略为(5)。

求解rn时,自顶向下方法的时间复杂度为(6);自底向上方法的时间复杂度为(7)(用O表示)。

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

【说明】

生成器( Builder)模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。图5-1所示为其类图。

  2018上半年软件设计师下午真题

【C++代码】

#include <iostream>

#include <string>

using namespace std;

class Product {

private:

string partA, partB;

public:

Product__(5)__{  }

void setPartA(const string&s){ PartA=s;}

void setPartB(const string&s){ PartB=s;}

∥其余代码省略

};

class Builder{

public:

(1);

virtual void buildPartB__(6)__=0;

(2);

};

class ConcreteBuilder1: public Builder{

private:

Product*   product;

public:

ConcreteBuilder1__(7)__{product=new Product__(8)__; }

void buildPartA__(9)__{ (3)("Component A");}

void buildPartB__(10)__{ (4)("Component B");}

Product*getResult__(11)__{ return product;}

∥其余代码省略

};

class ConcreteBuilder2: public Builder{

/*代码省略*/

};

class Director {

private:

Builder* builder;

public:

Director(Builder*pBuilder){builder*pBuilder;}

void construct__(12)__{

(5)

∥其余代码省略

}

∥其余代码省略

};

int main__(13)__{

Director* director1=new Director(new ConcreteBuilder1__(14)__);

director1->construct__(15)__;

delete director 1;

return 0;

}


>>>>>>2018上半年软件设计师下午真题汇总

>>>>>>查看更多软件设计师历年真题

责任编辑:胡媛|希赛教研中心

希赛教研中心拥有一支规模200余人的专职教研团队,深耕项目管理、软考、通信工程师、金融财会、厂商认证、考博英语等方向,形成“讲师+助教+班主任+智能学习平台”协同联动的完整教学服务体系:讲师讲透方法、助教盯住进度和答疑、班主任守住节奏、智能平台记录每一步成长——环环相扣,让学员的备考全程有人陪、有反馈、有结果。 师资力量雄厚。主要讲师毕业于 985/211 等知名高校,并拥有海外留学归国人才;职称梯队完善,高、中级职称讲师结构合理,讲师持有软考高级资格证书、PMI系列认证、CSPM高级项目管理培训师证、PeopleCert认证、DAMA认证、英语专八(TEM-8)、PETS-5、华为HCIE、经济师、一级建造师等行业权威资质,兼具深厚理论功底与丰富实战经验。 教研成果卓越。教研团队成员深度参与多项国家标准的研制工作,是 GB/T 47282-2026《项目重大节点评审规范》、GB/T 47285-2026《项目商业分析指南》、GB/T 30339-2026《项目和项目群后评价指南》、GB/T 46210-2025《项目成本管理指南》等国家标准的主要起草人,并担任《中国项目管理知识体系指南》总体编写专家组成员。团队累计主编出版专业图书与教材一百多种,覆盖软考、通信工程师、PMP、CSPM、NPDP等多个认证方向。 教学成效显著。 依托希赛自主研发的开放式智能互动学习平台,团队累计服务学员超百万人,帮助众多学员顺利通过软考、 PMP、CSPM、NPDP、华为认证、通信工程师、管理类联考、考博英语等考试,大批学员考入 985、211 等知名高校深造,以专业与口碑赢得学员和行业的广泛认可。

📅 本文最后更新于 2026-02-12

温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
新人礼包 新人礼包 课程咨询 课程咨询 企业团报 企业团报 电话咨询 电话咨询

客服热线:400-111-9811

售后投诉:156-1612-8671

公众号 公众号
希赛网公众号二维码
扫二维码 关注希赛网
APP下载 APP下载
希赛网APP下载二维码
扫二维码 下载APP
二维码
二维码
第1步:扫码添加老师微信  第2步:领取备考资料
!
咨询在线老师!