軟件設計師題型舉例_第1頁
軟件設計師題型舉例_第2頁
軟件設計師題型舉例_第3頁
軟件設計師題型舉例_第4頁
軟件設計師題型舉例_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PAGE PAGE 21三、題型舉例(一)選擇題1. 某系統的可靠性結構框圖如下圖所示。該系統由4個部件組成,其中2、3兩部件并聯冗余,再與1、4部件串聯構成。假設部件1、2、3的可靠度分別為0.90、0.70、0.70。若要求該系統的可靠度不低于0.75,則進行系統設計時,分配給部件4的可靠度至少應為 (1) 。(1)A. B. C. D. 2. 結構化開發方法中,數據流圖是 (2) 階段產生的成果。(2)A. 需求分析 B. 總體設計 C. 詳細設計 D. 程序編碼3. 在進行面向對象設計時,采用設計模式能夠(3)。(3)A. 復用相似問題的相同解決方案B. 改善代碼的平臺可移植性C. 改

2、善代碼的可理解性D. 增強軟件的易安裝性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(二)問答題試題一 軟件設計必做樣題閱讀下列說明以及圖1-1和圖1-2,回答問題1、問題2和問題3,將解答填入答題紙的對應欄內。說明某電話公

5、司決定開發一個管理所有客戶信息的交互式網絡系統。系統的功能如下:1.瀏覽客戶信息:任何使用Internet的網絡用戶都可以瀏覽電話公司所有的客戶信息(包括姓名、住址、電話號碼等)。2.登錄:電話公司授予每個客戶一個帳號。擁有授權帳號的客戶,可以使用系統提供的頁面設置個人密碼,并使用該帳號和密碼向系統注冊。3.修改個人信息:客戶向系統注冊后,可以發送電子郵件或者使用系統提供的頁面,對個人信息進行修改。4.刪除客戶信息:只有公司的管理人員才能刪除不再接受公司服務的客戶的信息。系統采用面向對象方法進行開發,在開發過程中認定出的類如下表所示:編號類名描述1InternetClient網絡用戶2Cust

6、omerList客戶信息表,記錄公司所有客戶的信息3Customer客戶信息,記錄單個客戶的信息4CompanyCustomer公司客戶5InternalClient公司的管理人員網絡用戶網絡用戶公司客戶管理人員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)描述系統功能需求,如圖1-1所示。請指出圖中的A、B、C和D分別是哪個用例?【問題2】在UML中,重復度(Multiplicity)定義了某個類的一個實例可以與另一個類的多少個實例相關聯。通常把它寫成一個表示取

9、值范圍的表達式或者一個具體的值。例如圖3-2中的類InternetClient和CustomerList,InternetClient端的“0.*”表示:一個CustomerList的實例可以與0個或多個InternetClient的實例相關聯;CustomerList端的“1”表示:一個InternetClient的實例只能與一個CustomerList的實例相關。請指出圖1-2中(1)到(4)處的重復度分別為多少?【問題3】類通常不會單獨存在,因此當對系統建模時,不僅要識別出類,還必須對類之間的相互關系建模。在面向對象建模中,提供了四種關系:依賴(dependency)、概括(genera

10、lization)、關聯(association)和聚集(aggregation)。請分別說明這四種關系的含義,并說明關聯和聚集之間的主要區別。試題二 C語言選做樣題閱讀以下預備知識、函數說明和C代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內?!绢A備知識】(1)對給定的字符集合及相應的權值,采用哈夫曼算法構造最優二叉樹,并用結構數組存儲最優二叉樹。例如,給定字符集合a,b,c,d及其權值2、7、4、5,可構造如下所示的最優二叉樹和相應的結構數組Ht(數組元素Ht0不用)。b b d a c 010011最優二叉樹數組下標chweightparentlchildrchild1a25002b

11、77003c45004d560056613611745718026 結構數組Ht結構數組Ht的類型定義如下:#define MAXLEAFNUM 20struct nodechar ch; /*當前結點表示的字符,對于非葉子結點,此域不用*/int weight; /*當前結點的權值*/ int parent; /*當前結點的父結點的下標,為0時表示無父結點*/ int lchild,rchild; /*當前結點的左、右孩子結點的下標,為0時表示無對應的孩子結點*/Ht2*MAXLEAFNUM;(2)用0或1標識最優二叉樹中分支的規則是:從一個結點進入其左(右)孩子結點,就用0(1)標識該分支

