第
1題: 閱讀下列說明和圖,回答問題1至4,將答案填入答題紙的對應欄內。
【說明】
某公司擬開發(fā)一個共享單車系統(tǒng),采用北斗定位系統(tǒng)進行單車定位,提供針對用戶的APP以及微信小程序,基于Web的管理與監(jiān)控系統(tǒng)。該共享單車系統(tǒng)的主要功能如下。
1)用戶注冊登錄。用戶在APP段端輸入手機號并獲取驗證碼后進行注冊,將用戶信息進行存儲。用戶登錄后顯示用戶所在位置周圍的單車。
2)使用單車。
①掃碼/手動開鎖。通過掃描二維碼或手動輸入編碼獲取開鎖密碼,系統(tǒng)發(fā)送開鎖指令進行開鎖,系統(tǒng)修改單車狀態(tài),新建單車行程。
②騎行單車。單車定時上傳位置,更新行程。
③鎖車結賬。用戶停止使用或手動鎖車并結束行程后,系統(tǒng)根據已設置好的計費規(guī)則及使用時間自動結算,更新本次騎行的費用并顯示給用戶,用戶確認支付后,記錄行程的支付狀態(tài),系統(tǒng)還將重置單車的開鎖密碼和單車狀態(tài)。
3)輔助管理。
①查詢。用戶可以查看行程列表和行程詳細信息。
②保修。用戶上報所在位置或單車位置以及單車故障信息并進行記錄。
4)管理與監(jiān)控
①單車管理及計費規(guī)則設置。商家對單車基礎信息,狀態(tài)等進行管理,對計費規(guī)則進行設置并存儲。
②單車監(jiān)控。對單車,故障,行程等進行查詢統(tǒng)計。
③用戶管理。管理用戶信用與狀態(tài)信息,對用戶進行查詢統(tǒng)計。
現采用結構化方法對共享單車系統(tǒng)進行分析與設計,獲得如圖1-1所示的上下文數據流圖和圖1-2所示的0層數據流圖。


【問題1】(3分)
使用說明中的詞語,給出圖1-1中的實體E1~E3的名稱。
【問題2】(5分)
使用說明中的詞語,給出圖1-2中的數據存儲D1~D5的名稱。
【問題3】(5分)
根據說明和圖中術語及符號,補充圖1-2中缺失的數據流及其起點和終點。
【問題4】(2分)
根據說明中術語,說明“使用單車”可以分解為那些子加工?
答案解析與討論:
www.ichunya.com/st/395659227.html第
3題: 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某大學擬開發(fā)一個用于管理學術出版物(Publication)的數字圖書館系統(tǒng),用戶可以從該系統(tǒng)查詢或下載已發(fā)表的學術出版物。系統(tǒng)的主要功能如下:
1.登錄系統(tǒng)。系統(tǒng)的用戶(User)僅限于該大學的學生(Student),教師(Faculty)和其它工作人員(Staff)。在訪問系統(tǒng)之前,用戶必須使用其校園賬號和密碼登錄系統(tǒng)。
2.查詢某位作者(Author)的所有出版物。系統(tǒng)中保存了會議文章(ConfPaper),期刊文章(JournalArticle)和校內技術報告(TechReport)等學術出版物的信息,如題目,作者以及出版年份等。除此之外,系統(tǒng)還存儲了不
同類型出版物的一些特有信息;
(1)對于會議文章,系統(tǒng)還記錄了會議名稱,召開時間以及召開地點;
(2)對于期刊文章,系統(tǒng)還記錄了期刊名稱,出版月份,期號以及主辦單位;
(3)對于校內技術報告,系統(tǒng)還記錄了由學校分配的唯一ID。
3.查詢制定會議集(Proceedings)或某個期刊特定期(Edition)的所有文章。會議集包含了發(fā)表在該會議(在某個特定時間段,特定地點召開)上的所有文章。期刊的每一期在特定時間發(fā)行,其中包含若干篇文章。
4.下載出版物。系統(tǒng)記錄每個出版物被下載的次數。
5.查詢引用了某篇出版物的所有出版物。在學術出版物中引用他人或早期的文獻作為相關工作或背景資料是很常見的現象。用戶也可以在系統(tǒng)中為某篇出版物注冊引用通知,若有新的出版物引用該出版物,系統(tǒng)將發(fā)送電子郵件通知該用戶。
現在采用面向對象方法對該系統(tǒng)進行開發(fā),得到系統(tǒng)的初始設計類圖如圖3-1所示。

