中級(jí)軟件設(shè)計(jì)師下午試題-13_第1頁
中級(jí)軟件設(shè)計(jì)師下午試題-13_第2頁
中級(jí)軟件設(shè)計(jì)師下午試題-13_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

8、學(xué)生(學(xué)號(hào),姓名,學(xué)歷,班級(jí)編號(hào),導(dǎo)師職工號(hào) )課程(課程編號(hào),課程名)選 課(學(xué)號(hào),課程編號(hào),成績)【問題3】 各關(guān)系模型的候選鍵為:系一系編號(hào);班級(jí)一班級(jí)編號(hào),教研室教研室編號(hào),學(xué)生一學(xué)號(hào);課程一課程編號(hào);教員一職工號(hào);選課一學(xué)號(hào),課程編號(hào)。解析在畫E-R圖時(shí),可以按照對問題的描述一步一步畫岀每一句話中涉及的實(shí)體,再根據(jù)給岀的實(shí)際語義,畫岀實(shí)體之 間的聯(lián)系。例如,每個(gè)教研室有若干教員,每個(gè)班有若干學(xué)生,可以畫岀教研室和教員、班級(jí)和學(xué)生之間一對多的聯(lián)系。再比如,有的教授和副教授每人各帶若干研究生,而一個(gè)研究生一般指定一個(gè)導(dǎo)師,這是 通常的規(guī)則,所以可以畫岀教員和學(xué)生之間一對多的關(guān)系。按照上述

9、的分析方法,從題的說明中,可以得到如下實(shí)體和聯(lián)系。實(shí)體:學(xué)校、系、教研室、班級(jí)、教員、學(xué)生、課程。聯(lián)系:校一系、系一室、系一班、室一教、班一生、指導(dǎo)、選修。具體說明:實(shí)體“學(xué)?!焙蛯?shí)體“系”是“一對多”的“校系”聯(lián)系。實(shí)體“系”和實(shí)體“班級(jí)”是“一對多”的“系一班”聯(lián)系。實(shí)體“系”和實(shí)體“教研室”是“一對多”的“系一室”聯(lián)系。實(shí)體“班級(jí)”和實(shí)體“學(xué)生”是“一對多”的“班一生”聯(lián)系。實(shí)體“教研室”和實(shí)體“教員”是“一對多”的“室一教”聯(lián)系。實(shí)體“學(xué)生”和實(shí)體“課程”是“多對多”的“選修”聯(lián)系。實(shí)體“教員”和實(shí)體“學(xué)生”是“一對多”的“指導(dǎo)”聯(lián)系。、B試題三/B( 總題數(shù):1,分?jǐn)?shù):15.00)3

10、. 說明】(1)這是一個(gè)圖書館支持系統(tǒng)。(2)圖書館應(yīng)用系統(tǒng)可以將圖書和雜志借給借書者,這些借書者已經(jīng)在系統(tǒng)中注冊了,圖書和雜志也已經(jīng)注冊過了。(3)圖書館負(fù)責(zé)新書的購買,一本流行圖書會(huì)多買幾本。當(dāng)舊書和雜志已經(jīng)過時(shí)或破舊不堪時(shí),將它們從圖書館應(yīng)用系統(tǒng)中刪除。(4)圖書館館員是圖書館的員工。他們與客戶(借書者)打交道,并且是在圖書館軟件系統(tǒng)提供的支持下開展工作的。(5)借書者可以預(yù)訂圖書館中當(dāng)前還沒有的圖書或雜志,這樣,當(dāng)某借書者所預(yù)訂的圖書或雜志歸還回來或購進(jìn)時(shí),應(yīng) 用系統(tǒng)就通知這個(gè)預(yù)訂人。當(dāng)該借書者借閱了他所預(yù)訂的圖書或雜志后,或者通過一個(gè)顯式的取消過程取 消他的預(yù)訂后,他的本次預(yù)訂就被取