12、(示例見上圖)。(3)若用上述規則標識最優二叉樹的每條分支后,從根結點開始到葉子結點為止,按經過分支的次序,將相應標識依次排列,可得到由0、1組成的一個序列,稱此序列為該葉子結點的前綴編碼。例如上圖所示的葉子結點a、b、c、d的前綴編碼分別是110、0、111、10?!竞瘮嫡f明】函數void LeafCode(int root,int n)的功能是:采用非遞歸方法,遍歷最優二叉樹的全部葉子結點,為所有的葉子結點構造前綴編碼。其中形參root為最優二叉樹的根結點下標;形參n為葉子結點個數。在構造過程中,將Htp.weight域用作被遍歷結點的遍歷狀態標志?!竞瘮怠縞har *Hc;void Le

13、afCode(int root,int n) /*為最優二叉樹中的n個葉子結點構造前綴編碼,root是樹的根結點下標*/int i, p = root, cdlen = 0; char code20; Hc = (char *)malloc(n+1)*sizeof(char *); /*申請字符指針數組*/ for(i = 1; i = p; +i) Hti.weight = 0; /*遍歷最優二叉樹時用作被遍歷結點的狀態標志*/while(p) /*以非遞歸方法遍歷最優二叉樹,求樹中每個葉子結點的編碼*/if(Htp.weight = 0) /*向左*/ Htp.weight = 1; if

14、 (Htp.lchild != 0) p = Htp.lchild; codecdlen+ = 0; else if (Htp.rchild = 0) /*若是葉子結點,則保存其前綴編碼*/ 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) ; /*退回父結點*/ /*while結束*/【函數說明】函數void Decode(char *buff,int root)的功能是:將前綴編碼序列翻譯成葉子結點的字符序列,并輸出。其中形參root為最優二叉樹的根結點下標;形參buff指向前綴編碼序列?!竞瘮怠縱oid Decode(char *buff, int root) int pre = root, p;while (*buff != 0) p = root; while (p != 0) /*存在下標為p的結點*/ pre = p; if ( (4) ) p = Htp.lchild; /*進

16、入左子樹*/ else p = Htp.rchild; /*進入右子樹*/ buff+; /*指向前綴編碼序列的下一個字符*/ (5) ;printf(%c, Htpre.ch); 試題三 C+語言選做樣題閱讀以下說明和C+代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內?!菊f明】在一公文處理系統中,開發者定義了一個公文類OfficeDoc,其中定義了公文具有的屬性和處理公文的相應方法。當公文的內容或狀態發生變化時,關注此OfficeDoc類對象的相應的DocExplorer對象都要更新其自身的狀態。一個OfficeDoc對象能夠關聯一組DocExplorer對象。當OfficeDoc對象

17、的內容或狀態發生變化時,所有與之相關聯的DocExplorer對象都將得到通知,這種應用被稱為觀察者模式。以下代碼寫在一個C+源文件中,能夠正確編譯通過?!綜+代碼】#include const OBS_MAXNUM=20; / (1) ;class DocExplorer /關注OfficeDoc公文對象的類public:DocExplorer ( (2) *doc); /構造函數 (3) void update(OfficeDoc *doc)=0; /其它相關屬性和方法省略;class OfficeDoc /公文類private:DocExplorer *myObsOBS_MAXNUM;

