摘要:希賽網為大家整理了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所示。

【問題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代碼,算法采用的設計策略為( ),該方法在遍歷圖的頂點時,采用的是( )方法(深度優先或廣度優先)。
軟考備考資料免費領取
去領取
專注在線職業教育25年