软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷43_第1页
软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷43_第2页
软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷43_第3页
软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷43_第4页
软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷43_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件水平考试(中级)软件设计师下午

(应用技术)试题模拟试卷43

一、必答题(本题共13题,每题1.0分,共13分。)

阅读以下某网上作业提交与管理系统的技术说明,根据要求回答问题I〜问题3。

[说明I某学校建立了一个网上作业提交与管理系统,基本功能描述如下。(1)账号

和密码。任课老师用账号和密码登录系统后,提交所有选修学生的名单。系统自动

为每个选修学生创建登录系统的账号和密码。(2)作业提交。选修学生使用账号和

密码登录系统后,可以向系统申请所选课程的作业。系统首先检杳学生的当前状

态,如果该选修学生还没有做过作业,则从数据库服务器申请一份作业。若申请成

功,则显示需要完成的作业。学生需在线完成作业,单击[提交]按钮上交作业。

(3)在线批阅。系统自动在线批改作业,显示作业成绩,并将该成绩记录在作业成

绩统计文件中“

1、在系统的需求分析阶段,使用用例对系统需求建模。表1-8和表1-9分别给出

了其中用例“创建选修学生账号和密码”、用例"作业申请''的概要描述。

表1-8用例“创建选修学生赛号和密码”描述豪

用例名❷创建选修学生麻号和密码

触渔■

主买"入主要•出

・入信息角色(Actor),出偏息物色(Acoir)

寐号和密码任课老师登录成功或失敷退知任课老邮

⑷(5)

(2)

登录账号和密出激活通知每个选修学生

任课老师登录累统的账号和密码任课方师信息烽

*1-9用例“作业申请”描述我

作业中请

主要,入主要•也

■人■息角色(Ac«r>:.■出值息AB<Ac«cr>

账号和密码选修学生登录成功或失败通知选修学生

当前状态信总选修学生

(8)⑼

⑺选修学生

申请成功或失败通知选修学生

(10)选修学生

学生录系统的底号和密码学生信息厮

学生的当前状态常生信息犀

请使用I说明I中的词汇,将表1-8和表1-9中的(I)〜(10)空缺处的内容填写完整。

标准答案:这是一道要求读者掌握用例获取方法的综合分析题。本题的解答思路如

下。①由题干中给出的关键信息”账号和密码:任潦老师用账号和密码登录系统

后,提交所有选修学生的名单。系统自动为每个选修学生创建登录系统的账号和密

码”,并结合表1-8中给出的信息可知,用例”创建选修学生账号和密码”是在任课

老师登录系统并提交选修学生名单之后触发产生的,因此该用例的触发器是“提交

选修学生名单在该用例中输入角色(Actor)主要是“任课老师”,输入信息有“账号

和密码”和“所有选修学生名单”,而输出角色"任课老师”将接收”登录成功或失败通

知''等系统输出信息,输出角色“每个选修学生''将接收到“登录账号和密码”和“登录

账号和密码激活通知''等输出信息。完整的“创建选修学生账号和密码”用例描述表

如表1/2所示。

表1-12用例“创建选修学生账号和密码”描述表

用例名称创建选修学生账号和密码

触发器提交选修学生名单

主要输入主要输出

输入信息角色(Actor)输出信息角色(Acto:r)

账号和密码任课老师登录成功或失败通知任课老师

登录账号和密码每个选修学生

所有选修学生名单任课老师

登录账号和密码激活通知每个选修学生

任课老师登录系统的账号和密码任课老师信息库

②同理,由题干中关键信息”作业提交:学生使用账号和密码登录系统后,可以向

系统申请所选课程的作业。系统首先检杳学生的当前状态,如果该学生还没有做过

作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业”,

并结合表1-9中给出的信息可知,用例“作业申请”是在选修学生.向系统提交“申请

作业请求”时触发产生的,因此该用例的触发器是“申请作业请求”。该用例的主要

输入角色是“选修学生”,其输入信息有“账号和密码”和“申请所选课程的作业”。

③在用例“作业申请”中输出角色有两个,即“选修学生''和"数据库服务器其中,

“选修学生”角色将接收系统输出的“登录成功或失败通知”、"当前状态信息”、“(作

、他)申请成功或失败通知”及“需要完成的作业”等信息。”数据库服务器”角色将接收

到系统输出的“申请一份作业“信息。④将以上分析结果进行整理,完整的用例“作

业申请''描述表如表1-13所示。

表L12用例“创建选修学生雅号和密码”描述表

用例名称作业申谙

触发器申请作业请求

主要输入主要输出

输入信息角色(Actor)输出信息角色(Actor)

账号和密码选修学生登录成功或失败通知选修学生

当前状态信息选修学生

申请一份作业数据库服务器

申请所选课程的作业选修学生

申语成功或失败通知选修学生

需完成的作业选修学生

学生登陆系统的账号和空码学生信息库

学生的当前状态学生信息库

知识点解析:暂无解析

2、如果将数据库服务器(记为DB)作为•个外部实体,那么在绘制该网上作业提交

与管理系统的数据流图时,还应有哪些外部实体和数据存储?

标准答案:这是一道要求读者掌握数据流图中外部实体识别的综合分析题。本题的

解答思路如下。①外部实体是指存在于软件系统之外的人员或组织。它指出系统

所需数据的来源地(即信源)和系统所输出数据的归宿地(即信宿)。②根据[说明]中

提供的信息,并结合[问题1]的分析过程可知,“选修学生”和“任课老师”向“网上作

业提交与管理系统''提供了最原始的输入数据,并从系统中获取相应的输出数据。

因此可以确定“选修学生”、“任课老师”是数据流图中除数据库服务器(记为DB)之

外的两个外部实体。③数据存储用来表示暂时保存数据的地方,每个数据存储都

有一个名字。由题干给出的关键信息“在线批阅;系统自动在线批改作业,显示作

业成绩,并将该成绩记录在作业成绩统计文件中”可知,”作业成绩统计文件”是一

个数据存储。

知识点解析:暂无解析

3、该产上作业提交与管理系统的顶层数据流图中,相关数据流的部分信息如表1-

10所示。

表1-10顶层数据流图数据流描述表

序号数据流名称起点线占

(D账号和密码(11)褐上作业提交与管理系统

②账号和密码(12)网上作业提交与管理系统

③(13)任课老师网上作业提交与管理系统

作业申请(14)网上作业提交与管理系统

⑤作业申请网上作业提交与管理系统(15)

⑥(16)(17)网上作业提交与管理系统

©需完成的作业网上作业提交与管理系统(18)

⑧提交的作业(19)(20)

⑨作业成绩(21)(22)

⑩(23)(24)作业成绩统计文件

请使用[说明]中的词汇,结合[问题2]的解答,将表1-10中的(11)〜(24)空缺处的内

容填写完整。

标准答案:这是一道要求读者掌握数据流图中数据流识别的综合分析题。本题的解

答思路如下。①根据[说明]中提供的信息,并结合[问题1]、[问题2]的分析过程可

知,外部实体“选修学生”和“任课老师”各自向“网上作业提交与管理系统”提交登录

的“账号和密码”,因此(11)、(12)空缺处所填写的数据流起点分别是“选修学生”和

“任课老师”。②由于“任课老师”登录“网上作业提交与管理系统”后向系统提交的

数据流是“所有选修学生名单因此(13)空缺处所填写的数据流名称是“所有选修学

生名单③由于数据流“作业申请”是由“选修学生”登录系统后向该系统提交的,

因此(14)空缺处所填写的数据流起点是“选修学生”。④由题干中关键信息“如果该

学生还没有做过作业,则从数据库服务器申请一份作业”可知,由“网上作业提交与

管理系统”产生的数据流“作业申请”将送往外部实体”数据库服务器”,因此(15)空缺

处所填写的数据流终点是“数据库服务器”。⑤由题下中关键信息“若申请成功,则

显示需要完成的作业”可知,由“网上作业提交与管理系统”产生的数据流“需完成的

作业”将送给外部实体“选修学生”,因此(18)空缺处所填写的数据流终点是“选修学

生”。⑥由题干中关键信息“学生需在线完成作业,单击,提交,按钮上交作业”可

知,数据流“提交的作业”是由“选修学生”在线完成后向“网上作业提交与管理系统”

提交的,因此(19)空缺处所填写的数据流起点是“选修学生”,(20)空缺处所填写的

数据流终点是“网上作业提交与管理系统⑦由题干中关键信息“在线批阅……并

将该成绩记录在作业成绩统计文件中“可知,由“网上作业提交与管理系统”产生的

数据流“作业成绩”也将送往数据存储”作业成绩统计文件”,因此(23)空缺处所填写

的数据流名称是“作业成绩”,(24)空缺处所填写的数据流起点是“网上作业提交与管

理系统⑧由题干中关键信息“在线批阅:系统自动在线批改作业,显示作业成

绩……”可知,数据流"作业成绩''是由"网上作业提交与管理系统”向外部实体“选修

学生”提供的,而非“任课老师”向“选修学生”提供“作业成绩”,因此(21)空缺处所填

写的数据流起点是“网上作业提交与管理系统”,(22)空缺处所填写的数据流终点是

“选修学生工⑨由题干中关键信息“如果该学生还没有做过作业,则从数据库服务

器申请一份作业。若申请成功,则显示需要完成的作业”间接可知,外部实体“数据

库服务器”将产生一条数据流”所申请的作业”送至“网上作业提交与管理系统”,因

此(16)空缺处所填写的数据流名称是“所申请的作业”,(17)空缺处所填写的数据流

起点是“数据库服务器'I⑩将以上分析结果进行整理,完整的顶层数据流图中数

据流描述信息如表1-14所示。

表L14顶层数据流图数据流描述表

序号数据流名称起点级占

①账号和密码选修学生网上作业提交与管埋系统

②账号和密码任课老师胸上作业提交与管理系统

③所有选修学生名单任课老师网上作业提交与管理系统

作业申请选修学生随上作业提交与管理系统

⑤作业申请网上作业提交与管理系统数据库服务器

⑥所申请的作业数据库服务器网上作业提交与管理系统

©需完成的作业网上作业提交与管理系统选修学生

⑧提交的作业选修学生阳上作业提交与管理系统

③作业成绩网上作业提交与管理系统选修学生

⑩作业成绩网上作业提交与管理系统作业成绩统计文件

知识点解析:暂无解析

阅读以下关于项目工作管理系统的数据库设计说明,根据要求回答问题1〜问遗

4。[说明]某软件开发公司,决定结合自身工作的需求开发设计本公司的项目工作

管理系统,由郭工程师承担数据库的设计工作。公司项目管理的需求分析如下。

1.组织机构。该公司有多个部门,每个部门有多个职员、多个办公室,每个办公

室有一部电话。当部门变更时更换新的部门代码。职员辞职后,若再次被聘用仍使

用辞职前的代码。被聘用职员担任某职务,职务用职务代码来标识。职务分为:工

程师、高级工程师、经理助理、经理等。职员的工资根据等级区分,共分为S、

A、B、C、D5个等级。一个职务对应某个等级,一个等级对应多个职务。职员月

工资等于职员月工作时间(小时)乘以小时工资。职员的人事变动及职位变更(升级、

降级)在月初进行。2.项目管理。项目用项目代码标识,使用过的项目代码不能

重复使用。一个部门可承担多个项目,但一个项目仅由一个部门承担。一个项目有

一名项目主管和多个职员;一个职员可参加多个项目。项目代码由系统自动生成,

一旦项目建立,项目名、部门代码及起始年月日不能再变更。3.项目的工作管理

流程为:项目工作计划输入(初始计戈U)一工作业绩输入一业绩生成(每月一次)一计

划修正(每月一次)。①项目工作计划输入°项目主管使用如图1-9所示的计划输入

界面,输入项目代码、职员代码、职员参加某个项目的月工作时间(计划)。图中空

白区域为可输入项。

项目代码123456项目名ABCD部门代码03部门名开发部

起始年月日2007-06-11结束年月日2007-11-31登陆时间2007-05-28

12

职员代码职员名6月7月8月9月10月11月1月2月3月4月5月合计

0302小郭1201801801801801801020

0316小谢120180180150150150930

0309张三90150150180180180930

0328李四12018018012012090870

0321珏9015015015015090310

②工作业绩输入。输入职员每天参加各个项目的工作时间。如图1-10所示为工作

业绩输入界面,图中空白区域为可输入项。其中,出勤时间由考勤系统管理,指定

项目代码的顺序可以不同,并且一天可以输入多个项目代码,但同一个项目代码不

能重复输入。

职工代号0302职员名小郭输入年月20076月

每个项目的工作时间

年月日星期出勤时间

项目代码工作时间项目代码工作时间备注

2007-06-11—12.01234568.03456784.0

2007-06-1215.012345610.03456785.0

2007-06-13三18.012345615.03456783.0

2007-06-14四15.012345615.0

2007-06-15五18.012345618.0

2007-06-16六10.012345610.0

2007-06-1700.0

③业绩生成。月底汇总职员的当月工作业绩,生成月工作业绩表。④计划修正。

项目主管根据项目进度修改以后的工作计划。郭工程师根据公司的项目需求将数

据库关系模式设计如下:部门(部门代码,部门名,起始年月,终止年月,办公

室,办公电话);职务(职务代码,职务名);等级(等级代码,等级名,年月,小时

工资);职员(职员代码,职员名,部门代码,职务代码,任职时间);项目(项目代

码,项目名,部门代码,起始年月日,结束年月日,项目主管):工作计划(项目代

码,职员代码,年月,工作时间)。

4、请使用“关系模式标记规则”(见本题附内容,全书同),给出“部门”、“等级”、

“项目”和“工作计划”关系模式的主键和外键。

标准答案:这是一道要求读者根据题目给定的关系模式,以及属性间的函数依赖关

系和给定的关系实例,并结合E-R图向关系模式的转换方法来确定各关系模式主

键和外键的综合分析题。本试题的解答思路如下。①设K为R(U,F)中的属性的组

合,若K—U,且对于K的任何一个真子集KI都有K,不能决定U,则K为R的

候选码(候选关键字),若有多个候选码,则选一个作为主码(主键)。②部门关系模

式的主键和外键。由题干中给出的关键信息“该公司有多个部门,每个部门有多个

职员、多个办公室''可知,部门代码多值决定办公室,如果仅用(部门代码)作为主

键,则无法唯一区分部门关系中的每一个元组(记录)。如果用(部门代码,办公室)

作为主键,则可以唯一区分部门关系中的每一个元组,因此,部门关系模式的主键

如下。部门(部门代码,部门名,起始年月,终止年月,办公室,办公电话)③等

级关系模式的主键和外键。由题干中给出的关键信息“一个职务对应某个等级.

个等级对应多个职务”,“职员月工资等于职员月工作时间(小时)乘以小时工资”,

“职员的人事变动及职位变更(升级、降级)在月初进行“可知,如果仅用“等级代码”

作为主键,则无法唯一区分等级关系中的每一个元组,这是因为对于同一个等级在

不同的时期小时工资值不一定一样。例如,等级1在2007年6月小时工资为10

元,可能到2007年10月小时工资为15元。可见用(等级代码,年月)作为主键,

可以唯一区分等级关系中的每一个元组。因此等级关系模式的主键如下。等级(等

级代码,等级名,年月,小时工资)④项目关系模式的主键和外键。由题干中给

出的关键信息”项目用项目代码标识,使用过的项目代码不能重复使用''可知,项目

代码可以决定项目关系中的全属性,因此,项目关系模式的主键是“项目代码”。在

项目关系模式中,由于部门代码是部门关系的主键,因此“部门代码”应为项目关系

模式的外键。同时考虑到项目主管应该米自职员,所以“项目主管''也是项目关系模

式的外键。最后可得项目关系模式的主键、外键如下。项目(项目代码,项目名,

邵LU始,起始年月日,结束年月日,项■比t箕)⑤工作计划关系模式的主键和外

键。由题干中给出的关键信息”一个项目有一名项目主管和多个职员;一个职员可

参加多个项目”,“项目代码由系统自动生成,一旦项目建立,项目名、部门代码及

起始年月日不能再变更”可知,在工作计划关系中,由于一个项目有多个职员参

加,因此仅用“项目代码''作为主键,则无法唯一确定关系中的每一个元组。又由于

工作计划是按月给职员安排的,因此工作计划关系的主键是(项目代码,职员代

码,年月)。最后可得工作计划关系模式的主键、外键如下。工作计划(项目带代

码,职员带代码,年月,工作时间)

知识点解析:暂无解析

5、请将以下关系模式中的(1)和(2)空缺处填入属性名称(要求使用题干说明中已有

的属性名称)。(1)郭工程师设计的关系模式不能管理职务和等级之间的关系,可以

通过修改“职务”关系模式来实现。修改后的关系模式为:职务((1))(2)为了管理公

司职员参加各项目每天的工作业绩,需设计工作业绩关系模式为:工作业绩((2))

标准答案:郭工程师所设计的关系模式不能管理职务和等级之间的关系,为此可以

在“职务”关系模式中增加属性”等级代码''来实现,修改后的关系模式如下。职务

(职务代码,职务名,等级代码)为了管理公司职员参加各项口每天的工作业绩,需

设计工作业绩的关系模式。根据图1-10所给出的工作业绩输入界面实例分析,可

得工作业绩关系模式如下。工作业绩(项目代码,职员代码,年月日,工作时间)

知识点解析:暂无解析

6、郭工程师设计的“部门”关系模式中存在什么问题?请用100字以内的文字简要说

明理由。为了解决这个问题可将关系模式分解,请给出分解后的关系模式(分解后

的关系模式的关系名可依次取“部门_A”、“部门_B”)。

标准答案:郭工程师设计的“部门”关系模式中荐在的主要问题是数据冗余,因为部

门关系模式属于2范式(或2NF)。“部门”关系模式的基本函数依赖集F1为:

Fl={部门代码一(部门名,起始年月,终止年月),部门代码一办公室,办公室一办

公电话)例如,假设某个部门有10个办公室,部门代码、部门名、起始年月、终

止年月就要被重复10次。为了解决这个问题可将关系模式分解,分解后的关系模

式如下。部门_A(部门代码,部门名,起始年月,终止年月)部门_B陪B门代码,办

公室,办公电话)

知识点解析:暂无解析

7、假定月工作业绩关系模式为:月工作业绩(职员代码,年月,工作时间),请将

以下“查询职员代码、职员名、年月、月工资”SQL语句中(3)〜(5)空缺处的内容填

写完整。SELECT(3)FROM(4)WHERE(5)[附]关系模式的标记规则如下:关系

名(属性名1,属性名2,…,属性名n)其中:①若该属性仅为主键属性时,则该

属性名下画实下画线;②若该属性仅为外键属性时,则该属性名下画虚下画线;

③若该属性既是主键属性,乂是外键属性时,则在该属性名下画实下画线和虚下

画线;④若该属性既不是主键属性,又不是外键属性时,则在该属性名下不做标

记。

标准答案:假定月工作业绩关系模式为:月工作'业绩(职员代码,年月,工作时

间),那么“查询职员代码、职员名、年月、月工资”的SQL语句如下。

