中級軟件設(shè)計師下午試題-21_第1頁
中級軟件設(shè)計師下午試題-21_第2頁
中級軟件設(shè)計師下午試題-21_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、中級軟件設(shè)計師下午試題-21(總分:80.00,做題時間:90分鐘)、試題一(總題數(shù):1,分數(shù):15.00)1. r說明】A公司決定開發(fā)一套公共交通自動售票系統(tǒng),系統(tǒng)要求如下所述。(1) 乘客能按以下3步操作購票:選定目的地,投入錢幣,獲得一張票。(2) 并且僅當乘客選定目的地后,系統(tǒng)才接收投錢;每次投入的錢只購買一張票。(3) 只要投入的錢不少于所需的票價,且票庫中有所要求的票,則應(yīng)盡快岀票。如需找錢,則在出票的同時應(yīng)退還多余的錢。(5) 如果乘客投入的錢不夠票價,或者票庫中沒有所需要的票時, 系統(tǒng)將全額退錢,并允許乘客另選目的地, 繼續(xù)購票。(6) 岀票前乘客可以單擊“取消”按鈕取消購票,

2、系統(tǒng)將全額退岀該乘客投入的錢,并允許乘客另選目的地,繼續(xù)購票。(7) 岀票結(jié)束(包括退還多余的錢)后,系統(tǒng)應(yīng)保存銷售記錄,并等待乘客購票。該系統(tǒng)還要求快速響應(yīng)和操作同步,所以它應(yīng)是一個實時系統(tǒng)。為此,A公司在該系統(tǒng)的數(shù)據(jù)流程圖中附加了過程控制部分,形成轉(zhuǎn)換圖。在該圖中,控制流(事件流)用虛線表示,數(shù)據(jù)流用實線表示。圖中的數(shù)據(jù)流并沒有畫全,需要考生填補。對售票全過程進行的控制可以用系統(tǒng)內(nèi)部各個狀態(tài)之間的遷移來描述,從而形成狀態(tài)遷移圖。在狀態(tài)遷移 圖中,用雙線框表示狀態(tài),用有向邊表示狀態(tài)的遷移。引起狀態(tài)遷移的事件以及由該事件引起的動作,在該公司還制定了一個過程啟動表,用以表明狀態(tài)遷移圖中的 4個動

3、作與轉(zhuǎn)換圖中的4個過程之間的“啟動” 關(guān)系,即說明哪個動作將啟動哪個過程。用1表示啟動,用0表示不啟動。啟動的過程將根據(jù)獲得的輸入數(shù)據(jù)產(chǎn)生輸岀數(shù)據(jù),未唐動的過程則不會產(chǎn)生輸岀數(shù)據(jù), 該表中沒有列岀的過程, 其執(zhí)行與否與事件無關(guān)?!締栴}1】轉(zhuǎn)換圖中缺少哪3條數(shù)據(jù)流?請指明每條數(shù)據(jù)流的名稱、起點和終點?!締栴}2】在狀態(tài)遷移圖中,a、b、c分別表示什么事件?請用轉(zhuǎn)換圖中給岀的事件名解答?!締栴}3】在過程啟動表中,d、e處應(yīng)填什么?請分別用4位二進制碼表示。(分數(shù):15.00 ) 正確答案:(解析這道考題的題型比較特殊,但仍可以參考??嫉臄?shù)據(jù)流程圖的解題思路。應(yīng)全面細致 地閱讀試題說明、轉(zhuǎn)換圖和狀態(tài)遷

