第
1題: 閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應欄內。 
【說明】 
某證券交易所為了方便提供證券交易服務,欲開發(fā)一證券交易平臺,該平臺的主要功能如下:
(1)開戶。根據(jù)客戶服務助理提交的開戶信息,進行開戶,并將客戶信息存入客戶記錄中,賬戶信息(余額等)存入賬戶記錄中; 
(2)存款??蛻艨梢韵蚱滟~戶中存款,根據(jù)存款金額修改賬戶余額; 
(3)取款??蛻艨梢詮钠滟~戶中取款,根據(jù)取款金額修改賬戶余額; 
(4)證券交易??蛻艉徒?jīng)紀人均可以進行證券交易(客戶通過在線方式,經(jīng)紀人通過電話),將交易信息存入交易記錄中; 
(5)檢查交易。平臺從交易記錄中讀取交易信息,將交易明細返回給客戶。 現(xiàn)采用結構化方法對該證券交易平臺進行分析與設計,獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。
 
【問題1】(3分) 
使用說明中的詞語,給出圖1-1中的實體E1-E3的名稱。 
【問題2】(3分) 
使用說明中的詞語,給出圖1-2中的數(shù)據(jù)存儲D1-D3的名稱。 
【問題3】(4分) 
根據(jù)說明和圖中的術語,補充圖1-2中缺失的數(shù)據(jù)流及其起點和終點。 
【問題4】(5分) 
實際的證券交易通常是在證券交易中心完成的,因此,該平臺的“證券交易”功能需將交易信息傳遞給證券交易中心。針對這個功能需求,需要對圖1-1和圖1-2進行哪些修改,請用200字以內的文字加以說明。
答案解析與討論:
www.xomuzic.com/st/3816924632.html第
2題: 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。 
【說明】 
某賓館為了有效地管理客房資源,滿足不同客戶需求,擬構建一套賓館信息管理系統(tǒng),以方便賓館管理及客房預訂等業(yè)務活動。 
【需求分析結果】 
該系統(tǒng)的部分功能及初步需求分析的結果如下: 
(1)賓館有多個部門,部門信息包括部門號、部門名稱、電話、經(jīng)理。每個部門可以有多名員工,每名員工只屬于一個部門;每個部門只有一名經(jīng)理,負責管理本部門。 
(2)員工信息包括員工號、姓名、崗位、電話、工資,其中,員工號唯一標識員工關系中
的一個元組,崗位有經(jīng)理、業(yè)務員。 
(3)客房信息包括客房號(如1301、1302等)、客房類型、收費標準、入住狀態(tài)(已入?。慈胱。?,其中客房號唯一標識客房關系中的一個元組,不同客房類型具有不同的收費標準。 
(4)客戶信息包括客戶號、單位名稱、聯(lián)系人、聯(lián)系電話、聯(lián)系地址,其中客戶號唯一標識客戶關系中的一個元組。 
(5)客戶預訂客房時,需要填寫預訂申請。預訂申請信息包括申請?zhí)?、客戶號、入住時間、入住天數(shù)、客房類型、客房數(shù)量,其中,一個申請?zhí)栁ㄒ粯俗R預訂申請中的一個元組;一位客戶可以有多個預訂申請,但一個預訂申請對應唯一的一位客戶。 
(6)當客戶入住時,業(yè)務員根據(jù)客戶的預訂申請負責安排入住客房事宜。安排信息包括客房號、姓名、性別、身份證號、入住時間、天數(shù)、電話,其中客房號、身份證號和入住時間唯一標識一次安排。一名業(yè)務員可以安排多個預訂申請,一個預訂申請只由一名業(yè)務員安排,而且可安排多間同類型的客房。 
【概念模型設計】 
根據(jù)需求階段收集的信息,設計的實體聯(lián)系圖如圖2-1所示。
 【關系模式設計】 
部門(部門號,部門名稱,經(jīng)理,電話) 
員工(員工號,    ( a   ),姓名,崗位,電話,工資) 
客戶(  ( b )  ,聯(lián)系人,聯(lián)系電話,聯(lián)系地址) 
客房(客房號,客房類型,收費標準,入住狀態(tài)) 
預訂申請(  ( c)    ,入住時間,天數(shù),客房類型,客房數(shù)量) 
安排(申請?zhí)?,客房號,姓名,性別,   (c)     ,天數(shù),電話,業(yè)務員) 
【問題1】(4分) 
根據(jù)問題描述,補充四個聯(lián)系,完善圖2-1,的實體聯(lián)系圖。聯(lián)系名可用聯(lián)系1、聯(lián)系2、聯(lián)系3和聯(lián)系4代替,聯(lián)系的類型為1:1、1:n和m:n (或1:1,和1:*和*:*)。 
【問題2】(8分) 
根據(jù)題意,將關系模式中的空(a)~(d)補充完整,并填入答題紙對應的位置上。  (2)給出“預訂申請”和“安排”關系模式的主鍵和外鍵。 
【問題3】(3分) 
【關系模式設計】中的“客房”關系模式是否存在規(guī)范性問題,請用100字以內文字解釋你的觀點(若存在問題,應說明如何修改“客房”關系模式)。
答案解析與討論:
www.xomuzic.com/st/3817019868.html第
4題: 閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。 
【說明】 
模式匹配是指給定主串t和子串s,在主串t中尋找子串s的過程,其中s稱為模式。如果匹配成功,返回s在t中的位置,否則返回-1 。 
KMP算法用next數(shù)組對匹配過程進行了優(yōu)化。KMP算法的偽代碼描述如下: 
1.在串t和串s中,分別設比較的起始下標i=j=0。 
2.如果串t和串s都還有字符,則循環(huán)執(zhí)行下列操作: 
(1)如果j=-l或者t[i]=s[j],則將i和j分別加1,繼續(xù)比較t和s的下一個字符; 
(2)否則,將j向右滑動到next[j]的位置,即j =next[j]。 
3.如果s中所有字符均已比較完畢,則返回匹配的起始位置(從1開始);否則返回-1。其中,next數(shù)組根據(jù)子串s求解。求解next數(shù)組的代碼已由get_next函數(shù)給出。 
【C代碼】
(1)常量和變量說明 
t,s:長度為憫鉑Is的字符串 
next:next數(shù)組,長度為Is 
(2)C程序 
#include 
 