SELECT职员代码,职员名,年月,门下时间♦小时I资AS月I资

FROM职此职务,等级,月,作X席

WHERE职协.职务代码-职务.职羽弋码AND职务.等级代码.等级.等级代码AND

等级.年月二月工作业债.年月AND职员.职M代码一月工作业飨.职姐Wi;

知识点解析:暂无解析

阅读以下某前台销售子系统的技术说明和UML图,根据要求回答问题1〜问题

4o[说明]某超市管理系统的前台销售子系统以最基本的方式处理销售业务。系统

的功能需求如下:①记录每种商品的编号、单价和现有数量;②为顾客选购的商

品计价、收费,并打印清单;③帮助商家找出哪种商品将脱销,从而及时补充货

源:④随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品

定价;⑤交接班时结算货款数目和商品数目。每台收款机可以处理任何数目的销

售事件,但一个销售事件只能由一台收款机处理。每个销售事件从收款机响应收款

人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品。如果该商品

的数量少于下限,则向供货员发送缺货登记消息。每名供货员可以提供一种或多种

商品,同•品牌的商品只能由•位供货员来提供。接着收款机发送计价和入账消息

请求售出操作,再由销售事件发送记账消息给相应的账册,并控制流程返回收款机

等待下一次销售操作。每本销售账册可以记录任何数目的销售事件,但一个销售事

