免費(fèi)下載軟件設(shè)計(jì)師歷年真題:http://m.xiexiliangjiufa.com/zhenti/rs.html
該套題在線考試:http://m.xiexiliangjiufa.com/exam/examam.aspx?t1=2&sid=535858
1、 試題一
閱讀下列說明和圖,回答問題1至問題3,將解答填入對(duì)應(yīng)欄內(nèi)。
【說明】
某營銷企業(yè)擬開發(fā)一個(gè)銷售管理系統(tǒng),其主要功能描述如下:
1.接受客戶訂單,檢查庫存貨物是否滿足訂單要求。如果滿足,進(jìn)行供貨處理:修改庫存記錄文件,給庫房開具備貨單并且保留客戶訂單至訂單記錄文件;否則進(jìn)行缺貨處理:將缺貨訂單錄入缺貨記錄文件。
2.根據(jù)缺貨記錄文件進(jìn)行缺貨統(tǒng)計(jì),將缺貨通知單發(fā)給采購部門。
3.根據(jù)采購部門提供的進(jìn)貨通知單進(jìn)行進(jìn)貨處理:修改庫存記錄文件,并從缺貨記錄文件中取出缺貨訂單進(jìn)行供貨處理。
4.根據(jù)保留的客戶訂單進(jìn)行銷售統(tǒng)計(jì),打印統(tǒng)計(jì)報(bào)表給經(jīng)理。
現(xiàn)采用結(jié)構(gòu)化方法對(duì)銷售管理系統(tǒng)進(jìn)行分析與設(shè)計(jì),獲得如下圖所示的頂層數(shù)據(jù)流圖和0層數(shù)據(jù)流圖。

【問題1】
使用說明中的詞語,給出上述頂層數(shù)據(jù)流圖中的外部實(shí)體e1~e4的名稱。
【問題2】
使用說明中的詞語,給出上述0層數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)d1~d3的名稱。
【問題3】
上述0層數(shù)據(jù)流圖中缺少了4條數(shù)據(jù)流,根據(jù)說明及頂層數(shù)據(jù)流圖提供的信息,分別指出這4條數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/2457125411.html
2、 試題二
閱讀下列說明和圖,回答問題1至問題4,將解答填入對(duì)應(yīng)欄內(nèi)。
【說明】
某賓館擬開發(fā)一個(gè)賓館客房預(yù)訂子系統(tǒng),主要是針對(duì)客房的預(yù)訂和入住等情況進(jìn)行管理。
【需求分析結(jié)果】
1.員工信息主要包括:?jiǎn)T工號(hào)、姓名、出生年月、性別、部門、崗位、住址、聯(lián)系電話和密碼等信息。崗位有管理和服務(wù)兩種。崗位為“管理”的員工可以更改(添加、刪除和修改)員工表中本部門員工的崗位和密碼,要求將每一次更改前的信息保留;崗位為“服務(wù)”的員工只能修改員工表中本人的密碼,且負(fù)責(zé)多個(gè)客房的清理等工作。
2.部門信息主要包括:部門號(hào)、部門名稱、部門負(fù)責(zé)人、電話等信息。一個(gè)員工只能屬于一個(gè)部門,一個(gè)部門只有一位負(fù)責(zé)人。
3.客房信息包括:客房號(hào)、類型、價(jià)格、狀態(tài)等信息。其中類型是指單人間、三人間、普通標(biāo)準(zhǔn)間、豪華標(biāo)準(zhǔn)間等;狀態(tài)是指空閑、入住和維修。
4.客戶信息包括:身份證號(hào)、姓名、性別、單位和聯(lián)系電話。
5.客房預(yù)定情況包括:客房號(hào)、預(yù)定日期、預(yù)定入住日期、預(yù)定入住天數(shù)、身份證號(hào)等信息。一條預(yù)定信息必須且僅對(duì)應(yīng)一位客戶,但一位客戶可以有多條預(yù)定信息。
【概念模型設(shè)計(jì)】
根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系圖(不完整)如下圖所示。