18、/關注此公文類的DocExplorer類對象指針數組int index; /與OfficeDoc對象關聯的DocExplorer對象的個數public:OfficeDoc()index=0;void attach(DocExplorer *o) /將一DocExplorer對象與OfficeDoc對象相關聯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對象的關聯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對象更改自身狀態for(int loop = 0; loop (4) ; /DocExplorer對象更新自身狀態/其它公文類的相關屬性和方法

20、;DocExplorer:DocExplorer(OfficeDoc *doc) /DocExplorer類對象的構造函數doc- (5) ; /試題四 Java語言選做樣題閱讀以下說明和Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。【說明】在一公文處理系統中,開發者定義了一個公文類OfficeDoc,其中定義了公文具有的屬性和處理公文的相應方法。當公文的內容或狀態發生變化時,關注此OfficeDoc類對象的相應的DocExplorer對象都要更新其自身的狀態。一個OfficeDoc對象能夠關聯一組DocExplorer對象。當OfficeDoc對象的內容或狀態發生變化時,所有

21、與之相關聯的DocExplorer對象都將得到通知,這種應用被稱為觀察者模式。以下代碼采用Java語言實現,能夠正確編譯通過?!綣ava 代碼】/ 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類實現Subject接口private Vector ObserverVector = new java.util.Vector();/ 存儲與OfficeDoc相關聯的DocExplorer對象public void attach(Observer observer) /將某DocExplorer對象與OfficeDoc相關聯ObserverVector.addElement(observer);public void detach(Observer obs

23、erver)/解除某DocExplorer對象與OfficeDoc的關聯關系ObserverVector.removeElement(observer);public void notifyObservers()/當OfficeDoc對象狀態已發生變化時,通知所有的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自身的狀態,代碼省略 三、題型舉例考試科目1:計算機與軟件工程知識(樣題)1. 在計算機中,最適合進行數字加減運算的數字編碼是 (1) ,最適合表示浮點數階碼的數字編碼是 (2) 。 (1)A. 原碼 B. 反碼 C. 補碼 D. 移碼 (2)A. 原碼 B. 反碼 C. 補碼 D. 移碼2. 操作數所處的位置,可以決定指令的尋址方式。

25、操作數包含在指令中,尋址方式為 (3) ;操作數在寄存器中,尋址方式為 (4) ;操作數的地址在寄存器中,尋址方式為 (5) 。 (3)A. 立即尋址 B. 直接尋址 C. 寄存器尋址 D. 寄存器間接尋址 (4)A. 立即尋址 B. 相對尋址 C. 寄存器尋址 D. 寄存器間接尋址 (5)A. 相對尋址 B. 直接尋址 C. 寄存器尋址 D. 寄存器間接尋址 3. 某系統的可靠性結構框圖如下圖所示。該系統由4個部件組成,其中2、3兩部件并聯冗余,再與1、4部件串聯構成。假設部件1、2、3的可靠度分別為0.90、0.70、0.70。若要求該系統的可靠度不低于0.75,則進行系統設計時,分配給部

26、件4的可靠度至少應為 (6) 。(6)A. B. C. D. 4. 在開發系統時,如果用戶對系統的目標不是很清楚,難以定義需求,這時最好使用(7)A. 原型法B. 瀑布模型C. V-模型D. 螺旋模型5. (8) 不需要登記或標注版權標記就能得到保護。(8)A. 專利權 B. 商標權 C. 著作權 D. 財產權6. 已經發布實施的現有標準(包括已確認或修改補充的標準),經過實施一定時期后,對其內容再次審查,以確保其有效性、先進性和適用性,其周期一般不超過 (9) 年。(9)A. 1 B. 3 C. 5 D. 77. 在下圖所示的樹型文件系統中,方框表示目錄,圓圈表示文件,“/” 表示路徑中的分

27、隔符,“/”在路徑之首時表示根目錄。圖中, (10) 。D1D2D1D2W2W1f1f2f2W3f4f1(10)A. 子目錄W2中文件f2和子目錄D2中文件f2是完全相同的B. 子目錄W2中文件f2和子目錄D2中文件f2是不相同的C. 子目錄W2中文件f2和子目錄D2中文件f2可能相同也可能不相同D. 樹型文件系統中不允許出現相同名字的文件8. 假設當前目錄是D1,進程A以如下兩種方式打開文件f1。方式 fd1=open( (11) /f1,o_RDONLY); 方式 fd1=open(/D1/W1/f1,o_RDONLY); 其中,方式的工作效率比方式的工作效率高,因為采用方式的文件系統 (

28、12) 。(11)A. /D1/W1B. D1/W1C. W1 D. f1(12)A. 可以直接訪問根目錄下的文件f1B. 可以從當前路徑開始查找需要訪問的文件f1C. 只需要訪問一次磁盤,就可以讀取文件f1,而方式需要二次D. 只需要訪問一次磁盤,就可以讀取文件f1,而方式需要三次9. 在活動圖中,結點表示項目中各個工作階段的里程碑,連接各個結點的邊表示活動,邊上的數字表示活動持續的時間。在下面的活動圖中,從A到J的關鍵路徑是 ,關鍵路徑的長度是 (13)A. ABEGJB. ADFHJC. ACFGJD. ADFIJ(14)A. 22B. 49C. 19D. 35(15)A. 10B. 1

29、2C. 13D. 1510. 一個故障已經被發現,而且也被排除了,為了檢查修改是否引起了其它故障,這時應該進行(16)A. 程序走查B. 退化測試C. 軟件評審D. 接收測試11. 下面關于編程語言的各種說法中, (17) 是正確的。(17)A. 由于C語言程序是由函數構成的,因此它是一種函數型語言B. Smalltalk、C+、Java、C#都是面向對象語言C. 函數型語言適用于編寫處理高速計算的程序,常用于超級計算機的模擬計算D. 邏輯型語言是在Client/Server系統中用于實現負載分散的程序語言12. 在面向對象的語言中, (18) 。(18)A. 類的實例化是指對類的實例分配存儲

30、空間B. 每個類都必須創建一個實例C. 每個類只能創建一個實例D. 類的實例化是指對類進行初始化13. 在統一建模語言(UML)中,(19)用于描述系統與外部系統及用戶之間的交互。(19)A. 類圖B. 用例圖C. 對象圖D. 協作圖14統一過程(UP)是一種用例驅動的迭代式增量開發過程,每次迭代過程中主要的工作流包括捕獲需求、分析、設計、實現和測試等。這種軟件過程的用例圖(Use Case Diagram)是通過 (20) 得到的。(20)A. 捕獲需求B. 分析C.設計D. 實現15. (21) 表示了系統與參與者之間的接口。在每一個用例中,該對象從參與者處收集信息,并將之轉換為一種被實體

31、對象和控制對象使用的形式。(21)A. 邊界對象B. 可視化對象C. 抽象對象D. 實體對象16. 在UML語言中,下圖中的a、b、c三種圖形符號按照順序分別表示 (22) 。 a b c(22)A. 邊界對象、實體對象、控制對象B. 實體對象、邊界對象、控制對象 C. 控制對象、實體對象、邊界對象D. 邊界對象、控制對象、實體對象17. 在下面的用例圖(UseCase Diagram)中,X1、X2和X3表示 (23) ,已知UC3是抽象用例,那么X1可通過 (24) 用例與系統進行交互。并且,用例 (25) 是UC4的可選部分,用例 (26) 是UC4的必須部分。(23)A. 人B. 系統

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)設計模式定義了對象間的一種一對多的依賴關系,以便當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并自動刷新。(27)A. Adapter(適配器)B. Iterator(迭代器)C. Prototype(原型)D. Observer(觀察者)19. UML中有多種類型的圖,其中, (28) 對系統的使用方式進行分類, (29) 顯示了類及其相互