件只能由一本销售账册汜录。该销售子系统采用面向对象方法开发,系统中的类

及类之间的关系用UML类图表示,图1-11是该系统类图中的一部分;系统的动态

行为采用UML序列图表示,图1-12是销售事件部分的序列图。

8、根据题干的[说明]及图1-11、图1-12的相关信息,类商品除了售出和缺货登记

操作之外,还应具有哪些主要操作?(请使用[说明冲给出的词语回答问题)

图1・11前台销售子系统部分类图

收软机偶唇♦件供货员

(A)

WH1i]

B

<..W________1________1------------

IIIII

IllII

图1-12销售事件部分序列图

标准答案:由题干给出的关键信息“①记录每种商品的编号、单价和现有数量”和

“如果该商品的数量少于下限,则向供货员发送缺货登记消息”可知,类商品有5个

属性,即编号、名称、单价、数量和下限。由题干中关键信息“③帮助商家找出哪

种商品将脱销,从而及时补充货源”、“接着收款机发送计价和入账消息请求售出操

作……和“……先向商品发送检索请求消息来查找将被出售的商品……”可知,类

商品有3个操作,即检索、补充和售出。由题干中关键信息“④随时按上级系统的

要求报告当前的款货数量、增减商品的种类或修改商品定价”可知,类商品还具有

