




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PAGE PAGE 21三、題型舉例(一)選擇題1. 某系統(tǒng)的可靠性結(jié)構(gòu)框圖如下圖所示。該系統(tǒng)由4個(gè)部件組成,其中2、3兩部件并聯(lián)冗余,再與1、4部件串聯(lián)構(gòu)成。假設(shè)部件1、2、3的可靠度分別為0.90、0.70、0.70。若要求該系統(tǒng)的可靠度不低于0.75,則進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),分配給部件4的可靠度至少應(yīng)為 (1) 。(1)A. B. C. D. 2. 結(jié)構(gòu)化開發(fā)方法中,數(shù)據(jù)流圖是 (2) 階段產(chǎn)生的成果。(2)A. 需求分析 B. 總體設(shè)計(jì) C. 詳細(xì)設(shè)計(jì) D. 程序編碼3. 在進(jìn)行面向?qū)ο笤O(shè)計(jì)時(shí),采用設(shè)計(jì)模式能夠(3)。(3)A. 復(fù)用相似問題的相同解決方案B. 改善代碼的平臺(tái)可移植性C. 改
2、善代碼的可理解性D. 增強(qiáng)軟件的易安裝性4. Model-driven analysis emphasizes the drawing of pictorial system models to document and validate both existing and/or proposed systems. Ultimately, the system models become the (5) for designing and constructing an improved system. (6) is such a technique. The emphasis in this
3、 technique is process-centered. Systems analysts draw a series of process models called (7) . (8) is another such technique that integrates data and process concerns into constructs called objects.(4)A. PrototypingB. AcceleratedC. Model-drivenD. Iterative(5)A. imageB. pictureC. layoutD. blueprint(6)
4、A. Structured analysis B. Information EngineeringC. Discovery PrototypingD. Object-Oriented analysis(7)A.PERTB. DFDC. ERDD. UML(8)A. Structured analysis B. Information EngineeringC. Discovery PrototypingD. Object-Oriented analysis(二)問答題試題一 軟件設(shè)計(jì)必做樣題閱讀下列說明以及圖1-1和圖1-2,回答問題1、問題2和問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。說明某電話公
5、司決定開發(fā)一個(gè)管理所有客戶信息的交互式網(wǎng)絡(luò)系統(tǒng)。系統(tǒng)的功能如下:1.瀏覽客戶信息:任何使用Internet的網(wǎng)絡(luò)用戶都可以瀏覽電話公司所有的客戶信息(包括姓名、住址、電話號(hào)碼等)。2.登錄:電話公司授予每個(gè)客戶一個(gè)帳號(hào)。擁有授權(quán)帳號(hào)的客戶,可以使用系統(tǒng)提供的頁面設(shè)置個(gè)人密碼,并使用該帳號(hào)和密碼向系統(tǒng)注冊。3.修改個(gè)人信息:客戶向系統(tǒng)注冊后,可以發(fā)送電子郵件或者使用系統(tǒng)提供的頁面,對個(gè)人信息進(jìn)行修改。4.刪除客戶信息:只有公司的管理人員才能刪除不再接受公司服務(wù)的客戶的信息。系統(tǒng)采用面向?qū)ο蠓椒ㄟM(jìn)行開發(fā),在開發(fā)過程中認(rèn)定出的類如下表所示:編號(hào)類名描述1InternetClient網(wǎng)絡(luò)用戶2Cust
6、omerList客戶信息表,記錄公司所有客戶的信息3Customer客戶信息,記錄單個(gè)客戶的信息4CompanyCustomer公司客戶5InternalClient公司的管理人員網(wǎng)絡(luò)用戶網(wǎng)絡(luò)用戶公司客戶管理人員ABCD圖1-1InternetClientInternetClient+search(s:String):StringCustomerList+search(s:String):Customer+getCustomer(number:String):Customer+addCustomer(c:Customer):Boolean+removeCustomer(c:Customer):
7、BooleanCompanyCustomer+login(number:String,passwd:String):Boolean+update(webpage:String,e_mail:String):Boolean+viewMyInfo():StringCustomer-number:String-name:String-address:String-e_mail:String-webpage:String-passwd:String+check_pwd(s:String):Boolean+showInfo():StringInternalClient+updateCustomer(nu
8、mber:String,.):Boolean+addCustomer(name:String,.):Boolean+removeCustomer(number:String):Boolean+viewCustomer(number:String):String0.*1 (1) (2) (3) (4) 圖1-2【問題1】在需求分析階段,采用UML的用例圖(use case diagram)描述系統(tǒng)功能需求,如圖1-1所示。請指出圖中的A、B、C和D分別是哪個(gè)用例?【問題2】在UML中,重復(fù)度(Multiplicity)定義了某個(gè)類的一個(gè)實(shí)例可以與另一個(gè)類的多少個(gè)實(shí)例相關(guān)聯(lián)。通常把它寫成一個(gè)表示取
9、值范圍的表達(dá)式或者一個(gè)具體的值。例如圖3-2中的類InternetClient和CustomerList,InternetClient端的“0.*”表示:一個(gè)CustomerList的實(shí)例可以與0個(gè)或多個(gè)InternetClient的實(shí)例相關(guān)聯(lián);CustomerList端的“1”表示:一個(gè)InternetClient的實(shí)例只能與一個(gè)CustomerList的實(shí)例相關(guān)。請指出圖1-2中(1)到(4)處的重復(fù)度分別為多少?【問題3】類通常不會(huì)單獨(dú)存在,因此當(dāng)對系統(tǒng)建模時(shí),不僅要識(shí)別出類,還必須對類之間的相互關(guān)系建模。在面向?qū)ο蠼V?,提供了四種關(guān)系:依賴(dependency)、概括(genera
10、lization)、關(guān)聯(lián)(association)和聚集(aggregation)。請分別說明這四種關(guān)系的含義,并說明關(guān)聯(lián)和聚集之間的主要區(qū)別。試題二 C語言選做樣題閱讀以下預(yù)備知識(shí)、函數(shù)說明和C代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)。【預(yù)備知識(shí)】(1)對給定的字符集合及相應(yīng)的權(quán)值,采用哈夫曼算法構(gòu)造最優(yōu)二叉樹,并用結(jié)構(gòu)數(shù)組存儲(chǔ)最優(yōu)二叉樹。例如,給定字符集合a,b,c,d及其權(quán)值2、7、4、5,可構(gòu)造如下所示的最優(yōu)二叉樹和相應(yīng)的結(jié)構(gòu)數(shù)組Ht(數(shù)組元素Ht0不用)。b b d a c 010011最優(yōu)二叉樹數(shù)組下標(biāo)chweightparentlchildrchild1a25002b
11、77003c45004d560056613611745718026 結(jié)構(gòu)數(shù)組Ht結(jié)構(gòu)數(shù)組Ht的類型定義如下:#define MAXLEAFNUM 20struct nodechar ch; /*當(dāng)前結(jié)點(diǎn)表示的字符,對于非葉子結(jié)點(diǎn),此域不用*/int weight; /*當(dāng)前結(jié)點(diǎn)的權(quán)值*/ int parent; /*當(dāng)前結(jié)點(diǎn)的父結(jié)點(diǎn)的下標(biāo),為0時(shí)表示無父結(jié)點(diǎn)*/ int lchild,rchild; /*當(dāng)前結(jié)點(diǎn)的左、右孩子結(jié)點(diǎn)的下標(biāo),為0時(shí)表示無對應(yīng)的孩子結(jié)點(diǎn)*/Ht2*MAXLEAFNUM;(2)用0或1標(biāo)識(shí)最優(yōu)二叉樹中分支的規(guī)則是:從一個(gè)結(jié)點(diǎn)進(jìn)入其左(右)孩子結(jié)點(diǎn),就用0(1)標(biāo)識(shí)該分支
12、(示例見上圖)。(3)若用上述規(guī)則標(biāo)識(shí)最優(yōu)二叉樹的每條分支后,從根結(jié)點(diǎn)開始到葉子結(jié)點(diǎn)為止,按經(jīng)過分支的次序,將相應(yīng)標(biāo)識(shí)依次排列,可得到由0、1組成的一個(gè)序列,稱此序列為該葉子結(jié)點(diǎn)的前綴編碼。例如上圖所示的葉子結(jié)點(diǎn)a、b、c、d的前綴編碼分別是110、0、111、10?!竞瘮?shù)說明】函數(shù)void LeafCode(int root,int n)的功能是:采用非遞歸方法,遍歷最優(yōu)二叉樹的全部葉子結(jié)點(diǎn),為所有的葉子結(jié)點(diǎn)構(gòu)造前綴編碼。其中形參root為最優(yōu)二叉樹的根結(jié)點(diǎn)下標(biāo);形參n為葉子結(jié)點(diǎn)個(gè)數(shù)。在構(gòu)造過程中,將Htp.weight域用作被遍歷結(jié)點(diǎn)的遍歷狀態(tài)標(biāo)志。【函數(shù)】char *Hc;void Le
13、afCode(int root,int n) /*為最優(yōu)二叉樹中的n個(gè)葉子結(jié)點(diǎn)構(gòu)造前綴編碼,root是樹的根結(jié)點(diǎn)下標(biāo)*/int i, p = root, cdlen = 0; char code20; Hc = (char *)malloc(n+1)*sizeof(char *); /*申請字符指針數(shù)組*/ for(i = 1; i = p; +i) Hti.weight = 0; /*遍歷最優(yōu)二叉樹時(shí)用作被遍歷結(jié)點(diǎn)的狀態(tài)標(biāo)志*/while(p) /*以非遞歸方法遍歷最優(yōu)二叉樹,求樹中每個(gè)葉子結(jié)點(diǎn)的編碼*/if(Htp.weight = 0) /*向左*/ Htp.weight = 1; if
14、 (Htp.lchild != 0) p = Htp.lchild; codecdlen+ = 0; else if (Htp.rchild = 0) /*若是葉子結(jié)點(diǎn),則保存其前綴編碼*/ Hcp = (char *)malloc(cdlen+1)*sizeof(char); (1) ; strcpy(Hcp,code); else if(Htp.weight = 1) /*向右*/ Htp.weight = 2; if (Htp.rchild != 0) p = Htp.rchild; codecdlen+ = 1; else /* Htp.weight=2,回退*/ Htp.weight
15、 = 0;p = (2) ; (3) ; /*退回父結(jié)點(diǎn)*/ /*while結(jié)束*/【函數(shù)說明】函數(shù)void Decode(char *buff,int root)的功能是:將前綴編碼序列翻譯成葉子結(jié)點(diǎn)的字符序列,并輸出。其中形參root為最優(yōu)二叉樹的根結(jié)點(diǎn)下標(biāo);形參buff指向前綴編碼序列?!竞瘮?shù)】void Decode(char *buff, int root) int pre = root, p;while (*buff != 0) p = root; while (p != 0) /*存在下標(biāo)為p的結(jié)點(diǎn)*/ pre = p; if ( (4) ) p = Htp.lchild; /*進(jìn)
16、入左子樹*/ else p = Htp.rchild; /*進(jìn)入右子樹*/ buff+; /*指向前綴編碼序列的下一個(gè)字符*/ (5) ;printf(%c, Htpre.ch); 試題三 C+語言選做樣題閱讀以下說明和C+代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】在一公文處理系統(tǒng)中,開發(fā)者定義了一個(gè)公文類OfficeDoc,其中定義了公文具有的屬性和處理公文的相應(yīng)方法。當(dāng)公文的內(nèi)容或狀態(tài)發(fā)生變化時(shí),關(guān)注此OfficeDoc類對象的相應(yīng)的DocExplorer對象都要更新其自身的狀態(tài)。一個(gè)OfficeDoc對象能夠關(guān)聯(lián)一組DocExplorer對象。當(dāng)OfficeDoc對象
17、的內(nèi)容或狀態(tài)發(fā)生變化時(shí),所有與之相關(guān)聯(lián)的DocExplorer對象都將得到通知,這種應(yīng)用被稱為觀察者模式。以下代碼寫在一個(gè)C+源文件中,能夠正確編譯通過。【C+代碼】#include const OBS_MAXNUM=20; / (1) ;class DocExplorer /關(guān)注OfficeDoc公文對象的類public:DocExplorer ( (2) *doc); /構(gòu)造函數(shù) (3) void update(OfficeDoc *doc)=0; /其它相關(guān)屬性和方法省略;class OfficeDoc /公文類private:DocExplorer *myObsOBS_MAXNUM;
18、/關(guān)注此公文類的DocExplorer類對象指針數(shù)組int index; /與OfficeDoc對象關(guān)聯(lián)的DocExplorer對象的個(gè)數(shù)public:OfficeDoc()index=0;void attach(DocExplorer *o) /將一DocExplorer對象與OfficeDoc對象相關(guān)聯(lián)if (index = OBS_MAXNUM | o = NULL) return;for(int loop = 0; loop index; loop+)if(myObsloop = o)return; myObsindex = o; index+;void detach(DocExplo
19、rer *o) /解除某DocExplorer對象與OfficeDoc對象的關(guān)聯(lián)if(o=NULL) return;for(int loop = 0; loop index; loop +)if(myObsloop = o)if(loop = index-2) myObsloop = myObsindex-1;myObsindex-1=NULL;index-;break;private:void notifyObs() /通知所有的DocExplorer對象更改自身狀態(tài)for(int loop = 0; loop (4) ; /DocExplorer對象更新自身狀態(tài)/其它公文類的相關(guān)屬性和方法
20、;DocExplorer:DocExplorer(OfficeDoc *doc) /DocExplorer類對象的構(gòu)造函數(shù)doc- (5) ; /試題四 Java語言選做樣題閱讀以下說明和Java代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明】在一公文處理系統(tǒng)中,開發(fā)者定義了一個(gè)公文類OfficeDoc,其中定義了公文具有的屬性和處理公文的相應(yīng)方法。當(dāng)公文的內(nèi)容或狀態(tài)發(fā)生變化時(shí),關(guān)注此OfficeDoc類對象的相應(yīng)的DocExplorer對象都要更新其自身的狀態(tài)。一個(gè)OfficeDoc對象能夠關(guān)聯(lián)一組DocExplorer對象。當(dāng)OfficeDoc對象的內(nèi)容或狀態(tài)發(fā)生變化時(shí),所有
21、與之相關(guān)聯(lián)的DocExplorer對象都將得到通知,這種應(yīng)用被稱為觀察者模式。以下代碼采用Java語言實(shí)現(xiàn),能夠正確編譯通過。【Java 代碼】/ Subject.java文件public interface Subject public void attach(Observer DocExplorer);public void detach(Observer DocExplorer);void notifyObservers();/ Observer.java文件public interface Observervoid update( (1) );/ OfficeDoc.java文件imp
22、ort java.util.*;public class OfficeDoc implements Subject /OfficeDoc類實(shí)現(xiàn)Subject接口private Vector ObserverVector = new java.util.Vector();/ 存儲(chǔ)與OfficeDoc相關(guān)聯(lián)的DocExplorer對象public void attach(Observer observer) /將某DocExplorer對象與OfficeDoc相關(guān)聯(lián)ObserverVector.addElement(observer);public void detach(Observer obs
23、erver)/解除某DocExplorer對象與OfficeDoc的關(guān)聯(lián)關(guān)系ObserverVector.removeElement(observer);public void notifyObservers()/當(dāng)OfficeDoc對象狀態(tài)已發(fā)生變化時(shí),通知所有的DocExplorer對象Enumeration enumeration = (2) ;while (enumeration.hasMoreElements()(Observer)enumeration.nextElement(). (3) ;public Enumeration Observers()return Observer
24、Vector.elements();/其它公文類的屬性和方法省略/ DocExplorer.java文件public class DocExplorer implements (4) public void update( (5) )/更新DocExplorer自身的狀態(tài),代碼省略 三、題型舉例考試科目1:計(jì)算機(jī)與軟件工程知識(shí)(樣題)1. 在計(jì)算機(jī)中,最適合進(jìn)行數(shù)字加減運(yùn)算的數(shù)字編碼是 (1) ,最適合表示浮點(diǎn)數(shù)階碼的數(shù)字編碼是 (2) 。 (1)A. 原碼 B. 反碼 C. 補(bǔ)碼 D. 移碼 (2)A. 原碼 B. 反碼 C. 補(bǔ)碼 D. 移碼2. 操作數(shù)所處的位置,可以決定指令的尋址方式。
25、操作數(shù)包含在指令中,尋址方式為 (3) ;操作數(shù)在寄存器中,尋址方式為 (4) ;操作數(shù)的地址在寄存器中,尋址方式為 (5) 。 (3)A. 立即尋址 B. 直接尋址 C. 寄存器尋址 D. 寄存器間接尋址 (4)A. 立即尋址 B. 相對尋址 C. 寄存器尋址 D. 寄存器間接尋址 (5)A. 相對尋址 B. 直接尋址 C. 寄存器尋址 D. 寄存器間接尋址 3. 某系統(tǒng)的可靠性結(jié)構(gòu)框圖如下圖所示。該系統(tǒng)由4個(gè)部件組成,其中2、3兩部件并聯(lián)冗余,再與1、4部件串聯(lián)構(gòu)成。假設(shè)部件1、2、3的可靠度分別為0.90、0.70、0.70。若要求該系統(tǒng)的可靠度不低于0.75,則進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),分配給部
26、件4的可靠度至少應(yīng)為 (6) 。(6)A. B. C. D. 4. 在開發(fā)系統(tǒng)時(shí),如果用戶對系統(tǒng)的目標(biāo)不是很清楚,難以定義需求,這時(shí)最好使用(7)A. 原型法B. 瀑布模型C. V-模型D. 螺旋模型5. (8) 不需要登記或標(biāo)注版權(quán)標(biāo)記就能得到保護(hù)。(8)A. 專利權(quán) B. 商標(biāo)權(quán) C. 著作權(quán) D. 財(cái)產(chǎn)權(quán)6. 已經(jīng)發(fā)布實(shí)施的現(xiàn)有標(biāo)準(zhǔn)(包括已確認(rèn)或修改補(bǔ)充的標(biāo)準(zhǔn)),經(jīng)過實(shí)施一定時(shí)期后,對其內(nèi)容再次審查,以確保其有效性、先進(jìn)性和適用性,其周期一般不超過 (9) 年。(9)A. 1 B. 3 C. 5 D. 77. 在下圖所示的樹型文件系統(tǒng)中,方框表示目錄,圓圈表示文件,“/” 表示路徑中的分
27、隔符,“/”在路徑之首時(shí)表示根目錄。圖中, (10) 。D1D2D1D2W2W1f1f2f2W3f4f1(10)A. 子目錄W2中文件f2和子目錄D2中文件f2是完全相同的B. 子目錄W2中文件f2和子目錄D2中文件f2是不相同的C. 子目錄W2中文件f2和子目錄D2中文件f2可能相同也可能不相同D. 樹型文件系統(tǒng)中不允許出現(xiàn)相同名字的文件8. 假設(shè)當(dāng)前目錄是D1,進(jìn)程A以如下兩種方式打開文件f1。方式 fd1=open( (11) /f1,o_RDONLY); 方式 fd1=open(/D1/W1/f1,o_RDONLY); 其中,方式的工作效率比方式的工作效率高,因?yàn)椴捎梅绞降奈募到y(tǒng) (
28、12) 。(11)A. /D1/W1B. D1/W1C. W1 D. f1(12)A. 可以直接訪問根目錄下的文件f1B. 可以從當(dāng)前路徑開始查找需要訪問的文件f1C. 只需要訪問一次磁盤,就可以讀取文件f1,而方式需要二次D. 只需要訪問一次磁盤,就可以讀取文件f1,而方式需要三次9. 在活動(dòng)圖中,結(jié)點(diǎn)表示項(xiàng)目中各個(gè)工作階段的里程碑,連接各個(gè)結(jié)點(diǎn)的邊表示活動(dòng),邊上的數(shù)字表示活動(dòng)持續(xù)的時(shí)間。在下面的活動(dòng)圖中,從A到J的關(guān)鍵路徑是 ,關(guān)鍵路徑的長度是 (13)A. ABEGJB. ADFHJC. ACFGJD. ADFIJ(14)A. 22B. 49C. 19D. 35(15)A. 10B. 1
29、2C. 13D. 1510. 一個(gè)故障已經(jīng)被發(fā)現(xiàn),而且也被排除了,為了檢查修改是否引起了其它故障,這時(shí)應(yīng)該進(jìn)行(16)A. 程序走查B. 退化測試C. 軟件評審D. 接收測試11. 下面關(guān)于編程語言的各種說法中, (17) 是正確的。(17)A. 由于C語言程序是由函數(shù)構(gòu)成的,因此它是一種函數(shù)型語言B. Smalltalk、C+、Java、C#都是面向?qū)ο笳Z言C. 函數(shù)型語言適用于編寫處理高速計(jì)算的程序,常用于超級計(jì)算機(jī)的模擬計(jì)算D. 邏輯型語言是在Client/Server系統(tǒng)中用于實(shí)現(xiàn)負(fù)載分散的程序語言12. 在面向?qū)ο蟮恼Z言中, (18) 。(18)A. 類的實(shí)例化是指對類的實(shí)例分配存儲(chǔ)
30、空間B. 每個(gè)類都必須創(chuàng)建一個(gè)實(shí)例C. 每個(gè)類只能創(chuàng)建一個(gè)實(shí)例D. 類的實(shí)例化是指對類進(jìn)行初始化13. 在統(tǒng)一建模語言(UML)中,(19)用于描述系統(tǒng)與外部系統(tǒng)及用戶之間的交互。(19)A. 類圖B. 用例圖C. 對象圖D. 協(xié)作圖14統(tǒng)一過程(UP)是一種用例驅(qū)動(dòng)的迭代式增量開發(fā)過程,每次迭代過程中主要的工作流包括捕獲需求、分析、設(shè)計(jì)、實(shí)現(xiàn)和測試等。這種軟件過程的用例圖(Use Case Diagram)是通過 (20) 得到的。(20)A. 捕獲需求B. 分析C.設(shè)計(jì)D. 實(shí)現(xiàn)15. (21) 表示了系統(tǒng)與參與者之間的接口。在每一個(gè)用例中,該對象從參與者處收集信息,并將之轉(zhuǎn)換為一種被實(shí)體
31、對象和控制對象使用的形式。(21)A. 邊界對象B. 可視化對象C. 抽象對象D. 實(shí)體對象16. 在UML語言中,下圖中的a、b、c三種圖形符號(hào)按照順序分別表示 (22) 。 a b c(22)A. 邊界對象、實(shí)體對象、控制對象B. 實(shí)體對象、邊界對象、控制對象 C. 控制對象、實(shí)體對象、邊界對象D. 邊界對象、控制對象、實(shí)體對象17. 在下面的用例圖(UseCase Diagram)中,X1、X2和X3表示 (23) ,已知UC3是抽象用例,那么X1可通過 (24) 用例與系統(tǒng)進(jìn)行交互。并且,用例 (25) 是UC4的可選部分,用例 (26) 是UC4的必須部分。(23)A. 人B. 系統(tǒng)
32、 C. 參與者D. 外部軟件(24)A. UC4、UC1B. UC5、UC1C. UC5、UC2D. UC1、UC2(25)A. UC1B. UC2C. UC3D. UC5(26)A. UC1B. UC2 C. UC3D. UC518. (27)設(shè)計(jì)模式定義了對象間的一種一對多的依賴關(guān)系,以便當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對象都得到通知并自動(dòng)刷新。(27)A. Adapter(適配器)B. Iterator(迭代器)C. Prototype(原型)D. Observer(觀察者)19. UML中有多種類型的圖,其中, (28) 對系統(tǒng)的使用方式進(jìn)行分類, (29) 顯示了類及其相互
33、關(guān)系, (30) 顯示人或?qū)ο蟮幕顒?dòng),其方式類似于流程圖,通信圖顯示在某種情況下對象之間發(fā)送的消息, (31) 與通信圖類似,但強(qiáng)調(diào)的是順序而不是連接。(28)A. 用例圖 B. 順序圖C. 類圖D. 活動(dòng)圖(29)A. 用例圖 B. 順序圖C. 類圖 D. 活動(dòng)圖(30)A. 用例圖 B. 順序圖C. 類圖 D. 活動(dòng)圖(31)A. 用例圖 B. 順序圖C. 類圖 D. 活動(dòng)圖20. (32) analysis emphasizes the drawing of pictorial system models to document and validate both existing an
34、d/or proposed systems. Ultimately, the system models become the (33) for designing and constructing an improved system. (34) is such a technique. The emphasis in this technique is process-centered. Systems analysts draw a series of process models called (35) . (36) is another such technique that int
35、egrates data and process concerns into constructs called objects.(32)A. PrototypingB. AcceleratedC. Model-drivenD. Iterative(33)A.imageB. pictureC. layoutD. blueprint(34)A. Structured analysis B. Information EngineeringC. Discovery PrototypingD. Object-Oriented analysis(35)A.PERTB. DFDC. ERDD. UML(3
36、6)A. Structured analysis B. Information EngineeringC. Discovery PrototypingD. Object-Oriented analysis考試科目2:軟件設(shè)計(jì)(樣題)試題一(15分)閱讀以下說明和數(shù)據(jù)流圖,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。【說明】學(xué)生住宿服務(wù)系統(tǒng)幫助學(xué)生在就學(xué)的城市內(nèi)找到所需的住房,系統(tǒng)對出租的房屋信息、房主信息、需要租房的學(xué)生信息以及學(xué)生和房主的會(huì)面信息進(jìn)行管理和維護(hù)。房主信息包括姓名、地址、電話號(hào)碼以及系統(tǒng)分配的唯一身份標(biāo)識(shí)(ID)和密碼;房屋信息包括房屋地址、類型(單間/套間)、適合住宿的人
37、數(shù)、房租、房主的ID以及現(xiàn)在是否可以出租(例如由于裝修原因,需等到裝修后才可出租或者房屋已被租出)。每當(dāng)房屋信息發(fā)生變化時(shí),房主須通知系統(tǒng),系統(tǒng)將更新房屋文件以便學(xué)生能夠獲得準(zhǔn)確的可租用房屋信息。房主向系統(tǒng)中加入可租用的房屋信息時(shí),需交納一定的費(fèi)用,由系統(tǒng)自動(dòng)給出費(fèi)用信息。房主可隨時(shí)更新房屋的各種屬性。學(xué)生可通過系統(tǒng)查詢現(xiàn)有的可租用的房屋,但必須先在系統(tǒng)中注冊。學(xué)生信息包括姓名、現(xiàn)住址、電話號(hào)碼、出生日期、性別以及系統(tǒng)分配的唯一身份標(biāo)識(shí)(ID)和密碼。若學(xué)生希望租用某房屋,則需要發(fā)出租房請求,請求中包含房屋的詳細(xì)信息,系統(tǒng)將安排學(xué)生與房主會(huì)面的時(shí)間和地點(diǎn),并將會(huì)面信息通知學(xué)生和房主,會(huì)面信息包
38、括會(huì)面時(shí)間、地點(diǎn)以及會(huì)面雙方的基本信息,系統(tǒng)將記錄會(huì)面信息。學(xué)生住宿服務(wù)系統(tǒng)的頂層圖如圖1-1所示;學(xué)生住宿服務(wù)系統(tǒng)的第0層DFD圖如圖1-2所示,其中,架構(gòu)3的細(xì)化圖如圖1-3所示?!締栴}1】(6分)(1) 數(shù)據(jù)流圖1-1缺少了一條數(shù)據(jù)流(在圖1-2中也未給出該數(shù)據(jù)流),請給出此數(shù)據(jù)流的起點(diǎn)和終點(diǎn),并采用說明中的詞匯給出此數(shù)據(jù)流名。(2) 數(shù)據(jù)流圖1-2中缺少了與“查詢房屋”加工相關(guān)的數(shù)據(jù)流,請指出此數(shù)據(jù)流的起點(diǎn)和終點(diǎn)。【問題2】(4分)“安排會(huì)面”加工除需要寫入會(huì)面文件外,還需要訪問哪些文件?【問題3】(5分)請補(bǔ)齊下列數(shù)據(jù)字典條目:登錄信息學(xué)生ID + 密碼注冊信息 圖1-1 學(xué)生住宿服
39、務(wù)頂層圖學(xué)生的會(huì)面通知1學(xué)生的會(huì)面通知1添加房屋房屋文件房主文件新房屋新房主添加的新房屋2修改房屋狀態(tài)房屋狀態(tài)5安排會(huì)面房主的會(huì)面通知學(xué)生文件4查詢房屋學(xué)生ID查看房屋請求可租用的房屋租房請求會(huì)面信息會(huì)面文件注冊信息3身份驗(yàn)證學(xué)生信息學(xué)生ID更新房屋信息圖1-2 學(xué)生住宿服務(wù)第0層圖DFD圖3.2登錄3.13.2登錄3.1注冊注冊信息登錄信息新學(xué)生標(biāo)志學(xué)生ID注冊信息注冊信息學(xué)生ID試題二(共15分) 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】某醫(yī)院的門診管理系統(tǒng)實(shí)現(xiàn)了為患者提供掛號(hào)、處方藥品收費(fèi)的功能。具體的需求及設(shè)計(jì)如下:(1)醫(yī)院醫(yī)師具有編號(hào), 姓名, 科室,
40、 職稱, 出診類型和出診費(fèi)用,其中出診類型分為專家門診和普通門診,與醫(yī)師職稱無關(guān);各個(gè)醫(yī)師可以具有不同的出診費(fèi)用,與職稱和出診類型無關(guān)。(2)患者首先在門診掛號(hào)處掛號(hào),選擇科室和醫(yī)師,根據(jù)選擇的醫(yī)師繳納掛號(hào)費(fèi)(醫(yī)師出診費(fèi))。收銀員為患者生成掛號(hào)單,如表2-1所示,其中,就診類型為醫(yī)師的出診類型。表2-1 XX醫(yī)院門診掛號(hào)單收銀員:13011 時(shí)間:2007年2月1日08:58就診號(hào)姓名科室醫(yī)師就診類型掛號(hào)費(fèi)20070205015葉萌內(nèi)科楊玉明專家門診5元(3)患者在醫(yī)師處就診后,憑借掛號(hào)單和醫(yī)師手寫處方到門診藥房交費(fèi)買藥。收銀員根據(jù)就診號(hào)和醫(yī)師處方中開列的藥品信息,查詢藥品庫(如表2-2所示)
41、并生成門診處方單(如表2-3所示)。表2-2 藥品庫藥品編碼藥品名稱類型庫存貨架編號(hào)單位規(guī)格單價(jià)12007牛蒡子中藥51590B1401G炒0.034011090百部中藥36950B1523G片0.0313表2-3 XX醫(yī)院門診處方單 時(shí)間:2007年2月1日10:31就診號(hào)20070205015病人姓名葉萌醫(yī)師姓名楊玉明金額總計(jì)0.65項(xiàng)目總計(jì)2收銀員21081藥品編碼藥品名稱數(shù)量單位單價(jià)金額(元)12007牛蒡子10G0.03400.3411090百部10G0.03130.31(4)由于藥品價(jià)格會(huì)發(fā)生變化,因此,門診管理系統(tǒng)必須記錄處方單上藥品的單價(jià)。根據(jù)需求階段收集的信息,設(shè)計(jì)的實(shí)體聯(lián)系
42、圖和關(guān)系模式(不完整)如下所示:(1)實(shí)體聯(lián)系圖 (2)(2)(3)(4)(1)*1掛號(hào)單門診處方藥品庫存醫(yī)師收銀員開處方收費(fèi)明細(xì)數(shù)量單價(jià)圖2-1 實(shí)體聯(lián)系圖2關(guān)系模式掛號(hào)單(就診號(hào), 病患姓名, 醫(yī)師編號(hào), 時(shí)間, (5) )收銀員(編號(hào), 姓名, 級別)醫(yī)師(編號(hào), 姓名, 科室, 職稱, 出診類型, 出診費(fèi)用)門診處方 ( (6) , 收銀員, 時(shí)間 )處方明細(xì)(就診號(hào), (7) )藥品庫 (藥品編碼, 藥品名稱, (8) )【問題1】(4 分)根據(jù)問題描述,填寫2-1實(shí)體聯(lián)系圖中(1) (4)處聯(lián)系的類型。 【問題2】(4分)圖2-1中還缺少幾個(gè)聯(lián)系?請指出每個(gè)聯(lián)系兩端的實(shí)體名,格式如
43、下:實(shí)體1:實(shí)體2例如,收銀員與門診處方之間存在聯(lián)系,表示為:收銀員:門診處方 或 門診處方:收銀員【問題3】(7分)根據(jù)實(shí)體聯(lián)系圖2-1,填寫掛號(hào)單、門診處方、處方明細(xì)和藥品庫關(guān)系模式中的空(5)(8)處,并指出掛號(hào)單、門診處方和處方明細(xì)關(guān)系模式的主鍵。試題三(共15分)閱讀以下說明和圖,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】S公司開辦了在線電子商務(wù)網(wǎng)站,主要為各注冊的商家提供在線商品銷售功能。為更好地吸引用戶,S公司計(jì)劃為注冊的商家提供商品(Commodity)促銷(Promotion)功能。商品的分類(Category)不同,促銷的方式和內(nèi)容會(huì)有所不同。注冊商家可發(fā)布促
44、銷信息。商家首先要在自己所銷售的商品的分類中,選擇促銷涉及的某一具體分類,然后選出該分類的一個(gè)或多個(gè)商品(一種商品僅僅屬于一種分類),接著制定出一個(gè)比較優(yōu)惠的折扣政策和促銷活動(dòng)的優(yōu)惠時(shí)間,最后由系統(tǒng)生成促銷信息并將該促銷信息公布在網(wǎng)站上。商家發(fā)布促銷信息后,網(wǎng)站的注冊用戶便可通過網(wǎng)站購買促銷商品。用戶可選擇參與某一個(gè)促銷(Promotion)活動(dòng),并選擇具體的促銷商品(Commodity),輸入購買數(shù)量等購買信息。系統(tǒng)生成相應(yīng)的一份促銷訂單(POrder)。只要用戶在優(yōu)惠活動(dòng)的時(shí)間范圍內(nèi),通過網(wǎng)站提供的在線支付系統(tǒng),確認(rèn)在線支付該促銷訂單(即完成支付),就可以優(yōu)惠的價(jià)格完成商品的購買活動(dòng),否則
45、該促銷訂單失效。系統(tǒng)采用面向?qū)ο蠓椒ㄩ_發(fā),系統(tǒng)中的類以及類之間的關(guān)系用UML類圖表示,圖3-1是該系統(tǒng)類圖中的一部分;系統(tǒng)的動(dòng)態(tài)行為采用UML序列圖表示,圖3-2是發(fā)布促銷的序列圖。(5)(3)(3)(6)(2)(4(4)(1)圖3-1 在線促銷系統(tǒng)部分類圖(7)(8)(9)(10)圖3-2 發(fā)布促銷序列圖【問題1】(6分)識(shí)別關(guān)聯(lián)的多重度是面向?qū)ο蠼_^程中的一個(gè)重要步驟。根據(jù)說明中給出的描述,完成圖3-1中的(1)(6)。【問題2】(4分)請從表3-1中選擇方法,完成圖3-2中的(7)(10)。表3-1 可選消息列表功能描述方法名向促銷訂單中添加所選的商品buyCommodities向促銷
46、中添加要促銷的商品addCommodities查找某個(gè)促銷的所有促銷訂單信息列表getPromotionOrders生成商品信息createCommodity查找某個(gè)分類中某商家的所有商品信息列表getCommodities生成促銷信息createPromotion生成促銷訂單信息createPOrder查找某個(gè)分類的所有促銷信息列表getCategoryPromotion查找某商家所銷售的所有分類列表getCategories查找某個(gè)促銷所涉及的所有商品信息列表getPromotionCommodities【問題3】(5分)關(guān)聯(lián)(Association)和聚集(Aggregation)是UM
47、L中兩種非常重要的關(guān)系。請說明關(guān)聯(lián)和聚集的關(guān)系,并說明其不同點(diǎn)。試題四(共15分)閱讀以下說明和圖,填補(bǔ)流程圖中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)。【說明】某汽車制造工廠有兩條裝配線。汽車裝配過程如圖4-1所示,即汽車底盤進(jìn)入裝配線,零件在多個(gè)工位裝配,結(jié)束時(shí)汽車自動(dòng)完成下線工作。圖4-1 汽車裝配線(1) e0和e1表示底盤分別進(jìn)入裝配線0和裝配線1所需要的時(shí)間。(2) 每條裝配線有n個(gè)工位,第一條裝配線的工位為S0,0, S0,1, , S0,n-1, 第二條裝配線的工位為S1,0, S1,1, , S1,n-1。其中S0,k和S1,k(0kn-1)完成相同的任務(wù),但所需時(shí)間可能不同。(3
48、) ai,j表示在工位Si,j處的裝配時(shí)間,其中i表示裝配線(i=0或i=1),j表示工位號(hào)(0jn-1)。(4) ti,j表示從Si,j處裝配完成后轉(zhuǎn)移到另一條裝配線下一個(gè)工位的時(shí)間。(5) x0和x1表示裝配結(jié)束后,汽車分別從裝配線0和裝配線1下線所需要的時(shí)間。(6) 在同一條裝配線上,底盤從一個(gè)工位轉(zhuǎn)移到其下一個(gè)工位的時(shí)間可以忽略不計(jì)。圖4-2所示的流程圖描述了求最短裝配時(shí)間的算法,該算法的輸入為:n:表示裝配線上的工位數(shù);ei: 表示e1和e2,i取值為0或1;aij:表示ai,j,i的取值為0或1,j的取值范圍為0n-1;tij:表示ti,j, i的取值為0或1,j的取值范圍為0n-
49、1;xi:表示x0和x1,i取值為0或1。算法的輸出為:fi:最短的裝配時(shí)間;li:獲得最短裝配時(shí)間的下線裝配線號(hào)(0或者1)。算法中使用的fij表示從開始點(diǎn)到Si,j處的最短裝配時(shí)間。圖4-2 求最短裝配時(shí)間算法C語言樣題【從試題五、六、七中任選一題】試題五(共15分)閱讀以下說明和C代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)。【說明】在一個(gè)簡化的繪圖程序中,支持的圖形種類有點(diǎn)(point)和圓(circle),在設(shè)計(jì)過程中采用面向?qū)ο笏枷?,認(rèn)為所有的點(diǎn)和圓都是一種圖形(shape),并定義了類型shape_t、point_t和circle_t分別表示基本圖形、點(diǎn)和圓,并且點(diǎn)和圓具
50、有基本圖形的所有特征。【C代碼】 typedef enum point,circle shape_type; /* 程序中的兩種圖形:點(diǎn)和圓 */typedef struct /* 基本的圖形類型 */shape_type type;/* 圖形種類標(biāo)識(shí):點(diǎn)或者圓 */void (*destroy)();/* 銷毀圖形操作的函數(shù)指針 */void (*draw)(); /* 繪制圖形操作的函數(shù)指針 */ shape_t; typedef struct shape_t common; int x; int y; point_t; /* 定義點(diǎn)類型,x、y為點(diǎn)坐標(biāo) */void destroyPoi
51、nt(point_t* this) free(this); printf(Point destoryed!n); /* 銷毀點(diǎn)對象 */void drawPoint(point_t* this) printf(P(%d,%d), this-x, this-y); /* 繪制點(diǎn)對象 */shape_t* createPoint(va_list* ap) /* 創(chuàng)建點(diǎn)對象,并設(shè)置其屬性 */point_t* p_point;if( (p_point = (point_t*)malloc(sizeof(point_t) = NULL ) return NULL;p_point-common.type
52、 = point; p_point-common.destroy = destroyPoint;p_point-common.draw = drawPoint;p_point-x = va_arg(*ap, int); /* 設(shè)置點(diǎn)的橫坐標(biāo) */p_point-y = va_arg(*ap, int); /* 設(shè)置點(diǎn)的縱坐標(biāo) */return (shape_t*)p_point; /* 返回點(diǎn)對象指針 */ typedef struct /* 定義圓類型 */shape_t common; point_t *center; /* 圓心點(diǎn) */ int radius; /* 圓半徑 */ cir
53、cle_t;void destroyCircle(circle_t* this) free( (1) ); free(this); printf(Circle destoryed!n); void drawCircle(circle_t* this) printf(C(); (2) .draw( this-center ); /* 繪制圓心 */printf(,%d), this-radius);shape_t* createCircle(va_list* ap) /* 創(chuàng)建一個(gè)圓,并設(shè)置其屬性 */circle_t* p_circle; if( (p_circle = (circle_t*)
54、malloc(sizeof(circle_t) = NULL ) return NULL;p_circle-common.type = circle; p_circle-common.destroy = destroyCircle;p_circle-common.draw = drawCircle; (3) = createPoint(ap); /* 設(shè)置圓心 */p_circle-radius = va_arg(*ap, int); /* 設(shè)置圓半徑 */return p_circle; shape_t* createShape(shape_type st, .) /* 創(chuàng)建某一種具體的圖形
55、 */va_list ap; /* 可變參數(shù)列表 */shape_t* p_shape = NULL; (4) (ap, st); if( st = point )p_shape = createPoint( &ap); /* 創(chuàng)建點(diǎn)對象 */if( st = circle )p_shape = createCircle(&ap); /* 創(chuàng)建圓對象 */va_end(ap); return p_shape; int main( ) int i; /* 循環(huán)控制變量,用于循環(huán)計(jì)數(shù) */shape_t* shapes2; /* 圖形指針數(shù)組,存儲(chǔ)圖形的地址 */shapes0 = createS
56、hape( point, 2, 3); /* 橫坐標(biāo)為2,縱坐標(biāo)為3 */shapes1 = createShape( circle, 20, 40, 10); /* 圓心坐標(biāo)(20,40),半徑為10 */for(i=0; idraw(shapesi); printf(n); /* 繪制數(shù)組中圖形 */for( i = 1; i = 0; i- ) shapesi-destroy(shapesi); /* 銷毀數(shù)組中圖形 */return 0;【運(yùn)行結(jié)果】P(2,3) (5) Circle destoryed!Point destoryed!C+語言樣題【從試題五、六、七中任選一題】試題六(
57、共15分)閱讀下列說明和C+代碼,將應(yīng)填入 (n) 處的字句寫在答題紙的對應(yīng)欄內(nèi)。【說明】某游戲公司現(xiàn)欲開發(fā)一款面向兒童的模擬游戲,該游戲主要模擬現(xiàn)實(shí)世界中各種鴨子的發(fā)聲特征、飛行特征和外觀特征。游戲需要模擬的鴨子種類及其特征如表6-1所示:表6-1鴨子種類發(fā)聲特征飛行特征外觀特征灰鴨(MallardDuck)發(fā)出“嘎嘎”聲(Quack)用翅膀飛行(FlyWithWings)灰色羽毛紅頭鴨(RedHeadDuck)發(fā)出“嘎嘎”聲(Quack)用翅膀飛行(FlyWithWings)灰色羽毛、頭部紅色棉花鴨(CottonDuck)不發(fā)聲(QuackNoWay)不能飛行(FlyNoWay)白色橡皮鴨
58、(RubberDuck)發(fā)出橡皮與空氣摩擦的聲(Squeak)不能飛行(FlyNoWay)黑白橡皮顏色為支持將來能夠模擬更多種類鴨子的特征,采用策略設(shè)計(jì)模式(Strategy)設(shè)計(jì)的類圖如圖6-1所示:圖6-1其中,Duck為抽象類,描述了抽象的鴨子,而類RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分別描述具體的鴨子種類,方法fly()、quack()和display()分別表示不同種類的鴨子都具有飛行特征、發(fā)聲特征和外觀特征;類FlyBehavior與QuackBehavior為抽象類,分別用于表示抽象的飛行行為與發(fā)聲行為;類FlyNoWay與F
59、lyWithWings分別描述不能飛行的行為和用翅膀飛行的行為;類Quack、Squeak與QuackNoWay分別描述發(fā)出“嘎嘎”聲的行為、發(fā)出橡皮與空氣摩擦聲的行為與不發(fā)聲的行為。請?zhí)钛a(bǔ)以下代碼中的空缺?!綜+代碼】#includeusing namespace (1);class FlyBehavior public : (2) fly() = 0; class QuackBehavior public:(3) quack() = 0;class FlyWithWings:public FlyBehaviorpublic:void fly() cout 使用翅膀飛行 ! endl; ;class FlyNoWay:public FlyBehaviorpublic:void fly() cout 不能飛行 ! endl; ;class Quack:public QuackBehaviorpublic:void quack() cout 發(fā)出嘎嘎聲 ! endl; ;class Squeak:public QuackBehaviorpublic:void quack() cout 發(fā)出空氣與橡皮摩擦
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高效吸收的2025年入團(tuán)考試試題及答案
- 購房合同增加協(xié)議書
- 綠化種植用工協(xié)議書
- 空地改造合作協(xié)議書
- 貨源轉(zhuǎn)讓合同協(xié)議書
- 童書配送合作協(xié)議書
- 草地草坪出售協(xié)議書
- 苗木移植補(bǔ)償協(xié)議書
- 窯爐安裝合同協(xié)議書
- 職工繼續(xù)教育協(xié)議書
- 【MOOC】國際交英文寫作-湖南大學(xué) 中國大學(xué)慕課MOOC答案
- 國家八年級數(shù)學(xué)質(zhì)量測試題(六套)
- GB/T 13477.8-2017建筑密封材料試驗(yàn)方法第8部分:拉伸粘結(jié)性的測定
- 公司刀模檢驗(yàn)記錄表
- 四年級英語下unit5sport課件
- 重大活動(dòng)公共衛(wèi)生安全監(jiān)督保障課件
- 監(jiān)控施工報(bào)價(jià)單
- 電解質(zhì)溶液導(dǎo)電性影響因素的探究
- 餐飲油煙污染防治承諾書
- GB∕T 13554-2020 高效空氣過濾器
- 幼兒園環(huán)境創(chuàng)設(shè)評分表
評論
0/150
提交評論