版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2016年下半年軟件設(shè)計師考試下午真題(參考答案)試題部分1.閱讀下列說明,回答問題1至問題4,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】某證券交易所為了方便提供證券交易服務(wù),欲開發(fā)一證券交易平臺,該平臺的主要功能如下:(1)開戶。根據(jù)客戶服務(wù)助理提交的開戶信息,進(jìn)行開戶,并將客戶信息存入客戶記錄中,賬戶信息(余額等)存入賬戶記錄中;(2)存款??蛻艨梢韵蚱滟~戶中存款,根據(jù)存款金額修改賬戶余額;(3)取款??蛻艨梢詮钠滟~戶中取款,根據(jù)取款金額修改賬戶余額;(4)證券交易??蛻艉徒?jīng)紀(jì)人均可以進(jìn)行證券交易(客戶通過在線方式,經(jīng)紀(jì)人通過電話),將交易信息存入交易記錄中;(5)檢查交易。平臺從交易記錄中讀取交易信息,將交易明細(xì)返回給客戶?,F(xiàn)采用結(jié)構(gòu)化方法對該證券交易平臺進(jìn)行分析與設(shè)計,獲得如圖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ù)說明和圖中的術(shù)語,補充圖1-2中缺失的數(shù)據(jù)流及其起點和終點?!締栴}4】(5分)實際的證券交易通常是在證券交易中心完成的,因此,該平臺的“證券交易”功能需將交易信息傳遞給證券交易中心。針對這個功能需求,需要對圖1-1和圖1-2進(jìn)行哪些修改,請用200字以內(nèi)的文字加以說明。2.閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。【說明】某賓館為了有效地管理客房資源,滿足不同客戶需求,擬構(gòu)建一套賓館信息管理系統(tǒng),以方便賓館管理及客房預(yù)訂等業(yè)務(wù)活動?!拘枨蠓治鼋Y(jié)果】該系統(tǒng)的部分功能及初步需求分析的結(jié)果如下:(1)賓館有多個部門,部門信息包括部門號、部門名稱、電話、經(jīng)理。每個部門可以有多名員工,每名員工只屬于一個部門;每個部門只有一名經(jīng)理,負(fù)責(zé)管理本部門。(2)員工信息包括員工號、姓名、崗位、電話、工資,其中,員工號唯一標(biāo)識員工關(guān)系中【問題1】(6分)根據(jù)說明中的描述,使用說明中的術(shù)語,給出圖3-2中的S1~S4所對應(yīng)的狀態(tài)名?!締栴}2】(4分)根據(jù)說明中的描述,使用說明中的術(shù)語,給出圖3-2中的E1~E4所對應(yīng)的事件名【問題3】(5分)根據(jù)說明中的描述,使用說明中的術(shù)語,給出圖3-3中C1~C5所對應(yīng)的類名。4.閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】模式匹配是指給定主串t和子串s,在主串t中尋找子串s的過程,其中s稱為模式。如果匹配成功,返回s在t中的位置,否則返回-1。KMP算法用next數(shù)組對匹配過程進(jìn)行了優(yōu)化。KMP算法的偽代碼描述如下:1.在串t和串s中,分別設(shè)比較的起始下標(biāo)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ù)給出?!綜代碼】
(1)常量和變量說明
t,s:長度為憫鉑Is的字符串
next:next數(shù)組,長度為Is
(2)C程序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*求next[]的值*/
voidget_next(int*next,char*s,intIs)
{
inti=0,j=-1;
next[0]=-1;/*初始化next[0]*/
while(i<ls){/*還有字符*/
if(j==-1lls[i]==s[j]){/*匹配*/
j++;
i++;
if(s[i]==s[j])
next[i]=next[j];
else
Next[i]=j;
}
else
j=next[j];
}
}
intkmp(int*next,char*t,char*s,intlt,intIs)
{
Inti=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算法的時間復(fù)雜度為(5)(主串和子串的長度分別為It和Is,用O符號表示)。
【問題3】(5分)
根據(jù)C代碼,字符串“BBABBCAC”的next數(shù)組元素值為(6)(直接寫素值,之間用逗號隔開)。若主串為“AABBCBBABBCACCD”,子串為“BBABBCAC”,則函數(shù)Kmp的返回值是(7)。5.閱讀下列說明和C++-代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】某發(fā)票(lnvoice)由抬頭(Head)部分、正文部分和腳注(Foot)部分構(gòu)成?,F(xiàn)采用裝飾(Decorator)模式實現(xiàn)打印發(fā)票的功能,得到如圖5-1所示的類圖?!綜++代碼】#include<iostream>usingnamespacestd;classInvoice{public:(1){cout<<"Thisisthecontentoftheinvoice!"<<endl;}};classDecorator:publicInvoice{Invoice*ticket;public:Decorator(lnvoice*t){ticket=t;}voidprintInvoice(){if(ticket!=NULL)(2);}};classHeadDecorator:publicDecorator{public:HeadDecorator(lnvoice*t):Decorator(t){}voidprintInvoice(){cout<<"Thisistheheaderoftheinvoice!"<<endl;(3);}};classFootDecorator:publicDecorator{public:FootDecorator(Invoice*t):Decorator(t){}voidprintlnvoice(){(4);cout<<"Thisisthefootnoteoftheinvoice!"<<endl;}};intmain(void){Invoicet;FootDecoratorf(&t);HeadDecoratorh(&f);h.printInvoice();cout<<”------------------------”<<endl;FootDecoratora(NULL);HeadDecoratorb((5));b.printInvoice();return0;}程序的輸出結(jié)果為:Thisistheheaderoftheinvoice!Thisisthecontentoftheinvoice!Thisisthefootnoteoftheinvoice!----------------------------Thisistheheaderoftheinvoice!Thisisthefootnoteoftheinvoice!6.閱讀下列說明和java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】某發(fā)票(lnvoice)由抬頭(Head)部分、正文部分和腳注(Foot)部分構(gòu)成?,F(xiàn)采用裝飾(Decorator)模式實現(xiàn)打印發(fā)票的功能,得到如圖6-1所示的類圖?!緅ava代碼】classinvoice{publicvoidprintInvoice(){System.out.println("Thisisthecontentoftheinvoice!");}}classDecoratorextendsInvoice{protectedInvoiceticket;publicDecorator(lnvoicet){ticket=t;}publicvoidprintInvoice(){if(ticket!=null)(1);}}classHeadDecoratorextendsDecorator{publicHeadDecorator(lnvoicet){super(t);}publicvoidprintInvoice(){Systent.out.println("Thisistheheaderoftheinvoice!");(2);}}classFootDecoratorextendsDecorator{publicFootDecorator(Invoicet){super(t);}publicvoidprintlnvoice(){(3);Systent.out.println("Thisisthefootnoteoftheinvoice!");}}Classtest{publicstaticvoidmain(String[]args){Invoicet=newInvioce();Invoiceticket;ticket=(4);ticket.printInvoice();Systent.out.println(“------------------“);ticket=(5);ticket.printInvoice();}}程序的輸出結(jié)果為:Thisistheheaderoftheinvoice!Thisisthecontentoftheinvoice!Thisisthefootnoteoftheinvoice!----------------------------Thisistheheaderoftheinvoice!Thisisthefootnoteoftheinvoice!參考答案1.參考答案:問題1E1:客戶服務(wù)助理,E2:客戶,E3:經(jīng)紀(jì)人。問題2D1:客戶記錄,D2:賬戶記錄,D3:交易記錄。問題3數(shù)據(jù)流名稱:修改賬戶余額,起點:存款,終點:D2。數(shù)據(jù)流名稱:修改賬戶余額,起點:取款,終點:D2。數(shù)據(jù)流名稱:交易信息存入交易記錄(在線),起點:證券交易(在線),終點:D3。數(shù)據(jù)流名稱:交易信息存入交易記錄(電話),起點:證券交易(電話),終點:D3。問題4圖1增加外部實體“證券交易中心”,增加“證券交易平臺”到“證券交易中心”,數(shù)據(jù)流:交易信息圖2增加外部實體“證券交易中心”,增加“證券交易(在線)“到“證券交易中心”,數(shù)據(jù)流:交易信息圖2增加“證券交易(電話)“到“證券交易中心”,數(shù)據(jù)流:交易信息試題分析:本題問題1要求識別E1-E3具體為哪個外部實體,通讀試題說明,可以了解到適合充當(dāng)外部實體的包括:客戶、客戶服務(wù)助理、經(jīng)記人。具體的對應(yīng)關(guān)系,可以通過將頂層圖與題目說明進(jìn)行匹配得知。如:從圖中可看出E1會向交易平臺發(fā)出數(shù)據(jù)流“開戶信息”;而從試題說明“根據(jù)客戶服務(wù)助理提交的開戶信息,進(jìn)行開戶,并將客戶信息存入客戶記錄中,賬戶信息存入賬戶記錄中”可以看出,E1對應(yīng)是客戶服務(wù)助理。E2、E3同理可得。本題問題2要求識別存儲,解決這類問題,以圖的分析為主,配合說明給存儲命名,因為存儲相關(guān)的數(shù)據(jù)流一般展現(xiàn)了這個存儲中到底存了些什么信息,如從圖中可以看到D1中有客戶信息,而D2中有賬戶信息,題目說明中又有“根據(jù)客戶服務(wù)助理提交的開戶信息,進(jìn)行開戶,并將客戶信息存入客戶記錄中,賬戶信息存入賬戶記錄中?!弊匀籇1應(yīng)為客戶記錄,D2應(yīng)為賬戶記錄。同理,D3為交易記錄。問題3分析:缺失數(shù)據(jù)流1名稱:修改賬戶余額,起點:存款,終點:D2。理由:從試題說明“客戶可以向其賬戶中存款,根據(jù)存款金額修改賬戶余額”可以看出,這個功能有操作“根據(jù)存款金額修改賬戶余額”。據(jù)此可以了解到從該功能應(yīng)有數(shù)據(jù)流“存款”至D2,而0層圖沒有。缺失數(shù)據(jù)流2:名稱:修改賬戶余額,起點:取款,終點:D2。理由:從試題說明“客戶可以從其賬戶中取款,根據(jù)取款金額修改賬戶余額”可以看出,這個功能有操作“根據(jù)取款金額修改賬戶余額”。據(jù)此可以了解到從該功能應(yīng)有數(shù)據(jù)流“取款”至D2,而0層圖沒有。缺失數(shù)據(jù)流3-4名稱:交易信息存入交易記錄,起點:證券交易(分為在線與電話),終點:D3。理由:從試題說明“客戶和經(jīng)紀(jì)人均可以進(jìn)行證券交易,將交易信息存入交易記錄中”可以看出,這個功能有操作“將交易信息存入交易記錄中”。據(jù)此可以了解到從該功能應(yīng)有數(shù)據(jù)流“證券交易”至D3,而0層圖沒有。fusional2016-11-18存貯的時候,客戶記錄我寫得客戶記錄表,賬戶記錄,我寫得賬戶記錄表,對不對MegumiIsh2016-11-20沒有影響的2.參考答案:問題1:1、經(jīng)理與部門之間存在1:1的聯(lián)系。2、部門與員工之間存在1:n的聯(lián)系。3、客戶與預(yù)訂申請之間存在1:n的聯(lián)系。4、業(yè)務(wù)員、客房、預(yù)訂申請之間存在1:m:n的聯(lián)系。問題2:(a)部門號。(b)客戶號、單位名稱(c)申請?zhí)?、客戶號。(d)身份證號、入住時間?!邦A(yù)訂申請”關(guān)系模式中的主鍵是申請?zhí)?,外鍵是申請?zhí)?、客戶號。“安排”關(guān)系模式中的主鍵是:(客房號、身份證號、入住時間),外鍵是:申請?zhí)?、客房號、業(yè)務(wù)員。問題3:根據(jù)試題中的描述,客房信息中客房號是唯一標(biāo)識客房關(guān)系的一個元組,即可以作為唯一的主鍵。在客房關(guān)系模式中,不存在其他部分依賴關(guān)系,但客戶號->類型->收費標(biāo)準(zhǔn),存在傳遞函數(shù)依賴,所以冗余,添加異常,修改異常,刪除異常均存在。試題分析:fusional2016-11-17寫員工關(guān)系模式時,應(yīng)該填部門號吧,應(yīng)為部門號才是主鍵,寫客戶關(guān)系模式時,不需要寫申請?zhí)柡涂头刻柊?,?yīng)為客戶可以單獨存在,還有最后最后一問,不同的客房類型具有不同的收費標(biāo)準(zhǔn),存在著數(shù)據(jù)曾與,及修改不一致的問題MegumiIsh2016-11-18答案已經(jīng)做了修改fusional2016-11-20老師,我寫預(yù)定申請關(guān)系模式時,我寫的是客戶號和申請?zhí)柡蜆I(yè)務(wù)員號,你們的答案是客戶號和申請?zhí)?。我主鍵寫的是申請?zhí)枺怄I是客戶號和業(yè)務(wù)員號。因為預(yù)定申請需要客戶申請,業(yè)務(wù)員處理。我記得哪年的真題和這個一樣的,不知道我的想法對不?flycity2016-11-25預(yù)定的環(huán)節(jié)沒有強調(diào)需要記錄業(yè)務(wù)員信息,所以不需要寫業(yè)務(wù)員號。在現(xiàn)實的設(shè)計中,根據(jù)需要,可寫業(yè)務(wù)員號,而在考試中,一般沒有強調(diào)需要這個信息,我們就不寫。fusional2016-11-29老師,那不是這個我得不到分了哦?flycity2016-12-02這個得看評分時嚴(yán)格程度了,一般來說,評分時,看到合理答案但非標(biāo)準(zhǔn)答案,會組織閱卷老師進(jìn)行研討,研討之后若大家覺得這種解決方案也可行,會把這種答法納入給分的范疇。3.參考答案:問題1:S1:空閑,S2:準(zhǔn)備服務(wù),S3:飲料出售,S4:可購買。問題2:E1:飲料數(shù)量不足,E2:硬幣數(shù)量足夠,E3:推出飲料,E4:返回找零。問題3:C1:自動售貨機(jī),C2:硬幣器,C3:飲料儲存?zhèn)},C4:硬幣,C5:飲料。試題分析:本題問題1系統(tǒng)中的狀態(tài)圖,是對狀態(tài)轉(zhuǎn)換的圖形化表達(dá)。從題目的說明部分可知,在狀態(tài)轉(zhuǎn)換過程中,涉及到的狀態(tài)一共有四種:空閑、準(zhǔn)備服務(wù)、可購買、飲料出售。從狀態(tài)圖涉及的轉(zhuǎn)換可知S1~S4分別為:空閑、準(zhǔn)備服務(wù)、飲料出售、可購買。關(guān)于狀態(tài)轉(zhuǎn)換的分析如下:(1)清空硬幣器后,自動售貨機(jī)等待下一次交易,進(jìn)入空閑狀態(tài)。此時可任意的進(jìn)行飲料選擇數(shù)量,一旦顧客投入硬幣,自動售貨機(jī)便進(jìn)入準(zhǔn)備服務(wù)狀態(tài)。(2)當(dāng)自動售貨機(jī)進(jìn)行準(zhǔn)備服務(wù)狀態(tài)時,開始計算硬幣價值,如果硬幣不夠則提示顧客繼續(xù)投入硬幣。如果硬幣足夠,則進(jìn)入可購買狀態(tài)。(3)進(jìn)行可購買狀態(tài)后,自動售貨機(jī)判斷飲料數(shù)量。如果數(shù)量不夠,則返回準(zhǔn)備服務(wù)狀態(tài)提示用戶重新選擇飲料。如果數(shù)量足夠,則推出飲料進(jìn)入飲料出售狀態(tài)。(4)進(jìn)行飲料出售狀態(tài)后,自動售貨機(jī)計算找零,并返回進(jìn)入空閑狀態(tài)等待下一次交易。本題問題2主要是分析四種狀態(tài)中的跳轉(zhuǎn)事件。根據(jù)狀態(tài)圖和試題主要事件流的描述可以推出事件E1是飲料數(shù)量不足,事件E2是硬幣數(shù)量足夠,事件E3是推出飲料,事件E4是返回找零。本題問題3根據(jù)主要事件流的描述,可以推斷出C1~C5的類名分別對應(yīng)自動售貨機(jī)、硬幣器、飲料儲存?zhèn)}、硬幣、飲料。4.參考答案:問題1:(1):j<ls;(2):t[i]==s[j];(3):get_next(next,s,ls);j=next[j];(4):i+1-ls;問題2:問題3:(6):[-1,-1,1,-1,-1,2,0,0],(7)6。試題分析:本題問題1根據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026四川省國投資產(chǎn)托管有限責(zé)任公司招聘1人備考題庫含答案詳解(新)
- 佛山地鐵運營補虧制度
- 賓館運營管理制度
- 地產(chǎn)運營公司管理制度
- 房產(chǎn)運營公司制度
- 旅行社運營酒店管理制度
- 運營后勤管理制度
- 沙石公司運營管理制度
- 奶茶店店面運營管理制度
- 商場運營流程制度
- 露天礦物開采輔助工技術(shù)考核試卷及答案
- 公路膨脹土路基設(shè)計與施工技術(shù)規(guī)范(JTGT333107-2024)
- 2025版廉政知識測試題庫(含答案)
- 磁力泵無泄漏市場前景磁鐵試題(附答案)
- 2025年藥品效期管理制度測試卷(附答案)
- 壓力開關(guān)校準(zhǔn)培訓(xùn)課件
- 紡織車間設(shè)計方案(3篇)
- 超聲在急診科的臨床應(yīng)用
- 幼兒園食堂工作人員培訓(xùn)計劃表
- 文學(xué)常識1000題含答案
- 2025年湖南省中考語文試卷真題及答案詳解(精校打印版)
評論
0/150
提交評論