两个操作,即种类增删和价格更新。

知识点解析:暂无解析

9、请将图1-11中类商品、类特价商品和类计量商品3者之间的联系补充完整,

标准答案:在UML类图中,-----表示其相连的两个类之间存在泛化

(generalization)关系。这种关系描述了一般事物与该事物中特殊种类之间的关系,

子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系,

还可以增加或者覆盖父用例的行为。子用例可以出现在父用例出现的任何位置。

在图1-11类图中,类特价商品和类计量商品是类商品的子类,它们将继承类商品

的所有属性和操作,并且又有自己特殊的属性和操作。因此这3者之间的联系是泛

1f-ZL

冷吩向&il■0小

图1・20类商品,特价商品

化关系,如图]-20所示。和计质商品之间的联系

知识点解析:暂无解析

10、识别关联的多重度是面向对象建模过程中的一个重要步骤。请根据说明中给出

的描述,将图1-H中(1)〜(8)空缺处的内容填写完整。

标准答案:由题干描述中给出的关键信息“每台收款机可以处理任何数目的销售事

件……”和常识可知,每个超市有多台收款机,每个销传事件可能与1种或多种商

品发生联系,商品可以到任何一台收款机付款,因此收款机与商品之间存在多对多

(m:n)的关系,即(1)、(2)空缺处所填写的内容均是力由题干中关键信息“每