【邏輯結(jié)構(gòu)設(shè)計(jì)】
邏輯結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)的部分關(guān)系模式(不完整)如下:
員工( 4 ,姓名,出生年月,性別,崗位,住址,聯(lián)系電話,密碼)
權(quán)限(崗位,操作權(quán)限)
部門(部門號(hào),部門名稱,部門負(fù)責(zé)人,電話)
客房( 5 ,類型,價(jià)格,狀態(tài),入住日期,入住時(shí)間,員工號(hào))
客戶( 6 ,姓名,性別,單位,聯(lián)系電話)
更改權(quán)限(員工號(hào), 7 ,密碼,更改日期,更改時(shí)間,管理員號(hào))
預(yù)定情況( 8 ,預(yù)定日期,預(yù)定入住日期,預(yù)定入住天數(shù))
【問題1】
根據(jù)問題描述,填寫上圖中(1)~(3)處聯(lián)系的類型。聯(lián)系類型分為一對(duì)一、一對(duì)多和多對(duì)多三種,分別使用1:1,1:n或1:*,m:n或*:*表示。
【問題2】
補(bǔ)充上圖中的聯(lián)系并指明其聯(lián)系類型。
【問題3】
根據(jù)需求分析結(jié)果和上圖,將邏輯結(jié)構(gòu)設(shè)計(jì)階段生成的關(guān)系模式中的空(4)~(8)補(bǔ)充完整。(注:一個(gè)空可能需要填多個(gè)屬性)
【問題4】
若去掉權(quán)限表,并將權(quán)限表中的操作權(quán)限屬性放在員工表中(仍保持管理和服務(wù)崗位的操作權(quán)限規(guī)定),則與原有設(shè)計(jì)相比有什么優(yōu)缺點(diǎn)(請(qǐng)從數(shù)據(jù)庫設(shè)計(jì)的角度進(jìn)行說明)。
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/2457223159.html
3、 試題三
閱讀下列說明和圖,回答問題1至問題4,將解答填入對(duì)應(yīng)欄內(nèi)。
【說明】
在線會(huì)議審稿系統(tǒng)(online reviewing system,ors)主要處理會(huì)議前期的投稿和審稿事務(wù),其功能描述如下:
1.用戶在初始使用系統(tǒng)時(shí),必須在系統(tǒng)中注冊(cè)(register)成為作者或?qū)徃迦恕?br />
2.作者登錄(login)后提交稿件和瀏覽稿件審閱結(jié)果。提交稿件必須在規(guī)定提交時(shí)間范圍內(nèi),其過程為先輸入標(biāo)題和摘要、選擇稿件所屬主題類型、選擇稿件所在位置 (存儲(chǔ)位置)。上述幾步若未完成,則重復(fù);若完成,則上傳稿件至數(shù)據(jù)庫中,系統(tǒng)發(fā)送通知。
3.審稿人登錄后可設(shè)置興趣領(lǐng)域、審閱稿件給出意見以及羅列錄用和(或)拒絕的稿件。
4.會(huì)議委員會(huì)主席是一個(gè)特殊審稿人,可以瀏覽提交的稿件、給審稿人分配稿件、羅列錄用和(或)拒絕的稿件以及關(guān)閉審稿過程。其中,關(guān)閉審稿過程須包括羅列錄用和(或)拒絕的稿件。
系統(tǒng)采用面向?qū)ο蠓椒ㄩ_發(fā),使用umi進(jìn)行建模。在建模用例圖時(shí),常用的方式是先識(shí)別參與者,然后確定參與者如何使用系統(tǒng)來確定用例,每個(gè)用例可以構(gòu)造一個(gè)活動(dòng)圖。參與者名稱、用例和活動(dòng)名稱分別參見以下各表。參與者列表

