2017下半年软件设计师考试下午真题(2)

软件设计师 责任编辑:胡媛 2017-11-17

添加老师微信

备考咨询

加我微信

摘要:希赛网为大家整理了2017下半年软件设计师考试下午真题,以下为第二部分。

希赛网为大家整理了2017下半年软件设计师考试下午真题以下为第二部分。


【试题三】( 15 分)
阅读下列说明,回答问题 1问题 3,将解答填入答题纸的对应栏内。
【说明】
某大学拟开发一个用于管理学术出版物(Pu blication) 的数字图书馆系统,用户可以从该系统查询或下载己发表的学术出版物。系统的主要功能如下:
1.登录系统。系统的用户 (User)仅限于该大学的学生 (Student) 、教师(Faculty)和其他工作人员(Staff) 。在访问系统之前,用户必须使用其校园账户和密码登录系统。
2. 查询某位作者 (Author)的所有出版物。系统中保存了会议文章 (ConfPaper)、期刊文章 (JurnalArticle)和校内技术报告(TechReport )等学术出版物的信息,如题目、作者以及出版年份等。除此之外,系统还存储了不同类型出版物的一些特有信息;
(1)对于会议文章,系统还记录了会议名称、召开时间以及召开地点;
(2)对于期刊文章,系统还记录了期刊名称、出版月份、期号以及主办单位;
(3)对于校内技术报告,系统记录了由学校分配的ID。
3. 查询指定会议集(Proceedings)或某个期刊特定期(Edition) 的所有文章。会议集包含了发表在该会议(在某个特定时间段、特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。
4.下载出版物。系统记录每个出版物被下载的次数。
5.查询引用了某篇出版物的所有出版物。在学术出版物中引用他人或早期的文献作为相关工作或背景资料是很常见的现象。用户也可以在系统中为某篇出版物注册引用通知,若有新的出版物引用了该出版物,系统将发送电子邮件通知该用户。
现在采用面向对象方法对该系统进行开发,得到系统的初始设计类图如图3-1所示。

2017下半年软件设计师考试下午真题(2)


【问题1】(9分)
根据说明中的描述,给出图3-1中C1~C9所对应的类名。
【问题2】(4分)
根据说明中的描述,给出图3-1中类C6~C9的属性。
【问题3】(2分)
图3-1中包含了哪种设计模式?实现的是该系统的哪个功能?


试题四
阅读下列说明和C代码,回答问题 1 至问题 2,将解答写在答题纸的对应栏内。
【说明】
一个无向连通图G点上的哈密尔顿(Hamiltion)回路是指从图G上的某个顶点出发,经过图上所有其他顶点一次且仅一次,最后回到该顶点的路劲。一种求解无向图上哈密尔顿回路算法的基础私下如下:
假设图G存在一个从顶点V0出发的哈密尔顿回路V1——V2——V3——…——Vn-1——V0。算法从顶点V0出发,访问该顶点的一个未被访问的邻接顶点V1,接着从顶点V1出发,访问V1一个未被访问的邻接顶点V2,。;对顶点Vi,重复进行以下操作:访问Vi的一个未被访问的邻接接点Vi+1;若Vi的所有邻接顶点均已被访问,则返回到顶点Vi-1,考虑Vi-1的下一个未被访问的邻接顶点,仍记为Vi;知道找到一条哈密尔顿回路或者找不到哈密尔顿回路,算法结束。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
n :图G中的顶点数
c[][]:图G的邻接矩阵
K:统计变量,当期已经访问的定点数为k+1
x[k]:第k个访问的顶点编号,从0开始
Visited[x[k]]:第k个顶点的访问标志,0表示未访问,1表示已访问
⑵C程序
#include <stido.h>
#include <stidb.h>
#define MAX 100
Vido Hamilton(int n,int x[MAX,int c[MAX][MAX]){
in t ;
in t visited[MAX];
int k;
/*初始化x数组贺visited数组*/
for (i=0:i<n;i++){
x[i]=0;
visited [i]=0;

/*访问起始顶点*/
k=0
(  );
x[0]=0
K=k+1
/*访问其他顶点*/
while(k>=0){
x[k]=x[k]+1;
while(x[k]><n){
if (  )&&c[x-[k-1]][x[k]=1){/*邻接顶点x[k]未被访问过*/
break;
}else{
x[k] = x[k] +1


if(x[k] <n-1&&(  ){ /*找到一条哈密尔顿回路*/
for (k=0;k<n;k++){
prinf(〝%d--〝,x[k] ;  /*输出哈密尔顿回路*/

prinf(〝%d--〝,x[0] ;
return;
}else if x[k]<n&&k<n-1){/*设置当期顶点的访问标志,继续下一个顶点*/
(  )
k=k+1;
}else{/*没有未被访问过的邻接顶点,回退到上一个顶点*/
x[k]=0;
visited x[k]=0;
(  );



【问题1】(10分)
根据题干说明。填充C代码中的空(1)~(5)。
【问题2】(5分)
根据题干说明和C代码,算法采用的设计策略为(  ),该方法在遍历图的顶点时,采用的是(  )方法(深度优先或广度优先)。


返回目录:2017下半年软件设计师考试下午真题汇总

点击查看:2017下半年软考真题参考答案+解析

在线估分:2017下半年软件设计师下午真题答案和解析

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取