名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供''可

知,商品与供货员之间存在多对一(m:l)的关系,区此(3)空缺处所填写的内容是

“1(4)空缺处所填写的内容是“1”。由题干中关键信息“每台收款机可以处理

任何数目的销售事件,但一个销售事件只能由一台收款机处理”可知,收款机与销

售事件之间存在一对多(l:n)的关系,因此(5)空缺处所填写的内容是“1”,(6)空缺处

所填写的内容是“1...*工由题干中关键信息“每本销售账册可以记录任何数目的销

售事件,但一个销售事件只能由一本销售账册记录”可知,账册与销售事件之间存

在一对多(l:n)的关系,因此(7)空缺处所填写的内容是“1”,(8)空缺处所填写的内容

图L21前台销竹子系统类图

知识点解析:暂无解析

11、请使用I说明I中给出的词语,将销售事件序列图中的(A)〜(D)空缺处的内容填

写完整。

标准答案:由题干中给出的关键信息“每个销售事件从收款机响应收款人员的指令

开始,先向商品发送检索请求消息来查找将被出售的商品……”可知,收款机将向

商品对象发送“检索”这一触发消息,因此(A)空缺处所填写的内容是“检索”。田题

干中关键信息“接着收款机发送计价和入账消息请求售出操作,再由销售事件发送