【問題1】
根據(jù)[說明]中的描述,使用參與者列表的英文名稱,給出ors用例圖中a1~a4所對(duì)應(yīng)的參與者。
【問題2】
根據(jù)[說明]中的描述,使用用例名稱列表中的英文名稱,給出ors用例圖中u1一 u3所對(duì)應(yīng)的用例。
【問題3】
根據(jù)[說明]中的描述,給出ors用例圖中 (1) 和 (2) 所對(duì)應(yīng)的關(guān)系。
【問題4】
根據(jù)[說明]中的描述,使用用例名稱列表和活動(dòng)名稱列表中的英文名稱,給出提交稿件過程的活動(dòng)圖中actionl~action4對(duì)應(yīng)的活動(dòng)。
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/245733042.html
4、 試題四
閱讀下列說明,回答問題1至問題3,將解答填入對(duì)應(yīng)欄內(nèi)。
【說明】
某餐廳供應(yīng)各種標(biāo)準(zhǔn)的營養(yǎng)套餐。假設(shè)菜單上共有n項(xiàng)食物m1,m2,…,mn,每項(xiàng)食物mi的營養(yǎng)價(jià)值為vi,價(jià)格為pi其中i=1,2,…,n,套餐中每項(xiàng)食物至多出現(xiàn)一次??腿顺P枰粋€(gè)算法來求解總價(jià)格不超過m的營養(yǎng)價(jià)值最大的套餐。
【問題1】
下面是用動(dòng)態(tài)規(guī)劃策略求解該問題的偽代碼,請(qǐng)?zhí)畛淦渲械目杖?1)、(2)和(3)處。
偽代碼中的主要變量說明如下。
n:總的食物項(xiàng)數(shù);
v:營養(yǎng)價(jià)值數(shù)組,下標(biāo)從1到n,對(duì)應(yīng)第1到第n項(xiàng)食物的營養(yǎng)價(jià)值;
p:價(jià)格數(shù)組,下標(biāo)從1到n,對(duì)應(yīng)第1到第n項(xiàng)食物的價(jià)格;
m:總價(jià)格標(biāo)準(zhǔn),即套餐的價(jià)格不超過m;
x:解向量(數(shù)組),下標(biāo)從1到n,其元素值為0或1,其中元素值為0表示對(duì)應(yīng)的食物不出現(xiàn)在套餐中,元素值為1表示對(duì)應(yīng)的食物出現(xiàn)在套餐中;
nv:n+1行m+1列的二維數(shù)組,其中行和列的下標(biāo)均從0開始,nv[i][j]表示由前i項(xiàng)食物組合且價(jià)格不超過j的套餐的最大營養(yǎng)價(jià)值。問題最終要求的套餐的最大營養(yǎng)價(jià)值為nv[n][m]。
偽代碼如下:
maxnutrientvalue(n,v,p,m,x)
1 for i=0 to n
2 nv[i][0] = 0
3 for j=1 to m
4 nv[0][j]=0
5 for i=1 to n
6 for j=1 to m
7 if j<p[i] //若食物mi不能加入到套餐中
8 nv[i][j] = nv[i-1][j]
9 else if (1)
10 nv[i][j]= nv[i-1][j]
11 else
12 nv[i][j]= nv[i-1][j-p[i]] + v[i]
13 j = m
14 for i=n downto 1
15 if (2)
16 x[i] = 0
17 else
18 x[i] = 1
19 (3)
20 return x and nv[n][m]
【問題2】
現(xiàn)有5項(xiàng)食物,每項(xiàng)食物的營養(yǎng)價(jià)值和價(jià)格如下表所示。

食物營養(yǎng)價(jià)值及價(jià)格表
若要求總價(jià)格不超過100的營養(yǎng)價(jià)值最大的套餐,則套餐應(yīng)包含的食物有 (4) (用食物項(xiàng)的編碼表示),對(duì)應(yīng)的最大營養(yǎng)價(jià)值為 (5) 。
【問題3】
問題1中偽代碼的時(shí)間復(fù)雜度為 (6) (用o符號(hào)表示)。
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/2457421374.html
5、 試題五
閱讀下列說明和c函數(shù),將應(yīng)填入 (n) 處的字句寫在對(duì)應(yīng)欄內(nèi)。
【說明】
已知集合a和b的元素分別用不含頭結(jié)點(diǎn)的單鏈表存儲(chǔ),函數(shù)difference()用于求解集合a與b的差集,并將結(jié)果保存在集合a的單鏈表中。例如,若集合a={5,10, 20,15,25,30},集合b={5,15,35,25},如圖(a)所示,運(yùn)算完成后的結(jié)果如圖(b)所示。