11、消了。(6)圖書館應(yīng)用系統(tǒng)能夠容易地建立、修改和刪除系統(tǒng)中的信息,包括書名、借書者、借閱信息和預(yù)訂信息。(7)圖書館應(yīng)用系統(tǒng)能夠在所有流行的Web瀏覽器平臺(tái)(Internet Explorer 5.1以上,Netscape 4.0 以上等等)上運(yùn)行。(8)圖書館應(yīng)用系統(tǒng)應(yīng)該易于擴(kuò)展新功能。問題】分析這個(gè)圖書館系統(tǒng)中涉及的角色和用例,完成用例圖。*(分?jǐn)?shù):15.00 ) 正確答案:()解析:參與者1 注冊用戶 參與者2圖書館管理員 參與者3借書者參與者4圖書館館長 用 例1 登錄 用例2搜索 用例3瀏覽 用例4管理借書者 用例5管理書目 用例6管 理標(biāo)題 用例7擔(dān)任借書者的身份用例8預(yù)訂 用例9

12、取消預(yù)訂 用例10借書 用例11 還書解析由試題給岀的用例圖可以看到有4個(gè)參與者,并且他們之間是泛化(繼承)的關(guān)系,結(jié)合案例描述進(jìn)行分析。圖書館系統(tǒng)的參與者有圖書管理員(Librarian) 和借書者(Borrower),因?yàn)樗麄兌叨际窃撓到y(tǒng)的用戶。圖書管理員具有添加借書者、標(biāo)題和書目這些管理能力,而借書者則是來借閱或預(yù)訂圖書 和雜志的用戶。偶爾,圖書館館員或另一個(gè)圖書館也可能成為借書者。最后,我們有一個(gè)圖書館館長(MasterLibrarian)這一參與者,這個(gè)角色具有管理其他圖書館館員的能力。另外,在該圖書館有某本書籍的副本(一個(gè)書目)之前,先向該系統(tǒng)添加一個(gè)標(biāo)題,這是可以的,目的是為了

13、讓借書者能夠進(jìn)行預(yù)訂。圖書館系統(tǒng)中的用例有以下這些: Login(登錄) Search(搜索) Browse(瀏覽) Make Reservation 預(yù)訂) Remove Reservation 取消預(yù)訂) Checkout ltem(借書) Return ltem(還書) Manage Titles(管 理標(biāo)題) Manage Items(管理書目) Manage Borrowers(管理借書者) Manage Librarians(圖書管理 員) Assume Identity of Borrower(擔(dān)任借書者的身份)上述列表中需要注意的是Title(標(biāo)題)和ltem(書目)這兩個(gè)概念

14、。因?yàn)樵谝粋€(gè)圖書館中,一本流行書通常有多本副本,所以系統(tǒng)必須把標(biāo)題(可以是一本書的名稱、書的作者 ) 和同一標(biāo)題的一個(gè)單一物理副本 ( 這是一個(gè)書目 ) 的概念分開。 從實(shí)用角度考慮,為了 限制本題的復(fù)雜度,這里不完成某些“ Manage管理)”用例 (例如ManageLibrarians 和ManageBorrowers) 的實(shí)現(xiàn)。四、B 試題四 /B( 總題數(shù): 1,分?jǐn)?shù): 15.00)4. 【說明】本程序在3X3方格中填入1N(N>10)內(nèi)的某9個(gè)互不相同的整數(shù),使所有相鄰兩個(gè)方格內(nèi)的兩個(gè)整數(shù)之和為質(zhì)數(shù)。試求出滿足這個(gè)要求的所有填法。3X3方格中的每個(gè)方格按行按列(先行后列)序號(hào)排