4、移圖,體會系統(tǒng)的實際運行場景,以幫助順利地解題。問題1已經(jīng)明確指岀轉(zhuǎn)換圖中缺少 3條數(shù)據(jù)流,而從直觀上看,“核查”處于核心位置,它還非常顯著地 同全部3個文件有關(guān)。當然,有些考生不一定有這種直接看岀關(guān)鍵點的技能,但是對于具有扎實軟件工程 理論基礎(chǔ)和實際系統(tǒng)設(shè)計經(jīng)驗的人員,在經(jīng)過一定的考試訓(xùn)練后,應(yīng)該具有這種技能。下面具體分析。系統(tǒng)的使用者一一乘客與系統(tǒng)之間的活動有選擇目的地、投錢、岀票。首先應(yīng)該按照這3個活動去解答第1個問題。 乘客選擇目的地應(yīng)該經(jīng)過核查,防止錯誤和異常,但這一點在轉(zhuǎn)換圖中沒有畫出。 乘客投錢,系統(tǒng)接到錢后應(yīng)核查,如果正確(不是假幣,規(guī)定面值的紙幣,面值不低于票價),系統(tǒng)將進入

5、后面的出票流程。如果是規(guī)定的面值且面值大于票價,同時還要進入退還錢(找零)的流程。 在中,如果系統(tǒng)對錢核查后發(fā)現(xiàn)不正確(假幣,不是規(guī)定的面值,面值低于票價),系統(tǒng)將進入退還錢的流程。出票時也應(yīng)該核查,這一點在轉(zhuǎn)換圖中已經(jīng)畫出?,F(xiàn)在,已經(jīng)找到了缺少的3 條數(shù)據(jù)流。將上述 3 條數(shù)據(jù)流補充到轉(zhuǎn)換圖中, 在以“核查”為中心的轉(zhuǎn)換圖中, 每個輸入數(shù)據(jù)流 / 輸出數(shù)據(jù)流都經(jīng)過 “核查”的檢測。系統(tǒng)設(shè)計師們應(yīng)該具有這樣的設(shè)計思想:“核查”是系統(tǒng)中必須的、核心的、決定系統(tǒng) 健壯性的功能。給出的狀態(tài)圖是一個完整的循環(huán)流程,正常過程中,狀態(tài)“正在接受投錢”后,應(yīng)該接下去是出票,但事件a導(dǎo)致“退錢”事件發(fā)生,在說

6、明中已經(jīng)很明確給出,是乘客按“取消”按鈕。按照問題 1 中的分析,知道“接受投錢”后,系統(tǒng)經(jīng)過“核查”,如果正確,就可以“出票”,所以b 是“核查正確”。出票結(jié)束后,該乘客的事務(wù)已經(jīng)完成,系統(tǒng)將進入下一個乘客事務(wù)的等待,所以c 應(yīng)該是“出票結(jié)束”。對于問題 3,應(yīng)該按照已經(jīng)補充完的轉(zhuǎn)換圖和狀態(tài)遷移圖,及過程啟動表中的規(guī)則進行分析,可以很容易得出解答。d是1001,e是1100。)解析:二、試題二 ( 總題數(shù): 1,分數(shù): 5.00)2. 【說明】 學(xué)校中有若干系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授和副教授各帶有若 干研究生;每個班有若干學(xué)生,每個學(xué)生選修若干課程,每門

7、課可由若干學(xué)生選修?!締栴} 1 】用 E-R 圖畫出此學(xué)校的概念模型,用文字寫出各實體和聯(lián)系的屬性。 【問題 2】將 E-R 圖轉(zhuǎn)換成關(guān)系模型。【問題 3】指出各關(guān)系模型的候選鍵。(分數(shù): 5.00) 正確答案: ( 【問題 1】用 E-R 圖表示的概念模型如下所示。 各實體的屬性如下所述。系:系編號,系名。 班級:班級編號,班級名。 教研室:教研室編號,教研室名。 學(xué)生:學(xué)號,姓名,學(xué)歷。 課程:課程編號,課程名。 教員:職工號,姓名,職稱。各聯(lián)系的屬性為: 選修課:成績。 其他聯(lián)系無屬性?!締栴} 2】 其關(guān)系模型為: 系(系編號,系名,學(xué)校名 ) 班級(班級編號,班級名,系編號 ) 教研室