记账消息给相应的账册……”可知,收款机将向销售事件发送“计价”、“入账”触发

消息,其中,"入账''消息将被销售事件转变为“记账”消息送给账册对象,因此出)

空缺处所填写的内容是“计价”,(C)空缺处所填写的内容是“记账”。由题干中关键

信息“再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一

次销售操作“可知,记账操作完成时即可表示本次销售事件入账操作结束,账册对

象将发送“入账”结束消息给收款机,以触发收款机等待下一次销售操作,因此(D)

空缺处所填写的内容是“入账

知识点解析:暂无解析

阅读以下算法说明和问题模型图,根据要求回答问题1、问题2。[说明]某大学城

图书馆需要在无线阅览厅的某些位置上放置无线接入点AP(AccessPoin)o假设每

个无线AP覆盖范围的半径是6米,因此必须使得每台笔记本电脑上的无线网卡到

某个无线AP的直线距离不超过6米。为了简化问遨,假设所有无线网卡在同一直

线上,并且无线AP沿该直线放置。该问题可以建模为如图1-13所示,其中直线

表示无线网卡所在的直线,实心正方形表示无线网卡。现采用贪心策略实现用尽可

能少的无线AP覆盖所有的无线网卡。

现贪心算法的流程如图1-14所示。其中,①d[i](14WN)表示第i张无线网卡到通道

A端的距离,N表示无线网卡的总数,无线网卡的编号按照无线网卡到通道A端

的距离从小到大进行编号:②s[k]表示第k(kNl)个无线AP到通道A端的距离。算

法结束后k的值为无线AP的总数。

图1・14实现贪心算法的程序流程图

12、请填补图1/4流程图中(1)〜(4)空缺处的内容。

标准答案:本试题的题干说明中已将无线网卡分布问题建模(如图1-13所示)。其

中,直线表示无线网卡所在的直线,实心正方形表示无线网卡。而要求解的问题是

要求如何在该直线上布局无线AP,使其能覆盖所有的无线网卡,并且所用无线

AP的数量要尽可能的少。这是一个通过进行一系列选择求最优解的问题。分析该

问题,发现其具有最优子结构,并且具有贪心选择性质,故该问题可以用贪心算法

来求解。贪心算法思想是:问题的规模为N,从第1个无线网卡(最左端)开始布局

无线AP,把第1个无线AP放置在该无线网卡右方的6米处,此时该无线AP会覆

盖从第1个无线网卡到该无线网卡右方直线长度为12米的所有无线网卡,假设覆

盖了NI个无线网卡。此时问题规模变成了N.N1,接着把第1个无线AP覆盖的无

线网卡去掉,再从N-N1中选择第1个(最左端)无线网卡开始布局无线AP,将第2

个无线AP放置在该无线网卡右方的6米处。依此布局,直到覆盖所有的无线网

卡。图1-22是问题解的模型。其中,直线表示无线网卡所在的直线,实心正方形

表示无线网卡,实心圆形表示无线AP,虚线圆以对应无线AP为圆心,直径为无

