软设下午题.docx
- 文档编号:26870975
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:35
- 大小:198.23KB
软设下午题.docx
《软设下午题.docx》由会员分享,可在线阅读,更多相关《软设下午题.docx(35页珍藏版)》请在冰豆网上搜索。
软设下午题
全国计算机技术与软件专业技术资格(水平)考试
2010年上半年软件设计师下午试卷
(考试时间14:
00~16:
30共150分钟)
请按下述要求正确填写答题纸
1.在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。
2.在答题纸的指定位置填写准考证号、出生年月日和姓名。
3.答题纸上除填写上述内容外只能写解答。
4.本试卷共6道题,试题一至试题四是必答题,试题五和试题六选答1道。
每
题15分,满分75分。
5.解答时字迹务必清楚,字迹不清时,将不评分。
6.仿照下面例题,将解答写在答题纸的对应栏内。
例题
2010年上半年全国计算机技术与软件专业技术资格(水平)考试日期是
(1)
月
(2)日。
因为正确的解答是“5月22日”,故在答题纸的对应栏内写上“5”和“22”
(参看下表)。
例题
(1)
(2)
解答栏
5
22
2010年上半年软件设计师下午试卷第1页(共14页)
试题一(共15分)
阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某大型企业的数据中心为了集中管理、控制用户对数据的访问并支持大量的连接需
求,欲构建数据管理中间件,其主要功能如下:
(1)数据管理员可通过中间件进行用户管理、操作管理和权限管理。
用户管理维护
用户信息,用户信息(用户名、密码)存储在用户表中;操作管理维护数据实体的标准操
作及其所属的后端数据库信息,标准操作和后端数据库信息存放在操作表中;权限管理维
护权限表,该表存储用户可执行的操作信息。
(2)中间件验证前端应用提供的用户信息。
若验证不通过,返回非法用户信息;若
验证通过,中间件将等待前端应用提交操作请求。
(3)前端应用提交操作请求后,中间件先对请求进行格式检查。
如果格式不正确,
返回格式错误信息;如果格式正确,则进行权限验证(验证用户是否有权执行请求的操作),
若用户无权执行该操作,则返回权限不足信息,否则进行连接管理。
(4)连接管理连接相应的后台数据库并提交操作。
连接管理先检查是否存在空闲的
数据库连接,如果不存在,新建连接;如果存在,则重用连接。
(5)后端数据库执行操作并将结果传给中间件,中间件对收到的操作结果进行处理
后,将其返回给前端应用。
现采用结构化方法对系统进行分析与设计,获得如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。
格式错误信息
权限不足信息
用户信息
操作权限
E2
E1
处理后的操作结果
操作请求
用户信息
非法用户信息
数据管理中间件
标准操作/后端数据库信息
验证后的操作请求
连接请求
操作结果
E3
【问题1】(3分)
图1-1顶层数据流图
使用说明中的词语,给出图1-1中的实体E1~E3的名称。
【问题2】(3分)
使用说明中的词语,给出图1-2中的数据存储D1~D3的名称。
2010年上半年软件设计师下午试卷第2页(共14页)
用户验证
用户信息
D1
D2
非法用户信息
用户信息
P
D3
E1
格式错误信息操作请求
格式检查
用户信息/操作
权限验证
权限不足信息
用户管理
操作管理
标准操作/
权限管理
数据库信息
/验证后的操作请求
用户信息
后端数据库信息
E2
操作权限
连接管理
验证后
的操作请求
连接请求
E3
【问题3】(6分)
图1-20层数据流图
给出图1-2中加工P的名称及其输入、输出流。
名称起点
输入流
输出流P
终点
P
除加工P的输入与输出流外,图1-2还缺失了两条数据流,请给出这两条数据流的起
点和终点。
起点
终点
注:
名称使用说明中的词汇,起点和终点均使用图1-2中的符号或词汇。
【问题4】(3分)
在绘制数据流图时,需要注意加工的绘制。
请给出三种在绘制加工的输入、输出时可
能出现的错误。
2010年上半年软件设计师下午试卷第3页(共14页)
试题二(共15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某学校拟开发一套实验管理系统,对各课程的实验安排情况进行管理。
【需求分析】
一个实验室可进行多种类型不同的实验。
由于实验室和实验员资源有限,需根据学生
人数分批次安排实验室和实验员。
一门课程可以为多个班级开设,每个班级每学期可以开
设多门课程。
一门课程的一种实验可以根据人数、实验室的可容纳人数和实验类型,分批
次开设在多个实验室的不同时间段。
一个实验室的一次实验可以分配多个实验员负责辅导
实验,实验员给出学生的每次实验成绩。
(1)课程信息包括:
课程编号、课程名称、实验学时、授课学期和开课的班级等信
息;实验信息记录该课程的实验进度信息,包括:
实验名、实验类型、学时、安排周次等
信息,如表2-1所示。
表2-1课程及实验信息
课程编号
课程名称数字电视原理实验学时
12
班级
电0501,信0501,计0501授课院系机械与电气工程授课学期第三学期
序号
实验名
实验类难度
学时
安排周次
音视频AD-DA实验
音频编码实验
验证性
验证性
1
2
2
2
3
5
视频编码实验
演示性0.5
1
9
(2)以课程为单位制定实验安排计划信息,包括:
实验地点,实验时间、实验员等
信息,实验计划如表2-2所示。
表2-2实验安排计划
课程编号课程名称数字电视原理
安排学期
2009年秋总人数220
实验编号
实验名
实验员
实验时间
地点
批次号人数
音视频AD-DA实验盛×\u65292X陈×第3周周四晚上实验三楼3101
音视频AD-DA实验盛×\u65292X陈×第3周周四晚上实验三楼3102
音视频AD-DA实验吴×\u65292X刘×第3周周五晚上实验三楼3113
60
60
60
音视频AD-DA实验
吴×
第3周周五晚上实验三楼3114
40
音频编码实验
盛×\u65292X刘×第5周周一下午实验四楼4101
70
(3)由实验员给出每个学生每次实验的成绩,包括:
实验名、学号、姓名、班级、
实验成绩等信息,实验成绩如表2-3所示。
表2-3实验成绩
实验员:
盛×
实验名
学号
音视频AD-DA实验
姓名
陈民
刘志
张勤
课程名
班级
信0501
信0501
计0501
数字电视原理
实验成绩
87
78
86
2010年上半年软件设计师下午试卷第4页(共14页)
(4)学生的实验课程总成绩根据每次实验的成绩以及每次实验的难度来计算。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。
课程
班级
1
设置
m
实验
学生
k
安排
n
实验室
实验员
【逻辑结构设计】
图2-1实体联系图
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
课程(课程编号,课程名称,授课院系,实验学时)
班级(班级号,专业,所属系)
开课情况(
实验(
实验计划(
实验员(
(1)
(2)
(3)
(4)
,授课学期)
,实验类型,难度,学时,安排周次)
,实验时间,人数)
,级别)
实验室(实验室编号,地点,开放时间,可容纳人数,实验类型)
学生(
实验成绩(
【问题1】(6分)
(5)
(6)
,姓名,年龄,性别)
,实验成绩,评分实验员)
补充图2-1中的联系和联系的类型。
【问题2】(6分)
根据图2-1,将逻辑结构设计阶段生成的关系模式中的空
(1)~(6)补充完整并用下
划线指出这六个关系模式的主键。
【问题3】(3分)
如果需要记录课程的授课教师,新增加“授课教师”实体。
请对图2-1进行修改,画
出修改后的实体间联系和联系的类型。
2010年上半年软件设计师下午试卷第5页(共14页)
试题三(共15分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某运输公司决定为新的售票机开发车票销售的控制软件。
图3-1给出了售票机的面板
示意图以及相关的控制部件。
显示屏
硬币口
插卡口
+
C
123
一些说明
打印机
456
789
0
图3-1售票机面板示意图
继续/取消键盘
目的地键盘
纸币槽
车票键盘
售票机相关部件的作用如下所述:
(1)目的地键盘用来输入行程目的地的代码(例如,200表示总站)。
(2)乘客可以通过车票键盘选择车票种类(单程票、多次往返票和座席种类)。
(3)继续/取消键盘上的取消按钮用于取消购票过程,继续按钮允许乘客连续购买多
张票。
(4)显示屏显示所有的系统输出和用户提示信息。
(5)插卡口接受MCard(现金卡),硬币口和纸币槽接受现金。
(6)打印机用于输出车票。
假设乘客总是支付恰好需要的金额而无需找零,售票机的维护工作(取回现金、放入
空白车票等)由服务技术人员完成。
系统采用面向对象方法开发,使用UML进行建模。
系统的顶层用例图和类图分别如
图3-2和图3-3所示。
2010年上半年软件设计师下午试卷第6页(共14页)
购票
(1)
选择目的地和
车票类型
维护售票机
(2)
U1
(3)
(4)
(5)
图3-2顶层用例图
显示屏
(6)
售票机
图3-3类图
卡驱动器
硬币/纸币槽打印机
【问题1】(5分)
根据说明中的描述,给出图3-2中A1和A2所对应的参与者,U1所对应的用例,以
及
(1)、
(2)处所对应的关系。
【问题2】(7分)
根据说明中的描述,给出图3-3中缺少的C1~C4所对应的类名以及(3)~(6)处所
对应的多重度。
【问题3】(3分)
图3-3中的类图设计采用了中介者(Mediator)设计模式,请说明该模式的内涵。
2010年上半年软件设计师下午试卷第7页(共14页)
试题四(共15分)
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
对有向图进行拓扑排序的方法是:
(1)初始时拓扑序列为空;
(2)任意选择一个入度为0的顶点,将其放入拓扑序列中,同时从图中删除该顶点
以及从该顶点出发的弧;
(3)重复
(2),直到不存在入度为0的顶点为止(若所有顶点都进入拓扑序列则完
成拓扑排序,否则由于有向图中存在回路无法完成拓扑排序)。
函数int*TopSort(LinkedDigraphG)的功能是对有向图G中的顶点进行拓扑排序,返回
拓扑序列中的顶点编号序列,若不能完成拓扑排序,则返回空指针。
其中,图G中的顶点
从1开始依次编号,顶点序列为v1,v2,…,vn,图G采用邻接表表示,其数据类型定
义如下:
#defineMAXVNUM50
typedefstructArcNode{
intadjvex;
/*最大顶点数*/
/*表结点类型*/
/*邻接顶点编号*/
structArcNode*nextarc;/*指示下一个邻接顶点*/
}ArcNode;
typedefstructAdjList{
charvdata;
ArcNode*firstarc;
}AdjList;
/*头结点类型*/
/*顶点的数据信息*/
/*指向邻接表的第一个表结点*/
typedefstructLinkedDigraph{/*图的类型*/
intn;
/*图中顶点个数*/
AdjListVhead[MAXVNUM];/*所有顶点的头结点数组*/
}LinkedDigraph;
例如,某有向图G如图4-1所示,其邻接表如图4-2所示。
1v123
4^
v3
v1
v6
v4
v2
v7
v5
2
3
4
5
6
7
v2
v3
v4
v5
v6^
v7
4
6^
3
4
6^
5^
6
7^
7^
图4-1有向图G
图4-2有向图G的邻接表示意图
2010年上半年软件设计师下午试卷第8页(共14页)
函数TopSort中用到了队列结构(Queue的定义省略),实现队列基本操作的函数原型
如下表所示:
函数原型
voidInitQueue(Queue*Q)
boolIsEmpty(QueueQ)
voidEnQueue(Queue*Q,inte)
voidDeQueue(Queue*Q,int*p)
【C代码】
int*TopSort(LinkedDigraphG){
ArcNode*p;
QueueQ;
intk=0;
intj=0,w=0;
int*topOrder,*inDegree;
说明
初始化队列(构造一个空队列)
判断队列是否为空,若是则返回true,否则返回false
元素入队列
元素出队列
/*临时指针,指示表结点*/
/*临时队列,保存入度为0的顶点编号*/
/*临时变量,用作数组元素的下标*/
/*临时变量,用作顶点编号*/
topOrder=(int*)malloc((G.n+1)*sizeof(int));/*存储拓扑序列中的顶点编号*/
inDegree=(int*)malloc((G.n+1)*sizeof(int));/*存储图G中各顶点的入度*/
if(!
inDegree||!
topOrder)returnNULL;
(1);
/*构造一个空队列*/
for(j=1;j<=G.n;j++){/*初始化*/
topOrder[j]=0;inDegree[j]=0;
}
for(j=1;j<=G.n;j++)/*求图G中各顶点的入度*/
for(p=G.Vhead[j].firstarc;p;p=p->nextarc)
inDegree[p->adjvex]+=1;
for(j=1;j<=G.n;j++)/*将图G中入度为0的顶点保存在队列中*/
if(0==inDegree[j])EnQueue(&Q,j);
2010年上半年软件设计师下午试卷第9页(共14页)
while(!
IsEmpty(Q)){
(2);
topOrder[k++]=w;
/*队头顶点出队列并用w保存该顶点的编号*/
/*将顶点w的所有邻接顶点的入度减1(模拟删除顶点w及从该顶点出发的弧的操作)*/
for(p=G.Vhead[w].firstarc;p;p=p->nextarc){
(3)-=1;
if(0==(4))EnQueue(&Q,p->adjvex);
}/*for*/
}/*while*/
free(inDegree);
if((5))
returnNULL;
returntopOrder;
}/*TopSort*/
【问题1】(9分)
根据以上说明和C代码,填充C代码中的空
(1)~(5)。
【问题2】(2分)
对于图4-1所示的有向图G,写出函数TopSort执行后得到的拓扑序列。
若将函数
TopSort中的队列改为栈,写出函数TopSort执行后得到的拓扑序列。
【问题3】(4分)
设某有向无环图的顶点个数为n、弧数为e,那么用邻接表存储该图时,实现上述拓
扑排序算法的函数TopSort的时间复杂度是(6)。
若有向图采用邻接矩阵表示(例如,图4-1所示有向图的邻接矩阵如图4-3所示),且
将函数TopSort中有关邻接表的操作修改为针对邻接矩阵的操作,那么对于有n个顶点、e
条弧的有向无环图,实现上述拓扑排序算法的时间复杂度是(7)。
v1v2v3v4v5v6v7
v1
v2
v3
v4
v5
v6
v7
0111000
0001100
0000010
0010011
0001001
0000000
0000010
图4-3有向图G的邻接矩阵
2010年上半年软件设计师下午试卷第10页(共14页)
从下列的2道试题(试题五和试题六)中任选1道解答。
如果解答的试题数超过1道,则题号小的1道解答有效。
试题五(共15分)
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特
征与起飞特征。
需要模拟的飞机种类及其特征如表5-1所示。
表5-1
飞机种类
直升机(Helicopter)
客机(AirPlane)
歼击机(Fighter)
起飞特征
垂直起飞(VerticalTakeOff)
长距离起飞
(LongDistanceTakeOff)
长距离起飞
(LongDistanceTakeOff)
飞行特征
亚音速飞行
(SubSonicFly)
亚音速飞行
(SubSonicFly)
超音速飞行
(SuperSonicFly)
超音速飞行
鹞式战斗机(Harrier)垂直起飞(VerticalTakeOff)
(SuperSonicFly)
为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图5-1
所示。
图5-1类图
图5-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter
和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。
2010年上半年软件设计师下午试卷第11页(共14页)
【C++C代码】
#include
usingnamespacestd;
classFlyBehavior{
public:
virtualvoidfly()=0;
};
classSubSonicFly:
publicFlyBehavior{
public:
voidfly(){cout<<"亚音速飞行!
"< }; classSuperSonicFly: publicFlyBehavior{ public: voidfly(){cout<<"超音速飞行! "< }; classTakeOffBehavior{ public: virtualvoidtakeOff()=0; }; classVerticalTakeOff: publicTakeOffBehavior{ public: voidtakeOff(){cout<<"垂直起飞! "< }; classLongDistanceTakeOff: publicTakeOffBehavior{ public: voidtakeOff(){cout<<"长距离起飞! "< }; classAirCraft{ protected: (1); (2); public: voidfly(){(3);} voidtakeOff(){(4);}; }; classHelicopter: publicAirCraft{ public: Helicopter(){ flyBehavior=new(5); takeOffBehavior=new(6); } (7){ if(! flyBehavior)deleteflyBehavior; if(! takeOffBehavior)deletetakeOffBehavior; } }; //其它代码省略 2010年上半年软件设计师下午试卷第12页(共14页)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 下午