鏈表結(jié)點(diǎn)的結(jié)構(gòu)類型定義如下:
typedef struct node{
elemtype elem;
struct node *next;
}nodetype;
【c函數(shù)】
void difference(nodetype **la,nodetype *lb.
{
nodetype *pa, *pb, *pre, *q;
pre=null;
(1) ;
while (pa) {
pb=lb;
while( (2) )
pb=pb->next;
if( (3) ) {
if(!pre)
*la= (4) ;
else
(5) =pa->next;
q = pa;
pa=pa->next;
free(q);
}
else {
(6) ;
pa=pa->next;
}
}
}
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/2457526064.html
6、 試題六
閱讀下列說明和c++代碼,將應(yīng)填入 (n) 處的字句寫在對(duì)應(yīng)欄內(nèi)。
【說明】
已知某類庫開發(fā)商提供了一套類庫,類庫中定義了application類和document類,它們之間的關(guān)系如下圖所示。其中,application類表示應(yīng)用程序自身,而document類則表示應(yīng)用程序打開的文檔。application類負(fù)責(zé)打開一個(gè)已有的以外部形式存儲(chǔ)的文檔,如一個(gè)文件,一旦從該文件中讀出信息后,它就由一個(gè)document對(duì)象表示。
當(dāng)開發(fā)一個(gè)具體的應(yīng)用程序時(shí),開發(fā)者需要分別創(chuàng)建自己的application和document子類,例如上圖中的類myapplication和類mydocument,并分別實(shí)現(xiàn)application和 document類中的某些方法。
已知application類中的opendocument方法采用了模板方法(template method)設(shè)計(jì)模式,該方法定義了打開文檔的每一個(gè)主要步驟,如下所示:

1.首先檢查文檔是否能夠被打開,若不能打開,則給出出錯(cuò)信息并返回;
2.創(chuàng)建文檔對(duì)象;
3.通過文檔對(duì)象打開文檔;
4.通過文檔對(duì)象讀取文檔信息;
5.將文檔對(duì)象加入到application的文檔對(duì)象集合中。
【c++代碼】
#include<iostream>
#include<vector>
using namespace std;
class document{
public:
void save(){/*存儲(chǔ)文檔數(shù)據(jù),此處代碼省略*/)
void open(string docname){ /*打開文檔,此處代碼省略*/)
void close(){ /*關(guān)閉文檔,此處代碼省略*/)
virtual void read(string docname) =0;
};
class appplication{
private:
vector< (1) > docs; /*文檔對(duì)象集合*/
public:
bool canopendocument(string docname){
/*判斷是否可以打開指定文檔,返回真值時(shí)表示可以打開,
返回假值表示不可打開,此處代碼省略*/
}
void adddocument(document * adocument){
/*將文檔對(duì)象添加到文檔對(duì)象集合中*/
docs.push_back( (2) );
}
virtual document * docreatedocument()=0;/*創(chuàng)建一個(gè)文檔對(duì)象*/
void opendocument(string docname){/*打開文檔*/
if ( (3) ){
cout<<“文檔無法打開!”<<endl;
return;
}
(4) adoc= (5) ;
(6) ;
(7) ;
(8) ;
}
};
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/2457622134.html
7、 試題七
閱讀下列說明和java代碼,將應(yīng)填入 (n) 處的字句寫在對(duì)應(yīng)欄內(nèi)。
【說明】
已知某類庫開發(fā)商捉供了一套類庫,類庫中定義了application類和document類,它們之間的關(guān)系如下圖所示,其中,application類表示應(yīng)用程序自身,而document類則表示應(yīng)用程序打開的文檔。application類負(fù)責(zé)打開一個(gè)已有的以外部形式存儲(chǔ)的文檔,如一個(gè)文件,一旦從該文件中讀出信息后,它就由一個(gè)document對(duì)象表示。

當(dāng)開發(fā)一個(gè)具體的應(yīng)用程序時(shí),開發(fā)者需要分別創(chuàng)建自己的application和document子類,例如上圖中的類myapplication和類mydocument,并分別實(shí)現(xiàn)application和 document類中的某些方法。
已知application類中的opendocument方法采用了模板方法(template method)設(shè)計(jì)模式,該方法定義了打開文檔的每一個(gè)主要步驟,如下所示:
1.首先檢查文檔是否能夠被打開,若不能打開,則給出出錯(cuò)信息并返回;
2.創(chuàng)建文檔對(duì)象;
3.通過文檔對(duì)象打開文檔;
4.通過文檔對(duì)象讀取文檔信息;
5.將文檔對(duì)象加入到application的文檔對(duì)象集合中。
【java代碼】
abstract class document{
public void save(){/*存儲(chǔ)文檔數(shù)據(jù),此處代碼省略*/ )
public void open(string docname){ /*打開文檔,此處代碼省略*/)
public void close(){ /*關(guān)閉文檔,此處代碼省略*/)
public abstract void read(string docname);
};
abstract class appplication{
private vector< (1) > docs; /*文檔對(duì)象集合*/
public boolean canopendocument(string docname){
/*判斷是否可以打開指定文檔,返回真值時(shí)表示可以打開,
返回假值表示不可打開,此處代碼省略*/
}
public void adddocument(document adocument){
/*將文檔對(duì)象添加到文檔對(duì)象集合中*/
docs.a(chǎn)dd( (2) );
}
public abstract document docreatedocument();/*創(chuàng)建一個(gè)文檔對(duì)象*/
public void opendocument(string docname){/*打開文檔*/
if ( (3) ) {
system.out.println(“文檔無法打開!”);
return;
}
(4) adoc= (5) ;
(6) ;
(7) ;
(8) ;
}
};
信管網(wǎng)參考答案:
查看解析:
m.xiexiliangjiufa.com/st/2457710715.html