#include 
#include  
/*求next[]的值*/ 
void get_next( int *next, char *s, int Is)  { 
int i=0,j=-1; 
next[0]=-1;/*初始化next[0]*/ 
while(i < ls){/*還有字符*/ 
if(j==-1l ls[i]==s[j]){/*匹配*/ 
j++; 
i++; 
if( s[i]==s[j]) 
next[i] = next[j]; 
else 
Next[i] = j; 
}
else 
j = next[j]; 
}
} 
int kmp( int *next, char *t ,char *s, int lt, int Is ) 
{ 
Int i= 0,j =0 
while (i < lt && (1) ) { 
if( j==-1 ||     (2)  )  { 
i ++ 
j ++ 
} else 
(3) 
} 
if (j >= ls) 
return     (4)    else 
return -1; 
} 
【問題1】(8分) 
根據(jù)題干說明,填充C代碼中的空(1)~(4)。
【問題2】(2分) 
根據(jù)題干說明和C代碼,分析出kmp算法的時間復雜度為(5)(主串和子串的長度分別為It和Is,用O符號表示)。 
【問題3】(5分) 
根據(jù)C代碼,字符串“BBABBCAC”的next數(shù)組元素值為(6)(直接寫素值,之間用逗號隔開)。若主串為“AABBCBBABBCACCD”,子串為“BBABBCAC”,則函數(shù)Kmp的返回值是(7)。
答案解析與討論:
www.xomuzic.com/st/3817229374.html第
5題: 
閱讀下列說明和C++代碼,將應填入  (n)  處的字句寫在答題紙的對應欄內。 
【說明】 
某發(fā)票(lnvoice)由抬頭(Head)部分、正文部分和腳注(Foot)部分構成?,F(xiàn)采用裝飾( Decorator)模式實現(xiàn)打印發(fā)票的功能,得到如圖5-1所示的類圖。
 
【C++代碼】 
#include
using namespace std; 
class Invoice{ public: 
(1)    { 
cout<<"This is the content of the invoice!"< } 
}; 
class Decorator : public Invoice { 
Invoice *ticket; 
public: 
Decorator(lnvoice *t)      { ticket = t; } 
void printInvoice(){ 
if(ticket != NULL)  (2); 
}
}; 
class HeadDecorator : public Decorator{
public: 
HeadDecorator(lnvoice*t): Decorator(t) { } 
void printInvoice() { 
cout<< "This is the header of the invoice! "<< endl; 
(3)      ; 
} 
}; 
class FootDecorator : public Decorator{ 
public: 
FootDecorator(Invoice *t): Decorator(t) { } 
void printlnvoice(){ 
(4)   ; 
cout<< "This is the footnote of the invoice!"<< endl; 
} 
}; 
int main(void) { 
Invoice t; 
FootDecorator f(&t); 
HeadDecorator h(&f); 
h.printInvoice(); 
cout<<”------------------------”< FootDecorator a(NULL) 
HeadDecorator b(     (5)    ); 
b.printInvoice(); 
return 0; 
} 
程序的輸出結果為: 
This is the header of the invoice! 
This is the content of the invoice! 
This is the footnote of the invoice! 
---------------------------- 
This is the header of the invoice! 
This is the footnote of the invoice!
答案解析與討論:
www.xomuzic.com/st/3817318035.html第
6題: 閱讀下列說明和java代碼,將應填入  (n)  處的字句寫在答題紙的對應欄內。 
【說明】 
某發(fā)票(lnvoice)由抬頭(Head)部分、正文部分和腳注(Foot)部分構成。現(xiàn)采用裝飾(Decorator)模式實現(xiàn)打印發(fā)票的功能,得到如圖6-1所示的類圖。

【java代碼】 class invoice{ 
public void printInvoice(){ 
System.out.println ( "This is the content of the invoice!"); 
} 
} 
class Decorator extends Invoice { 
protected Invoice ticket; 
public Decorator(lnvoice t){ 
ticket = t; } 
public void printInvoice(){ 
if(ticket != null) 
(1)	; 
} 
} 
class HeadDecorator extends Decorator{ 
public HeadDecorator(lnvoice t){ 
super(t); 
} 
public void printInvoice (){ 
Systent.out.println( "This is the header of the invoice! "); 
(2)	; 
} 
} 
class FootDecorator extends Decorator { 
public FootDecorator(Invoice t){ 
super(t); 
} 
public void printlnvoice(){
( 3)        ; 
Systent.out.println( "This is the footnote of the invoice! "); 
} 
} 
Class test { 
public static void main(String[] args){ 
Invoice t =new Invioce(); 
Invoice ticket; 
ticket=     (4)       ; 
ticket.printInvoice(); 
Systent.out.println(“------------------“); 
ticket=       (5)       ; 
ticket.printInvoice();    } } 
程序的輸出結果為: 
This is the header of the invoice! 
This is the content of the invoice! 
This is the footnote of the invoice! 
---------------------------- 
This is the header of the invoice! 
This is the footnote of the invoice!
答案解析與討論:
www.xomuzic.com/st/381743190.html