33、關系, (30) 顯示人或對象的活動,其方式類似于流程圖,通信圖顯示在某種情況下對象之間發送的消息, (31) 與通信圖類似,但強調的是順序而不是連接。(28)A. 用例圖 B. 順序圖C. 類圖D. 活動圖(29)A. 用例圖 B. 順序圖C. 類圖 D. 活動圖(30)A. 用例圖 B. 順序圖C. 類圖 D. 活動圖(31)A. 用例圖 B. 順序圖C. 類圖 D. 活動圖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:軟件設計(樣題)試題一(15分)閱讀以下說明和數據流圖,回答問題1至問題3,將解答填入答題紙的對應欄內?!菊f明】學生住宿服務系統幫助學生在就學的城市內找到所需的住房,系統對出租的房屋信息、房主信息、需要租房的學生信息以及學生和房主的會面信息進行管理和維護。房主信息包括姓名、地址、電話號碼以及系統分配的唯一身份標識(ID)和密碼;房屋信息包括房屋地址、類型(單間/套間)、適合住宿的人

37、數、房租、房主的ID以及現在是否可以出租(例如由于裝修原因,需等到裝修后才可出租或者房屋已被租出)。每當房屋信息發生變化時,房主須通知系統,系統將更新房屋文件以便學生能夠獲得準確的可租用房屋信息。房主向系統中加入可租用的房屋信息時,需交納一定的費用,由系統自動給出費用信息。房主可隨時更新房屋的各種屬性。學生可通過系統查詢現有的可租用的房屋,但必須先在系統中注冊。學生信息包括姓名、現住址、電話號碼、出生日期、性別以及系統分配的唯一身份標識(ID)和密碼。若學生希望租用某房屋,則需要發出租房請求,請求中包含房屋的詳細信息,系統將安排學生與房主會面的時間和地點,并將會面信息通知學生和房主,會面信息包