8、 ( 教研室編號,教研室,系編號 ) 學(xué)生(學(xué)號,姓名,學(xué)歷,班級編號,導(dǎo)師職工號 ) 正確答案:(參與者1注冊用戶參與者2圖書館管理員參與者3 借書者參與者4圖書館館長用例1登錄用例2搜索課程(課程編號,課程名)選課(學(xué)號,課程編號,成績)【問題3】各關(guān)系模型的候選鍵為:系一系編號;班級一班級編號,教研室一教研室編號,學(xué)生一學(xué)號;課程一課程編號;教員一職工號;選課一學(xué)號,課程編號。)解析:解析在畫E-R圖時,可以按照對問題的描述一步一步畫出每一句話中涉及的實體,再根據(jù)給出的 實際語義,畫岀實體之間的聯(lián)系。例如,每個教研室有若干教員,每個班有若干學(xué)生,可以畫岀教研室和 教員、班級和學(xué)生之間一對

9、多的聯(lián)系。再比如,有的教授和副教授每人各帶若干研究生,而一個研究生一 般指定一個導(dǎo)師,這是通常的規(guī)則,所以可以畫岀教員和學(xué)生之間一對多的關(guān)系。按照上述的分析方法,從題的說明中,可以得到如下實體和聯(lián)系。實體:學(xué)校、系、教研室、班級、教員、學(xué)生、課程。聯(lián)系:校一系、系一室、系一班、室一教、班一生、指導(dǎo)、選修。 具體說明:實體“學(xué)校”和實體“系”是“一對多”的“校一系”聯(lián)系。實體“系”和實體“班級”是“一對多”的“系一班”聯(lián)系。實體“系”和實體“教研室”是“一對多”的“系一室”聯(lián)系。實體“班級”和實體“學(xué)生”是“一對多”的“班一生”聯(lián)系。實體“教研室”和實體“教員”是“一對多”的“室一教”聯(lián)系。實體

10、“學(xué)生”和實體“課程”是“多對多”的“選修”聯(lián)系。實體“教員”和實體“學(xué)生”是“一對多”的“指導(dǎo)”聯(lián)系。三、試題三(總題數(shù):1,分數(shù):15.00)3. 【說明】(1) 這是一個圖書館支持系統(tǒng)。(2) 圖書館應(yīng)用系統(tǒng)可以將圖書和雜志借給借書者,這些借書者已經(jīng)在系統(tǒng)中注冊了,圖書和雜志也已經(jīng)注冊過了。(3) 圖書館負責(zé)新書的購買, 一本流行圖書會多買幾本。 當舊書和雜志已經(jīng)過時或破舊不堪時,將它們從圖 書館應(yīng)用系統(tǒng)中刪除。(4) 圖書館館員是圖書館的員工。他們與客戶(借書者)打交道,并且是在圖書館軟件系統(tǒng)提供的支持下開展 工作的。(5) 借書者可以預(yù)訂圖書館中當前還沒有的圖書或雜志,這樣,當某借書

11、者所預(yù)訂的圖書或雜志歸還回來或購進時,應(yīng)用系統(tǒng)就通知這個預(yù)訂人。當該借書者借閱了他所預(yù)訂的圖書或雜志后,或者通過一個顯式的 取消過程取消他的預(yù)訂后,他的本次預(yù)訂就被取消了。(6) 圖書館應(yīng)用系統(tǒng)能夠容易地建立、修改和刪除系統(tǒng)中的信息,包括書名、借書者、借閱信息和預(yù)訂信息。 圖書館應(yīng)用系統(tǒng)能夠在所有流行的Web瀏覽器平臺(Internet Explorer 5.1 以上,Netscape 4.0 以上等等)上運行。(8) 圖書館應(yīng)用系統(tǒng)應(yīng)該易于擴展新功能?!締栴}】分析這個圖書館系統(tǒng)中涉及的角色和用例,完成用例圖I (分數(shù):15.00 )用例 3瀏覽用例 4管理借書者用例 5管理書目用例 6管理標