线AP的覆盖范围,即对应无线AP的覆盖范围(12米)。

、,一、.一、

问题解模型用实现贪心算法的流程见题干的图1-14。由于“算法

结束后k的值为无线AP的总数”,因此在算法开始处需要对变量k赋初值,即(1)

空缺处所填写的内容是“k=0”。该贪心算法中,N表示无线网卡的总数,且无线网

卡的编号按照无线网卡到通道A端的距离从小到大进行编号,d[i](修iSN)表示第i

个无线网卡到通道A端的距离。当判断第i个无线网卡未超过无线网卡总数N,而

求解下一个无线网卡(即第i+1个无线网卡,或第j个无线网卡)所归属的无线AP

时,也需要判断第j个无线网卡是否超过无线网卡总数N,以及第j个无线网卡与

第i个无线网卡之间的跟离是否超过12米,因此⑵空缺处所在的判断条件是“jV

=N&&d|j|-d|i|<=12",即该空缺处所填写的内容是“j〈=N”或其等价形式。看第j

个无线网卡未超过无线网卡总数N,且第j个无线网卡与第i个无线网卡之间的距

离未超过12米,则可以求解再下一个无线网卡(即第i+2个无线网卡,或第j+1个

无线网卡)所归属的无线AP。反之,则需要记录无线AP的总数k,即(3)空缺处所

填写的内容是“k=k+l”或其等价形式;以及记录第k(kNl)个无线AP到通道A端的

距离,即(4)空缺处所填写的内容是“d[i]+6”或其等价形式。当求解完第k个无线

AP(覆盖了N1个无线网卡)的布局后,需要把第k个无线AP覆盖的无线网卡去

掉,再从N-N1中选择第1个(最左端)无线网卡开始布局第k+1个无线AP。依此不

断求解,直到覆盖所有的无线网卡。

知识点解析:暂无解析

13、该贪心算法的时间复杂度为(5)。

标准答案:虽然该贪心算法中包含两个循环,但实际上只是遍历所有无线网卡一

次,因此算法复杂度是O(N)。

知识点解析:暂无解析

二、选答题(本题共5题,每题1.0分,共5分。)

14、阅读以下说明和C函数,将(1)〜(5)空缺处的字句填写完整。[说明]计算机在

处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的

后缀表达式形式为“46512037-*+”。计算后缀表达式时,从左至右扫描后缀表达

式:若遇到运算对象,则压入栈中:遇到运算符,则从栈中弹出相关运算对象进行

计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,

后缀表达式“46512037-*+”的计算过程如下:a.依次将46、5、120、37压入栈

中:b.遇到取出37、120,计算120-37=83,将其压入栈中;c.遇到“*”,

取出83、5,计算5x83=415,将其压入栈中;d.遇到取出415、46,计算

46+415=461,将其压入栈中;e.表达式结束,则计算过程完成。函数

computing(charexpr[],inl*result)的功能是基于栈计算后缀形式的表达式(以串形式存

入字符数组expr)的值,并通过参数result返回该值。函数的返回值为-1/0,分别表

示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有

项均以空格分隔,且运算符仅包含加("+”)、减(“-”)、乘(“*”)、除("\”)。函数

computing中所用栈的基本操作的函数原型说明如下。•void

InitStack(STACK*s):初始化栈。•voidPush(STACK*s,inte):将一个整数压栈,

栈中元素数目增1。•voidPop(STACK*s):栈顶兀素出栈,栈中元素数目减1。•

intTop(STACKs):返回非空栈的栈顶元素值,栈中元素数目不变。•int

IsEmpty(STACKs):若s是空栈,则返回1;否则返回0。[C函数]

intcociputing(charcxpr(],int*result)