38、括會面時間、地點以及會面雙方的基本信息,系統將記錄會面信息。學生住宿服務系統的頂層圖如圖1-1所示;學生住宿服務系統的第0層DFD圖如圖1-2所示,其中,架構3的細化圖如圖1-3所示。【問題1】(6分)(1) 數據流圖1-1缺少了一條數據流(在圖1-2中也未給出該數據流),請給出此數據流的起點和終點,并采用說明中的詞匯給出此數據流名。(2) 數據流圖1-2中缺少了與“查詢房屋”加工相關的數據流,請指出此數據流的起點和終點?!締栴}2】(4分)“安排會面”加工除需要寫入會面文件外,還需要訪問哪些文件?【問題3】(5分)請補齊下列數據字典條目:登錄信息學生ID + 密碼注冊信息 圖1-1 學生住宿服

39、務頂層圖學生的會面通知1學生的會面通知1添加房屋房屋文件房主文件新房屋新房主添加的新房屋2修改房屋狀態房屋狀態5安排會面房主的會面通知學生文件4查詢房屋學生ID查看房屋請求可租用的房屋租房請求會面信息會面文件注冊信息3身份驗證學生信息學生ID更新房屋信息圖1-2 學生住宿服務第0層圖DFD圖3.2登錄3.13.2登錄3.1注冊注冊信息登錄信息新學生標志學生ID注冊信息注冊信息學生ID試題二(共15分) 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內?!菊f明】某醫院的門診管理系統實現了為患者提供掛號、處方藥品收費的功能。具體的需求及設計如下:(1)醫院醫師具有編號, 姓名, 科室,

40、 職稱, 出診類型和出診費用,其中出診類型分為專家門診和普通門診,與醫師職稱無關;各個醫師可以具有不同的出診費用,與職稱和出診類型無關。(2)患者首先在門診掛號處掛號,選擇科室和醫師,根據選擇的醫師繳納掛號費(醫師出診費)。收銀員為患者生成掛號單,如表2-1所示,其中,就診類型為醫師的出診類型。表2-1 XX醫院門診掛號單收銀員:13011 時間:2007年2月1日08:58就診號姓名科室醫師就診類型掛號費20070205015葉萌內科楊玉明專家門診5元(3)患者在醫師處就診后,憑借掛號單和醫師手寫處方到門診藥房交費買藥。收銀員根據就診號和醫師處方中開列的藥品信息,查詢藥品庫(如表2-2所示)

41、并生成門診處方單(如表2-3所示)。表2-2 藥品庫藥品編碼藥品名稱類型庫存貨架編號單位規格單價12007牛蒡子中藥51590B1401G炒0.034011090百部中藥36950B1523G片0.0313表2-3 XX醫院門診處方單 時間:2007年2月1日10:31就診號20070205015病人姓名葉萌醫師姓名楊玉明金額總計0.65項目總計2收銀員21081藥品編碼藥品名稱數量單位單價金額(元)12007牛蒡子10G0.03400.3411090百部10G0.03130.31(4)由于藥品價格會發生變化,因此,門診管理系統必須記錄處方單上藥品的單價。根據需求階段收集的信息,設計的實體聯系

42、圖和關系模式(不完整)如下所示:(1)實體聯系圖 (2)(2)(3)(4)(1)*1掛號單門診處方藥品庫存醫師收銀員開處方收費明細數量單價圖2-1 實體聯系圖2關系模式掛號單(就診號, 病患姓名, 醫師編號, 時間, (5) )收銀員(編號, 姓名, 級別)醫師(編號, 姓名, 科室, 職稱, 出診類型, 出診費用)門診處方 ( (6) , 收銀員, 時間 )處方明細(就診號, (7) )藥品庫 (藥品編碼, 藥品名稱, (8) )【問題1】(4 分)根據問題描述,填寫2-1實體聯系圖中(1) (4)處聯系的類型。 【問題2】(4分)圖2-1中還缺少幾個聯系?請指出每個聯系兩端的實體名,格式如

43、下:實體1:實體2例如,收銀員與門診處方之間存在聯系,表示為:收銀員:門診處方 或 門診處方:收銀員【問題3】(7分)根據實體聯系圖2-1,填寫掛號單、門診處方、處方明細和藥品庫關系模式中的空(5)(8)處,并指出掛號單、門診處方和處方明細關系模式的主鍵。試題三(共15分)閱讀以下說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內。【說明】S公司開辦了在線電子商務網站,主要為各注冊的商家提供在線商品銷售功能。為更好地吸引用戶,S公司計劃為注冊的商家提供商品(Commodity)促銷(Promotion)功能。商品的分類(Category)不同,促銷的方式和內容會有所不同。注冊商家可發布促