12、題用例 7擔任借書者的身份用例 8預(yù)訂用例 9取消預(yù)訂用例 10借書用例 11還書 )解析: 解析 由試題給出的用例圖可以看到有 4個參與者,并且他們之間是泛化 (繼承)的關(guān)系,結(jié)合案例 描述進行分析。圖書館系統(tǒng)的參與者有圖書管理員 (Librarian) 和借書者 (Borrower) ,因為他們二者都是該系統(tǒng)的用戶。 圖 書管理員具有添加借書者、標題和書目這些管理能力,而借書者則是來借閱或預(yù)訂圖書和雜志的用戶。偶 爾,圖書館館員或另一個圖書館也可能成為借書者。最后,我們有一個圖書館館長 (Master Librarian) 這 一參與者,這個角色具有管理其他圖書館館員的能力。另外,在該圖書

13、館有某本書籍的副本 (一個書目 ) 之 前,先向該系統(tǒng)添加一個標題,這是可以的,目的是為了讓借書者能夠進行預(yù)訂。圖書館系統(tǒng)中的用例有以下這些: Login(登錄) Search(搜索) Browse(瀏覽) Make Reservation( 預(yù)訂 ) Remove Reservation( 取消預(yù)訂 ) Checkout I tem( 借書 ) Return Item( 還書 ) Manage Titles( 管理標題 ) Manage Items( 管理書目 ) Manage Borrowers( 管理借書者 ) Manage Librarians( 圖書管理員 ) Assume Iden

14、tity of Borrower( 擔任借書者的身份 )上述列表中需要注意的是 Title( 標題)和 Item( 書目)這兩個概念。因為在一個圖書館中,一本流行書通常 有多本副本, 所以系統(tǒng)必須把標題 ( 可以是一本書的名稱、 書的作者 ) 和同一標題的一個單一物理副本 ( 這是 一個書目 ) 的概念分開。從實用角度考慮,為了限制本題的復(fù)雜度,這里不完成某些“ Manage管理)”用例(例如ManageLibrarians和 Manage Borrowers) 的實現(xiàn)。四、試題四 (總題數(shù): 1,分數(shù): 15.00)4. 【說明】本程序在3X3方格中填入1N(N>10)內(nèi)的某9個互不相

15、同的整數(shù),使所有相鄰兩個方格內(nèi)的兩個整數(shù)之 和為質(zhì)數(shù)。試求出滿足這個要求的所有填法。3X3方格中的每個方格按行按列(先行后列)序號排列為:0,1 , 2, 3, 4, 5, 6, 7, 8。程序采用試探法,即從序號為 0 的方格開始,為當前方格尋找一個合理的可填整數(shù),并在當前位置正確填 入后,為下一方格尋找可填入的合理整數(shù)。如不能為當前方格找到一個合理的可填整數(shù),就要回退到前一 方格,調(diào)整前一方格的填入整數(shù);直至序號為 8 的方格也填入合理的整數(shù)后,就找到了一個解,將該解輸 出。再調(diào)整序號為 8 的方格所填整數(shù),繼續(xù)去找下一個解。為了檢查當前方格的填入整數(shù)的合理性,程序 引入二維數(shù)組 chec

16、k Matrix ,存放需要進行合理性檢查的相鄰方格的序號。# include < stdio. h ># define N 12int bN+1;int pos;int a9;/* 用于存儲諸方格所填入的整數(shù) */int AIINum=O;/* 統(tǒng)計有多少種填法*/int checkMatrix3= -1,0,-1,1,-1, 0,-1,1,3,-1,2,4,-1,3,-1,4,6,-1,5,7,-1;void write(int a)int i, j;for(i=0; iv 3; i+)for(j=0; jv 3; j+)printf("%3d", a3*i

