[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷67及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷67及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷67及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 67及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和图,回答问题 1问题 3,将解答填入答题纸的对应栏内。 【说明】 Pay&Drive系统 (开多少付多少 )能够根据驾驶里程自动计算应付的费用。 系统中存储了特定区域的道路交通网的信息。道路交通网由若干个路段 (RoadSegment)构成,每个路段由两个地理坐标点 (Node)标定,其里程数 (Distance)是已知的。在某些地理坐标点上安装了访问控制 (Access Contr01)设备,可以自动扫描行驶卡(Card)。行程 (Trajectory
2、)由一组连续的路段构成。行程的起点 (Entry)和终点 (Exit)都装有访问控制设备。 系统提供了 3种行驶卡。常规卡 (Regular Card)有效期 (Valid Period)为一年,可以在整个道路交通网内使用。季卡 (Season Card)有效期为三个月,可以在整个道路交通网内使用。单次卡 (Minitrip Card)在指定的行程内使用,且只能使用一次。其中,季卡和单次卡都是预付卡 (Prepaid Card),需要客户(Customer)预存一定的费用。 系统的主要功能有客户注册、申请行驶卡、使用行驶卡行驶等。 使用常规卡行驶,在进入行程起点时,系统记录行程起点、进入时间(
3、Date Of Entry)等信息。在到达行程终点时,系统根据行驶的里程数和所持卡的里程单价 (Unit Price)计算应付费用,并打印费用单 (Invoice)。 季卡的使用流程与常规卡类似,但是不需要打印费用单,系统自动从卡中扣除应付费用。 单次卡的使用流程与季卡类似,但还需要在行程的起点和终点上检查行驶路线是否符合该卡所规定的行驶路线。 现采用面向对象方法开发该系 统,使用 UML进行建模。构建出的用例图和类图分别如图 14-1和图 14-2所示。1 根据说明中的描述,给出图 14-1中 U1和 U2所对应的用例,以及 (1)所对应的关系。 2 根据说明中的描述,给出图 14-2中缺少
4、的 C1 C6所对应的类名以及 (2) (3)处所对应的多重度 (类名使用说明中给出的英文词汇 )。 3 根据说明中的描述,给出 Road Segment、 Trajectory和 Card所对应的类的关键属性 (属性名使用说明中给出的英文词汇 )。 3 阅读下列说明和图,回答问题 1问题 3,将解答填入 答题纸的对应栏内。 【说明】某网上购物平台的主要功能如下: (1)创建订单。顾客 (Customer)在线创建订单(Order),主要操作是向订单中添加项目、从订单中删除项目。订单中应列出所订购的商品 (Product)及其数量 (quantities)。 (2)提交订单。订单通过网络来提交
5、。在提交订单时,顾客需要提供其姓名 (Name)、收货地址 (Address)以及付款方式 (Form ofPayment)(预付卡、信用卡或者现金 )。为了制定送货计划以及安排送货车辆,系统必须确定订单量 (Volume)。除此之外, 还必须记录每种商品的名称 (Name)、造价(Cost Price)、售价 (Sale Price)以及单件商品的包装体积 (Cubic Volume)。 (3)处理订单。订单处理人员接收来自系统的订单;根据订单内容,安排配货,制定送货计划。在送货计划中不仅要指明发货日期 (Delivery Date),还要记录每个订单的限时发送要求 (Delivery Ti
6、me Window)。 (4)派单。订单处理人员将已配好货的订单转交给派送人员。 (5)送货收货。派送人员将货物送到顾客指定的收货地址。当顾客收货时,需要在运 货单 (Delivery Slip)上签收。签收后的运货单最终需交还给订单处理人员。 (6)收货确认。当订单处理人员收到签收过的运货单后,会和顾客进行一次再确认。 现采用面向对象方法开发上述系统,得到如图 14-6所示的用例图和如图 14-7所示的类图。4 根据说明中的描述,给出图 14-6中 A1 A3所对应的参与者名称和 U1 U2处所对应的用例名称。 5 根据说明中的描述,给出图 14-7中 C1 C3所对应的类名以及 (1) (
7、4)处所对应的多重度 (类名使用说明中给出的英文词汇 )。 6 根据说明中的描 述,将类 C2和 C3的属性补充完整 (属性名使用说明中给出的英文词汇 )。 6 某汽车停车场欲建立一个信息系统,已经调查到的需求如下: (1)在停车场的入口和出口分别安装一个自动栏杆、一台停车卡打印机、一台读卡器和一个车辆通过传感器,示意图如图 14-10所示。(2)当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡。当驾驶员拿走停车卡后,系统命令栏杆自动抬起;汽车通过入口后,入口处的传感器通知系统发出命令,栏杆自动放下。 (3)在停车场内分布着若干个付款机器。驾驶员将在入口处获取的停车卡插入付款机器, 并
8、缴纳停车费。付清停车费之后,将获得一张出场卡,用于离开停车场。 (4)当汽车到达出口时,驾驶员将出场卡插入出口处的读卡器。如果这张卡是有效的,系统命令栏杆自动抬起;汽车通过出口后,出口传感器通知系统发出命令,栏杆自动放下。若这张卡是无效的,系统不发出栏杆抬起命令而发出告警信号。 (5)系统自动记录停车场内空闲的停车位的数量。若停车场当前没有车位,系统将在入口处显示 “车位已满 ”信息。这时,停车卡打印机将不再出卡,只允许场内汽车出场。 根据上述描述,采用面向对象方法对其进行分析与设计,得到了如表14-3所示的 类用例状态列表、如图 14-11所示的用例图、如图 14-12所示的初始类图以及如图
9、 14-13所示的描述入口自动栏杆行为的 UML状态图。7 根据说明中的描述,使用表 14-3给出的用例名称,给出图 14-11中 U1、 U2和U3所对应的用例。 8 根据说明中的描述,使用表 14-3给出的类的名称,给出图 14-12中的 A D所对应的类。 9 根据说明中的描述,使用表 14-3给出的状态名称,给出图 14-13中 S1 S4所对应的状态。 10 简要解释图 14-11中用例 U1和 U3之间的 extend关系的 内涵。 10 阅读下列说明和 C代码,回答问题 1问题 3,将解答写在答题纸的对应栏内。 【说明】 设有 n个货物要装入若干个容量为 C的集装箱以便运输,这
10、n个货物的体积分别为 S1, S2, , Sn,且有 siC(1in)。为节省运输成本,用尽可能少的集装箱来装运这 n个货物。 下面分别采用最先适宜策略和最优适宜策略来求解该问题。 最先适宜策略 (Firstfit)首先将所有的集装箱初始化为空,对于所有货物,按照所给的次序,每次将一个货物装入第一个能容纳它的集装箱中。 最优适宜策略 (Bestfit)与最先适宜策略类似,不同的是,总是把货物装到能容纳它且目前剩余容量最小的集装箱,使得该箱子装入货物后闲置空间最小。 【 C代码】 下面是这两个算法的 C语言核心代码。 (1)变量说明。 n:货物数。 c:集装箱容量。 s:数组,长度为 n,其中每
11、个元素表示货物的体积,下标从 0开始。 b:数组,长度为 n, bi表示第 i+1个集装箱当前已经装入货物的体积,下标从0。 i, j:循环变量。 k:所需的集装箱数。 min:当前所用的各集装箱装入了第 i个货物后的最小剩余容量。 m:当前所需要的集装箱数。 temp:临时变量。 (2)函数 firstfit。 int firstfit() inti, j; k=0: ; for(i=0; i(j+1)?k: (j+1); returnk (3)函数 bestfit。 int bestfit() int i, j, min, m , temp; k=0; for(i=0; i0 &temp(
12、m+1)?k: (m+1); return k; 11 根据【说明】和【 C代码】,填充 C代码中的空 (1) (4)。 12 根据【说明】和【 C代码】,该问题在最先适宜和最优适宜策略下分别采用了(5)和 (6)算法设计策略,时间复杂度分别为 (7)和 (8)(用 O符号表示 )。 13 考 虑实例 n=10, C=10,各个货物的体积为 4, 2, 7, 3, 5, 4, 2, 3, 6,2。该实例在最先适宜和最优适宜策略下所需的集装箱数分别为 (9)和 (10)。考虑一般的情况,这两种求解策略能否确保得到最优解 ? (11)(能或否 )。 14 某大型商场内安装了多个简易的纸巾售卖机,自
13、动出售 2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图 16-2所示。采用状态 (State)模式来实现该纸巾售卖机,得到如图 16-3所示的类图。其中类 State为抽象类,定义了投币、退币、出纸巾等方法接口。类 SoldState、 SoldOutStateNoQuarterState和HasQuarterState分别对应图 16-2中纸巾售卖机的 4种状态:售出纸巾、纸巾售完、没有投币、有 2元钱。【 C+代码】includeusing namespace std;以下为类的定义部分 class TissueMachine; 类的提前引用 class Statepubl
14、ic: virtual void insertQuarter()=0;投币 virtual void ejectQuarter()=0;退币 virtual void turnCrank()=0;按 “出纸巾 ”按钮 virtual void dispense()=0;出纸巾 ; *类 SoldOutState、 NoQuarterState、HasQuarterState、 SoldState的定义省略,每个类中均定义了私有数据成员TissueMachine* tissueMachine; * Class TiSsueMachine private: (1)*soldOutState, no
15、QuarterState, *hasQuarterState, *soldState, *State; int count; 纸巾数 public: TiSsueMachine(int numbers); void setState(State* state); State* getHasQuarterState(); State* getNoQuarterState(); State* getSoldState(); State* getSoldOutState(); int getCount(); 其余代码省略 ;以下为类的实现部分 void NoQuarterState : insert
16、Quarter() tissueMachine-setState(2); void HasQuarterState: ejectQuarter()tissueMachine-setState(3); void SoldState: dispense() if(tissueMachine-getCount() 0) tissueMachine-setState(4); else tissueMachine-setState(5); 其余代码省略 15 已知某类库开发商提供了一套类库,类库中定义了 Application类和 Document类,它们之间的关系如图 16-5所示。其中, Appli
17、cation类表示应用程序自身,而Document类则表示应用程序打开的文档。 Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示了。当开发一个具体的应用程序时,开发者需要分别创建自己的 Application和Document子类。例如,图 16-5中的类 MyApplication和类 MyDocument,并分别实现 Application和 Document类中的某些方法。 已知 Application类中的openDocument方法采用了模板方法 (Template Method)设计模式,该方法
18、定义了打开文档的每一个主要步骤如下: (1)首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回。 (2)创建文档对象。 (3)通过文档对象打开文档。 (4)通过文档对象读取文档信息。 (5)将文档对象加入到 Application的文档对象集合中。 【 Java代码 】 abstract class Document public void save( ) *存储文档数据,此处代码省略 * public void open(String docName) *打开文档,此处代码省略 * public void close( ) *关闭文档,此处代码省略 * public abstrac
19、t void read(String docName); ; abstract class Appplication private Vectordocs; *文档对象集合 * public boolean canOpenDocument( String docName ) *判断是否可以打开指定文档,返回真值时表示可以打开,返回假值表示不可打开,此处代 码省略 * public void addDocument(Document aDocument) *将文档对象添加到文档对象集合中 * docs add(2); public abstract Document docreateDocume
20、nt( ); *创建一个文档对象 * public void openDocument(String docName) *打开文档 * if (3) System out println(”文档无法打开 !”); return; (4)adoc= (5); (6); (7); (8); ; 16 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表 16-2所示。现采用装饰器 (Decorator)模式来实现计算费用的功能,得到如图 16-8所示的类图。【 Java代码】 import Java util *;
21、(1) class Beverage 饮料 String description=“Unknown Beverage”; public(2)()return description; public(3); abstract class condimentDecorator extends Beverage 配料 (4); class Espresso extends Beverage 蒸馏咖啡 private final int ESPRESSO_PRICE=2 5; public Espress0()description=“Espresso”; public int cost() retu
22、rn ESPRESSO PRICE; class DarkRoast extends Beverage 深度烘焙咖啡 private finalint DARKROAST PRICE=20; public DarkRoast0 description=“DarkRoast”; public int cost()rcturn DARKROAST PRICE; class Mocha extends CondimentDecorator 摩卡 private final int MOCHA PRICE=10; public Mocha(Beverage beverage) this beverag
23、e=beverage; public String getDescription() return beverage getDescription0+“, Mocha”; public int cost() return MOCHA_PRICE+beverage cost(); class Whip extends condimentDecorator 奶泡 private finalint WHIP_PRICE=8; public Whip(Beverage beverage) this beverage=beverage; public String getDescription() re
24、turn beverage getDescription()+“, Whip”; public int cost()return WHIP_PRICE+beverage cost(); public class Coffeepublic static void main(String args)Beverage beverage=new DarkRoast(); beverage=new Mocha (5); beverage=new Whip (6) ; System out println(beverage getDescription0 +“¥ ” +beverage cost(); 编
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 67 答案 解析 DOC