44、銷信息。商家首先要在自己所銷售的商品的分類中,選擇促銷涉及的某一具體分類,然后選出該分類的一個或多個商品(一種商品僅僅屬于一種分類),接著制定出一個比較優惠的折扣政策和促銷活動的優惠時間,最后由系統生成促銷信息并將該促銷信息公布在網站上。商家發布促銷信息后,網站的注冊用戶便可通過網站購買促銷商品。用戶可選擇參與某一個促銷(Promotion)活動,并選擇具體的促銷商品(Commodity),輸入購買數量等購買信息。系統生成相應的一份促銷訂單(POrder)。只要用戶在優惠活動的時間范圍內,通過網站提供的在線支付系統,確認在線支付該促銷訂單(即完成支付),就可以優惠的價格完成商品的購買活動,否則

45、該促銷訂單失效。系統采用面向對象方法開發,系統中的類以及類之間的關系用UML類圖表示,圖3-1是該系統類圖中的一部分;系統的動態行為采用UML序列圖表示,圖3-2是發布促銷的序列圖。(5)(3)(3)(6)(2)(4(4)(1)圖3-1 在線促銷系統部分類圖(7)(8)(9)(10)圖3-2 發布促銷序列圖【問題1】(6分)識別關聯的多重度是面向對象建模過程中的一個重要步驟。根據說明中給出的描述,完成圖3-1中的(1)(6)。【問題2】(4分)請從表3-1中選擇方法,完成圖3-2中的(7)(10)。表3-1 可選消息列表功能描述方法名向促銷訂單中添加所選的商品buyCommodities向促銷

46、中添加要促銷的商品addCommodities查找某個促銷的所有促銷訂單信息列表getPromotionOrders生成商品信息createCommodity查找某個分類中某商家的所有商品信息列表getCommodities生成促銷信息createPromotion生成促銷訂單信息createPOrder查找某個分類的所有促銷信息列表getCategoryPromotion查找某商家所銷售的所有分類列表getCategories查找某個促銷所涉及的所有商品信息列表getPromotionCommodities【問題3】(5分)關聯(Association)和聚集(Aggregation)是UM

47、L中兩種非常重要的關系。請說明關聯和聚集的關系,并說明其不同點。試題四(共15分)閱讀以下說明和圖,填補流程圖中的空缺,將解答填入答題紙的對應欄內?!菊f明】某汽車制造工廠有兩條裝配線。汽車裝配過程如圖4-1所示,即汽車底盤進入裝配線,零件在多個工位裝配,結束時汽車自動完成下線工作。圖4-1 汽車裝配線(1) e0和e1表示底盤分別進入裝配線0和裝配線1所需要的時間。(2) 每條裝配線有n個工位,第一條裝配線的工位為S0,0, S0,1, , S0,n-1, 第二條裝配線的工位為S1,0, S1,1, , S1,n-1。其中S0,k和S1,k(0kn-1)完成相同的任務,但所需時間可能不同。(3

48、) ai,j表示在工位Si,j處的裝配時間,其中i表示裝配線(i=0或i=1),j表示工位號(0jn-1)。(4) ti,j表示從Si,j處裝配完成后轉移到另一條裝配線下一個工位的時間。(5) x0和x1表示裝配結束后,汽車分別從裝配線0和裝配線1下線所需要的時間。(6) 在同一條裝配線上,底盤從一個工位轉移到其下一個工位的時間可以忽略不計。圖4-2所示的流程圖描述了求最短裝配時間的算法,該算法的輸入為:n:表示裝配線上的工位數;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:最短的裝配時間;li:獲得最短裝配時間的下線裝配線號(0或者1)。算法中使用的fij表示從開始點到Si,j處的最短裝配時間。圖4-2 求最短裝配時間算法C語言樣題【從試題五、六、七中任選一題】試題五(共15分)閱讀以下說明和C代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內?!菊f明】在一個簡化的繪圖程序中,支持的圖形種類有點(point)和圓(circle),在設計過程中采用面向對象思想,認為所有的點和圓都是一種圖形(shape),并定義了類型shape_t、point_t和circle_t分別表示基本圖形、點和圓,并且點和圓具

50、有基本圖形的所有特征。【C代碼】 typedef enum point,circle shape_type; /* 程序中的兩種圖形:點和圓 */typedef struct /* 基本的圖形類型 */shape_type type;/* 圖形種類標識:點或者圓 */void (*destroy)();/* 銷毀圖形操作的函數指針 */void (*draw)(); /* 繪制圖形操作的函數指針 */ shape_t; typedef struct shape_t common; int x; int y; point_t; /* 定義點類型,x、y為點坐標 */void destroyPoi

51、nt(point_t* this) free(this); printf(Point destoryed!n); /* 銷毀點對象 */void drawPoint(point_t* this) printf(P(%d,%d), this-x, this-y); /* 繪制點對象 */shape_t* createPoint(va_list* ap) /* 創建點對象,并設置其屬性 */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); /* 設置點的橫坐標 */p_point-y = va_arg(*ap, int); /* 設置點的縱坐標 */return (shape_t*)p_point; /* 返回點對象指針 */ typedef struct /* 定義圓類型 */shape_t common; point_t *center; /* 圓心點 */ 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) /* 創建一個圓,并設置其屬性 */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); /* 設置圓心 */p_circle-radius = va_arg(*ap, int); /* 設置圓半徑 */return p_circle; shape_t* createShape(shape_type st, .) /* 創建某一種具體的圖形

55、 */va_list ap; /* 可變參數列表 */shape_t* p_shape = NULL; (4) (ap, st); if( st = point )p_shape = createPoint( &ap); /* 創建點對象 */if( st = circle )p_shape = createCircle(&ap); /* 創建圓對象 */va_end(ap); return p_shape; int main( ) int i; /* 循環控制變量,用于循環計數 */shape_t* shapes2; /* 圖形指針數組,存儲圖形的地址 */shapes0 = createS