17、+j); printf("/n");int isPrime(int m)int i;if(m=2)return 1;if(m=1 II m%2=0)return 0;for(i=3; i*i v m;)if(m%i=0)return 0;i+=2;return 1;int selectNum(int start)int j;for(j=start; j v =N; j+)if(bj)return j;return 0;int check()/*檢查填入pos位置的整數(shù)是否合理*/int i,j;for(i=0; (j= (1) ) > =0; i+)if(!isPri

18、me(apos+aj)(2) ;(3) ;extend ()/*為下一方格找一個尚未使用過的整數(shù)*/a (4) =seIectNum(1);bapos=0;void change ()/*為當前方格找下一個尚未使用過的整數(shù)(找不到回溯)*/int j;while(pos > =0 && (j=seIectNum( (5) )=0)bapos-=1;if(pos v 0)return;bapos=1; apos=j; bj=0;int find ()int ok=1;pos=0; apos=1; bapos=0;doif(ok)if(pos=8)write(a);chang

19、e();AIINum+;/* 統(tǒng)計有多少種填法*/else extend();else change();ok=check();while(pos > =0);void main()int i;for(i=1; i < =N; i+) bi=1;find();prinrf("共有 d種不同填法!/n", AllNum);(分數(shù):15.00 ) 正確答案:(解析(1) checkMatrixposi本處填空是在循環(huán)檢查填入pos位置的整數(shù)是否合理,把與pos相鄰的數(shù)都求和判斷是否為質(zhì)數(shù)。(2) return 0若不是質(zhì)數(shù)則返回0,表示不可以。(3) return

20、1若相鄰的數(shù)都是質(zhì)數(shù)則返回1,表示可以。(4) +pos本處填空是為下一個方格找一個尚未使用過的整數(shù)。(5) apos+1本處填空是在循環(huán)為當前方格找下一個尚未使用過的整數(shù)。)解析:五、試題五(總題數(shù):1,分數(shù):15.00)5. 說明】Rectangle作為計算以下C+程序的功能是計算三角形、矩形和正方形的面積并輸出。程序由4個類組成:類Triangle和Square分別表示三角形、矩形和正方形;抽象類 Figure提供了一個純虛擬函數(shù)getArea(),上述3種圖形面積的通用接口。#include < iostream.b >#include < math.h >cl

21、ass Figurepublic:virtual double getArea0=0; /純虛擬函數(shù)class Rectangle: (1)protected:double height;double width;public:Rectangle。;Rectangle(double height, double width)This- > height=height;This- >width=width;double getarea() return (2);class Square: (3)public:Square(double width) ;class Triangle:

22、(5)double la;double lb;double lc;public:Triangle(double la, double lb, double lc) this- > la=la; this- > lb; this- > lc;double getArea()double s=(la+lb+lc)/2.0; return sqrt(s*(s-l«a)*(s-l* b)*(s-l c);viod main()Figure* figures3=new Triangle(2,3,3), new Rectangle(5,8), new Square(5);for

23、(int i=0;i< 3;i+)cout << "figures" << i << "area=" << (figures")->getarea() << endl;(分數(shù):15.00 ) 正確答案:(解析(1) public Figure本處由于Rectangle是派生類,需要公有繼承 Figure。> height(2) height*width或 width*height 或 this- > height*this- > width 或 this-

24、 > width*this-本處是計算矩形的面積。(3) public Rectangle本處由于Square是派生類,需要公有繼承Rectangle。(4) this-> height=this- > width=width 或 height=this- > width=width本處是正方形的構(gòu)造函數(shù),是給繼承的Rectangle賦初值,由于正方形長等于寬,因此應(yīng)該填入:this->height=this- > width=width 或 height=this- > width=width 。(5) public Figure本處由于Triangle 是派生類,需要公有繼承Figure,因此應(yīng)該填入

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論