(

STACKs;inttnum,a.b;char*ptr;

InitStack(&s);

ptrnexpr;pstr八字符指针指向后集表达式申的第一个字符♦/

while(»ptr!x'\O'){

if(*ptr-«f•){/"当前字符是空格,/

(1);/•字符指针指向下一字符♦/

continue;

)

else

if(isdigit(*ptr))(

/•当前字符是敷字,fl蟠该数字开始的数字串转换为数值,/

tnvxn=(2);

vrtiile(*ptr>='0'&&*ptr<='9*)•

tnum«tnuw*10♦(3);

ptr**;

)

Pu8h((4));

)

else/♦当前字符是运算符或其他符号〃

if(*ptr=»'♦'II*ptr=='-'11*ptrIl*ptr=c'/'){

if(!l8Btpty(s))(

a=Top(a);Pop(&8);/*取运算符的第二个运算数♦/

if(ilsEmpty(a))(

b=Top(8);Pop(&a);一^

)

elsereturn-1;

)

elsereturn-1;

switch(*ptr){

case,+,:Push(43,b+a);break;

case:Push(43,b-a);break;

case'*•:Push(&3,b*a);break;

case:Push(&s,b/a);break;

)

)

else

return-1;

ptr++;/*字符指针指向下一字符*/

)/•while♦/

if(IsEmpty(s))return-1;

eise(

(5)sTop(s);Pop(&s);/•取运算结果•/

if(JIsEmpty(s))return-1;

return0;

标准答案:是一道考查栈结构在后缀表达式求值过程中应用的分析题。利用栈计算

后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运

算符,则从栈中弹出对应数目的运算对象进行计算,并将运算结果压入栈中。重复

以上过程,直到后缀表达式扫描结束,最后栈顶就是表达式的计算结果。根据题

干中的说明,由于后缀表达式以字符串方式存储且以空格分隔符号(数值、算符),

因此遇到空格字符时,指向表达式中字符的指针ptr应增加1指向后续字符,因

此,(1)空缺处应填入“p"+”或其等价形式。下面以字符串“375”为例说明将一个数

字串转换为数值的过程。数值375=((0x10+3)x10+7)x10+5(1)取得数字字符

“3”(ASCII码值为51,字符0的ASCII码值为48)o

tnum=0*10+51-48=3;Q)取得数字字符“7”(ASCII码值为55)。

tnum=3*10+55-48=37;⑶取得数字字符“5"(ASCH码值为53)。

5um=37*10♦53-48=375;以卜程序代码用于将一个数字字符串转换为对

应的整数存入〔num,显然,tnum的初始值应为0。

tnum=(2);

while(*ptr>='0,&&*ptr<=*9'){

tnum=tnum*10+(3);

ptr+4;

)因此,(2)空缺处应填入“0”。

对于(3)空缺所在表达式的功能是:将数字字符转换为数值,因此(3)空缺处填入

“*ptr-48L(4)空缺处用于将转换所得的数值mum压入栈顶,根据题目中Push的

原型“voidPush(STACK*s,intef,调用时第一个实际参数是STACK类型变量的

地址,第二个实际参数是一个整数,因此,(4)空缺处填入由于函数

computing(charexprU,im*result)通过参数result返回该表达式的值,因此需要将存

在栈顶的运算结果赋值给result指向的整型变量,即(5)空缺处填入“*result”。本试

题目还考查了参数传递知识,读者可通过上机实践加强基本概念的理解,以及C

程序设计能力的培养。

知识点解析:暂无解析

请认真阅读以下关于某传输系统的技术说明、状态转换图及C++代码,根据要求

回答问题1〜问题2。[说明J传输门是传输系统中的重要装置。传输门具有

Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)和Closing(正

在关闭)5种状态。触发状态的转换事件有click、complete和timeout3种。事件与

其相应的状态转换如图7-15所示。

图7-15传输门响应事件与其状态转换图下面的[C++代码1]与|CH代

码2]分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺

cons:intCLOSED•1;eongtIncOPt*W・2i

cona。intCPEN•3;constIntCLOSING•4,

conetintCTAY0PD4-S;〃定义次每交量.用不同・盘防不秘M

class^002r<

private1

intst«tei

v©14e«tstato(intstate)(»stat«;)〃役置与IttH

publics

Doer()taeate(CLOSED)<))

void-siM//**与W毒•出相应的字符串

witch(8tate)(

caseOPWINGtC0Mt«-OFe«lW«“MH;break;

CA8«CLOSTOIeaut«"CLOSED-«ondl;^reak;

ca>.OPfX:cout«PP»r<<endl;

—CLOSING:cout«•CLOSINC-«endl;br^ak:

wSTAYOPEKicout«•STAYOPfN*«<x>l;bceak;

voiicllckO(//XTclick,»叼逼万状利校

if(一«i)MCStAt*(CPEWING);

山I»etStat«(C:X)SDO;

cetSt4tC(STAY0FZN):

voidClseoutOI〃发生tiaeout”时造行状击转换

it(state««OPEN)tecStM«(CLOSING):

voidconplotoOC〃发生d2・"W进行伏“慢

(eeatc-oranNO)sotstAto(orEN);

elseif<atat>CLOSIMn0eCStat«(CLO6eD;

>>

intMln()(

DooraDoor;

oOoor.v«%Xtat«<>,aOoor.clickOf«Door.0Cat•(>4300r.CCMpl«C«<>t

4000r.g«tState(),aSoor.clickOraDoor.gotStAio();aDoor.clickO;

aOoor.oecStateUjreturnOj

【C+・代码2】

classDoor(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论