56、hape( point, 2, 3); /* 橫坐標為2,縱坐標為3 */shapes1 = createShape( circle, 20, 40, 10); /* 圓心坐標(20,40),半徑為10 */for(i=0; idraw(shapesi); printf(n); /* 繪制數組中圖形 */for( i = 1; i = 0; i- ) shapesi-destroy(shapesi); /* 銷毀數組中圖形 */return 0;【運行結果】P(2,3) (5) Circle destoryed!Point destoryed!C+語言樣題【從試題五、六、七中任選一題】試題六(

57、共15分)閱讀下列說明和C+代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。【說明】某游戲公司現欲開發一款面向兒童的模擬游戲,該游戲主要模擬現實世界中各種鴨子的發聲特征、飛行特征和外觀特征。游戲需要模擬的鴨子種類及其特征如表6-1所示:表6-1鴨子種類發聲特征飛行特征外觀特征灰鴨(MallardDuck)發出“嘎嘎”聲(Quack)用翅膀飛行(FlyWithWings)灰色羽毛紅頭鴨(RedHeadDuck)發出“嘎嘎”聲(Quack)用翅膀飛行(FlyWithWings)灰色羽毛、頭部紅色棉花鴨(CottonDuck)不發聲(QuackNoWay)不能飛行(FlyNoWay)白色橡皮鴨

58、(RubberDuck)發出橡皮與空氣摩擦的聲(Squeak)不能飛行(FlyNoWay)黑白橡皮顏色為支持將來能夠模擬更多種類鴨子的特征,采用策略設計模式(Strategy)設計的類圖如圖6-1所示:圖6-1其中,Duck為抽象類,描述了抽象的鴨子,而類RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分別描述具體的鴨子種類,方法fly()、quack()和display()分別表示不同種類的鴨子都具有飛行特征、發聲特征和外觀特征;類FlyBehavior與QuackBehavior為抽象類,分別用于表示抽象的飛行行為與發聲行為;類FlyNoWay與F

59、lyWithWings分別描述不能飛行的行為和用翅膀飛行的行為;類Quack、Squeak與QuackNoWay分別描述發出“嘎嘎”聲的行為、發出橡皮與空氣摩擦聲的行為與不發聲的行為。請填補以下代碼中的空缺?!綜+代碼】#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 發出嘎嘎聲 ! endl; ;class Squeak:public QuackBehaviorpublic:void quack() cout 發出空氣與橡皮摩擦

溫馨提示

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

評論

0/150

提交評論