15、列為: 0, 1, 2, 3, 4, 5, 6, 7, 8。 程序采用試探法,即從序號(hào)為 0的方格開始,為當(dāng)前方格尋找 一個(gè)合理的可填整數(shù),并在當(dāng)前位置正確填入后,為下一方格尋找可填入的合理整數(shù)。如不能為當(dāng)前方格 找到一個(gè)合理的可填整數(shù),就要回退到前一方格,調(diào)整前一方格的填入整數(shù);直至序號(hào)為8 的方格也填入合理的整數(shù)后,就找到了一個(gè)解,將該解輸出。再調(diào)整序號(hào)為 8 的方格所填整數(shù),繼續(xù)去找下一個(gè)解。為 了檢查當(dāng)前方格的填入整數(shù)的合理性,程序引入二維數(shù)組 check Matrix ,存放需要進(jìn)行合理性檢查的相鄰 方格的序號(hào)。# include < stdio. h > # defin

16、e N 12 int bN+1; int pos; int a9;/*用于存儲(chǔ)諸方格所填入的整數(shù) */ int AllNum=0;/* 統(tǒng)計(jì)有多少種填法 */ 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;i<3; i+) for(j=0; j <3; j+) printf("%3d", a3*i+j); printf("/n"); int isPrime(int m) in

17、t i; if(m=2)return 1; if(m=1II m%2=0)return 0; for(i=3; i*i < m;) if(m%i=O)return 0;i+=2; return 1; int selectNum(int start) int j; for(j=start; j< =N; j+) if(bj)returnj; return 0; int check()/*檢查填入 pos 位置的整數(shù)是否合理 */ int i,j; for(i=0; (j=U (1)/U)>=0; i+) if(!isPrime(apos+aj) U(2) /U; U(3) /U

18、; extend ()/*為下一方格找一個(gè)尚未使用過的整數(shù) */ aU(4) /U=selectNum(1);bapos=0; void change()/* 為當(dāng)前方格找下一個(gè)尚未使用過的整數(shù) (找不到回溯 )*/ int j; while(pos>=0 &&(j=selectNum(U (5) /U)=0) bapos-=1; if(pos< 0)return; bapos=1; apos=j;bj=0; int find () int ok=1; pos=0; apos=1;bapos=0; do if(ok) if(pos=8) write(a);chang

19、e(); AllNum+;/* 統(tǒng)計(jì)有多少種填法 */ 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); (分?jǐn)?shù): 15.00 ) 正確答案: ()解析: 解析 (1)checkMatrixposi本處填空是在循環(huán)檢查填入 pos 位置的整數(shù)是否合理,把與 pos相鄰的數(shù)都求和判斷是否為質(zhì)數(shù)。 (2)return 0 若不是質(zhì)數(shù)則返

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

21、stream.b > #include < math.h > classFigure public: virtual double getArea0=0; /純虛擬函數(shù) ; class Rectangle:U (1)/U protected: double height; double width; public: Rectangle(); Rectangle(double height, double width) This- > height=height; This- > width=width; double getarea() returnU (2) /

22、U; ; class Square:U (3) /U public: Square(double width) U (4) /U; ;class Triangle:U (5) /U double la; double lb; double lc; public: Triangle(double la, double lb, double lc) this-> la=la; this- > lb; this- > lc; double getArea() doubles=(la+lb+lc)/2.0; return sqrt(s*(s-la)*(s-lb)*(s-lc); ;

23、viod main() Figure* figures3= new Triangle(2,3,3), new Rectangle(5,8), new Square(5); for(int i=0;i3;i+) cout << "figures" << i << "area=" << (figuresi)- >getarea() << endl; (分?jǐn)?shù): 15.00 ) 正確答案: ()解析: 解析 (1)public Figure 本處由于 Rectangle 是派生類,需要公有繼承 F

24、igure 。 (2)height*width 或 width*height 或 this- > height*this- > width 或 this- > width*this- > height 本處是計(jì)算矩形的面 積。(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)該填入: public Figure 。六、B 試題六 /B( 總題數(shù):

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論