【問題1】(9分)
根據說明中的描述,給出圖3-1中C1~C9所對應的類名。
【問題2】(4分)
根據說明中的描述,給出圖3-1中類C6~C9的屬性。
【問題3】(2分)
圖3-1中包含了那種設計模式?實現的是該系統(tǒng)的哪個功能?
答案解析與討論:
www.ichunya.com/st/395678773.html第
4題: 閱讀下列說明和C代碼,回答問題1至問題2,將解答寫在答題紙的對應欄內
【說明】
一個無向連通圖G上的哈密爾頓(Hamilton)回路是指從圖G上的某個頂點出發(fā),經過圖上所有其他頂點一次且僅一次,最后回到該頂點的路徑。一種求解無向圖上的哈密爾頓回路算法的基本思想如下:
假設圖G存在一個從頂點u0出發(fā)的哈密爾頓回路u0—u1—u2—u3—...—u0—un-1—u0。算法從頂點u0出發(fā),訪問該頂點的一個未被訪問的領接頂點u1 ,接著從頂點u1出發(fā),訪問u1的一個未被訪問的領接頂點u2,...。對頂點ui,重復進行以下操作:訪問ui的一個為被訪問的領接頂點ui+1;若ui的所有領接頂點均已被訪問,則返回到頂點ui-1,考慮ui-1的下一個未被訪問的領接頂點,仍記為ui;直到找到一個哈密爾頓回路或者找不到哈密爾頓回路,算法結束。
【C代碼】
下面是算法的C語言實現。
(1)常量和變量說明
n:圖G中的頂點數
c[][]:圖G的領接矩陣
k:統(tǒng)計變量,當前已經訪問的頂點數為k+1
x[k]:第k個訪問的頂點編號,從0開始
visited[x[k]]:第k個頂點的訪問標志,0表示未訪問,1表示已訪問
(2)C程序
#include
#include
#define MAX 4Void Hamilton(int n,int x[MAX],int c[MAX][MAX]){
int i;
int visited[MAX];
int k;
/*初始化x數組和visited數組*/
for(i=o;ix[i]=0;
Visited[i]=0;
}
/*訪問起初頂點*/
K=0;
(1) ;
x[0]=0;
k=k+1;
/*訪問其它頂點*/
while(k>0){
x[k]=x[k]+1;
while(x[k]if( (2) &&c[x[k-1]][x[k]]==1){/*領接頂點x[k]未被訪問過*/
break;
}
else{
x[k]=x[k]+1;
}
}
if(x[k]for(k=0;kprintf(“%d--”,x[k]);/*輸出哈密爾頓回路*/
}
printf(“%d\n”,x[0]);
return;
}
else if(x[k]&&k (4) ;
k=k+1;
}
else {/*沒有未被訪問過的領接頂點,回退到上一個頂點*/
x[k]=0;
visited[x[k]]=0;
(5) ;
}
}
}
【問題1】(10分)
根據題干說明,填充C代碼中的空(1)~(5)。
【問題2】(5分)
根據題干說明和C代碼,算法采用的設計策略是(6),該方法在遍歷圖的頂點時,采用的是(7)方法(深度優(yōu)先或廣度優(yōu)先)。
答案解析與討論:
www.ichunya.com/st/395684405.html第
5題: 閱讀下列說明和C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
某圖像預覽程序要求能夠查看BMP,JPEG和GIF三種格式的文件,且能夠在Windows和Linux兩種操作系統(tǒng)上運行。程序需具有較好的擴展性以支持新的文件格式和操作系統(tǒng)。為滿足上述需求并減少所需生成的子類數目,現采用橋接 (Bridge)模式進行設計,得到如圖5.1所示的類圖。
【c++代碼】
#include
#include
Using namespace std;
class matrix{//各種格式的文件最終都被轉化為像素矩陣
//此處代碼省略
};
class Implement{
Public:
(1) ;//顯示像素矩陣m
};
class WinImp:public Implementor{
Public:
Void doPaint(Matrix m){/*調用Windows系統(tǒng)的繪制函數繪制像素矩陣*/}
};
class LinuxImp: public Implementor{
public:
Void doPaint(Matrix m){/*調用Linux系統(tǒng)的繪制函數繪制像素矩陣*/}
};
class Imag{
public:
void setImp(Implementor *imp){this.imp=imp;}
virtual void parseFile(String fileName)=0;
protected:
Implenentor *imp;
};
class BMPImage:public Image{
//此處代碼省略
};
class GIFImage:public Image{
public:
void parseFile(String fileName){
//此處解析GIF文件并獲取一個像素矩陣對象m
(2) ;//顯示像素矩陣m
}
};
class JPEGImage:public Image{
//此處代碼省略
};
int main(){
public static void main(String[] args){
//在Linux操作系統(tǒng)上查看demo.gif圖像文件
Imag imag= (3) ;
Implementor imageImp= (4) ;
(5) ;
image.parseFile(“demo.gif”);
}
}
答案解析與討論:
www.ichunya.com/st/3956916756.html