




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
試題一(15分)閱讀下列說明和圖,回答問題1至問題4。某醫(yī)療器械公司作為復雜醫(yī)療產(chǎn)品的集成商,必須保持高質(zhì)量部件的及時供應。為了實現(xiàn)這一目的,該公司欲開發(fā)一采購系統(tǒng)。系統(tǒng)的重要功能如下:1.檢查庫存水平。采購部門天天檢查部件庫存量,當特定部件的庫存量降至其訂貨點時,返回低存量部件及庫存量。2.下達采購訂單。采購部門針對低存量部件及庫存量提交采購請求,向其供應商(通過供應商文獻訪問供應商數(shù)據(jù))下達采購訂單,并存儲于采購訂單文獻中。3.交運部件。當供應商提交提單并交運部件時,運送和接受(S/R)部門通過執(zhí)行以下三步過程接受貨品:(1)驗證裝運部件。通過訪問采購訂單并將其與提單進行比較來驗證裝運的部件,并將提單信息發(fā)給S/R職工。假如收貨部件項目出現(xiàn)在采購訂單和提單上,則已驗證的提單和收貨部件項目將被送去檢查。否則,將S/R職工提交的裝運錯誤信息生成裝運錯誤告知發(fā)送給供應商。(2)檢查部件質(zhì)量。通過訪問質(zhì)量標準來檢查裝運部件的質(zhì)量,并將己驗證的提單發(fā)給檢查員。假如部件滿足所有質(zhì)量標準,則將其添加到接受的部件列表用于更新部件庫存。假如部件未通過檢查,則將檢查員創(chuàng)建的缺陷裝運信息生成缺陷裝運告知發(fā)送給供應商。(3)更新部件庫存。庫管員根據(jù)收到的接受的部件列表添加本次采購數(shù)量,與原有庫存量累加來更新庫存部件中的庫存量。標記訂單采購完畢?,F(xiàn)采用結(jié)構(gòu)化方法對該采購系統(tǒng)進行分析與設計,獲得如圖1-1所示的上下文數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。1-1上下文數(shù)據(jù)流圖1-20層數(shù)據(jù)流圖1使用說明中的詞語,給出圖1-1中的實體E1~E5(5分)2使用說明中的詞語,給出圖1-2中的數(shù)據(jù)存儲D1~D4的名稱。(4分)3根據(jù)說明和圖中術(shù)語,補充圖1-2中缺失的數(shù)據(jù)流及其起點和終點。(4分)4用200字以內(nèi)文字,說明建模圖1-1和圖1-2時如何保持數(shù)據(jù)流圖(2分)試題二(15)1至問題3,將解答填入答題紙的相應欄內(nèi)。某房屋租賃公司擬開發(fā)一個管理系統(tǒng)用于管理其持有的房屋、租客及員工信息。請根據(jù)下述需求描述完畢系統(tǒng)的數(shù)據(jù)庫設計。
【需求描述】1、公司擁有多幢公寓樓,每幢公寓樓有唯一的樓編號和地址。每幢公寓樓中有(不同公寓樓內(nèi)的公寓號可相同)。系統(tǒng)需記錄每套公寓的臥室數(shù)和衛(wèi)生間數(shù)。2、員工和租客在系統(tǒng)中有唯一的編號(員工編號和租客編號)。3、對于每個租客,系統(tǒng)需記錄姓名、多個聯(lián)系電話、一個銀行賬號(方便自動扣房租)、一個緊急聯(lián)系人的姓名及聯(lián)系電話。4、系統(tǒng)需記錄每個員工的姓名、一個聯(lián)系電話和月工資。員工類別可以是經(jīng)理或維修工,也可兼任。每個經(jīng)理可以管理多幢公寓樓。每幢公寓樓必須由一個經(jīng)理管理。系統(tǒng)需記錄每個維修工的業(yè)務技能,比如:水暖維修,電工,木工等。5、租客租賃公寓必須和公司簽訂租賃協(xié)議。一份租賃協(xié)議通常由一個或多個租客(合租)與該公寓樓的經(jīng)理簽訂,一個租客也可租賃多套公寓。協(xié)議內(nèi)容應包含簽訂日期,開始時間,租期,押金和月租金。【概念模型設計】根據(jù)需求階段收集的信息,設計的實體聯(lián)系圖(不完整)如圖2-1所示?!具壿嫿Y(jié)構(gòu)設計】根據(jù)概念模型設計階段完畢的實體聯(lián)系圖,得出如下關(guān)系模式(不完整):聯(lián)系電話(電話號碼,租客編號)租客(租客編號,姓名,銀行賬戶,聯(lián)系人姓名,聯(lián)系人電話)員工(員工編號,姓名,聯(lián)系電話,類別,月工資,(a))公寓樓((b),地址,經(jīng)理編號)公寓(樓編號,公寓號,臥室數(shù),衛(wèi)生間數(shù))協(xié)議(協(xié)議編號,租客編號,樓編號,公寓號,經(jīng)理編號,簽訂日期,起始日期,(c),押金)1補充圖2-1中的“簽約”聯(lián)系所關(guān)聯(lián)的實體及聯(lián)系類型。(4.5分)2補充邏輯結(jié)構(gòu)設計中的(a)、(b)、(c)三處空缺。(4.5分)3在租期內(nèi),公寓內(nèi)設施如出現(xiàn)問題,租客可在系統(tǒng)中進行故障登記,填寫故障描述,每項故障由系統(tǒng)自動生成唯一的故障編號,由公司派維修工進行故障維修,系統(tǒng)需記錄每次維修的維修日期和維修內(nèi)容。根據(jù)此需求,對圖2-1進行補充,并將所補充的ER圖內(nèi)容轉(zhuǎn)換為一個關(guān)系模式,請給出該關(guān)系模式。試題三(15分)1至問題3,將解答填入答題紙的相應欄內(nèi)。某玩具公司正在開發(fā)一套電動玩具在線銷售系統(tǒng),用于向注冊會員提供端到端的玩具定制和銷售服務。在系統(tǒng)設計階段,"創(chuàng)建新訂單(NewOrder)"的設計用例具體描述如表3-1所示,候選設計類分類如表3-2所示,并根據(jù)該用例設計出部分類圖如圖3-1所示。表3-1創(chuàng)建新訂單(NewOrder)設計用例用例名稱創(chuàng)建新訂單NewOrder用例編號ETM-R002參與者會員前提條件會員已經(jīng)注冊并成功登錄系統(tǒng)典型事件流1.會員(C1)點擊“新的訂單”按鈕;2.系統(tǒng)列出所有正在銷售的電動玩具清單及價格(C2)3.會員點擊復選框選擇所需電動玩具并輸入相應數(shù)量,點擊“結(jié)算”按鈕;4.系統(tǒng)自動計算總價(C3),顯示銷售清單和會員預先設立個人資料的收貨地址和支付方式(C4);5.會員點擊“確認支付”按鈕;6.系統(tǒng)自動調(diào)用支付系統(tǒng)(C5)接口支付該賬單;7.若支付系統(tǒng)返回成功標記,系統(tǒng)生成完整訂單信C6)中;8.系統(tǒng)將以表格形式顯示完整訂單信息(C7),同(C8)至會員預先配置的郵C9)。候選事件流3a(1)會員點擊“定制”按鈕;(2)系統(tǒng)以列表形式顯示所有可以定制的電動玩具清單和定制屬性(如尺寸、顏色等)(C10);(3)會員點擊單選按鈕選擇所需要定制的電動點擊“結(jié)算”4)回到環(huán)節(jié)4。7a(1)若支付系統(tǒng)返回失敗標記,系統(tǒng)顯示會員當前默認支付方式(C11)讓會員確認;(2)若會員點擊“修改付款”按鈕,調(diào)用“修改付款”用例,可以新增并存儲為默認支付方式C12),回到環(huán)節(jié)4;(3若會員點擊“取消訂單”,則該用例終止執(zhí)3-2候選設計類分類Interface,負責系統(tǒng)與用戶之間的(a)Control,負責業(yè)務邏輯的解決)(b)Entity,負責持久化數(shù)據(jù)的存儲)(c)在訂單解決的過程中,會員可以點擊“取消訂單"取消該訂單。假如支付失敗,該訂單將被標記為掛起狀態(tài),可后續(xù)重新支付,假如掛起超時30分鐘未支付,系統(tǒng)將自動取消該訂單。訂單支付成功后,系統(tǒng)判斷訂單類型:(1)對于常規(guī)訂單,標記為備貨狀態(tài),訂單信息發(fā)送到貨運部,完畢打包后交付;快遞發(fā)貨(2)對于定制訂單,會自動進入定制狀態(tài),定制完畢后交付快遞發(fā)貨。會員在系統(tǒng)中點擊”收貨"按鈕變?yōu)槭肇洜顟B(tài),結(jié)束整個訂單的解決流程。根據(jù)訂單解決過程所設計的狀態(tài)圖如圖3-2所示。1根據(jù)表3-1中所標記的候選設計類,請按照其類別將編號C1~C12分別填入3-2中的(a)、(b)和(c)處。(6分)2根據(jù)創(chuàng)建新訂單的用例描述,請給出圖3-1中X1~X4處相應類的名稱。(4分)3根據(jù)訂單解決過程的描述,在圖3-2中S1~S5處分別填入相應的狀態(tài)名稱。(5分)試題四:C代碼,回答問題1至問題3,將解答寫在答題紙的相應欄內(nèi)。假幣問題n枚硬幣,其中有一枚是假幣,己知假幣的重量較輕?,F(xiàn)現(xiàn)只有一個天平,規(guī)定用盡量少的比較次數(shù)找出這枚假幣。
【分析問題】
將n枚硬幣提成相等的兩部分:
(1)當n為偶數(shù)時,將前后兩部分,即1...n/2和n/2+1...n,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣:
(2)當n為奇數(shù)時,將前后兩部分,即1..(n-1)/2和(n+1)/2+1...n,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣:若兩端重量相等,則中間的硬幣,即第(n+1)/2枚硬幣是假幣?!綜代碼】下面是算法的C語言實現(xiàn),其中:
coins[]:硬幣數(shù)組
first,last:當前考慮的硬幣數(shù)組中的第一個和最后一個下標
#include<stdio.h>
intgetCounterfeitCoin(intcoins[],intfirst,intlast)
{intfirstSum=0,lastSum=0;inti;
if(first==last-1){/*只剩兩枚硬幣*/if(coins[first]<coins[last])
returnfirst;
returnlast;
}
if((last-first+1)%2=0){ /*偶數(shù)枚硬幣*/for(i=first;i<(1);i++){
firstSum+=coins[i];
}
for(i=first+(last-first)/2+1;i<last+1;i++){
lastSum+=coins[i];
}
if( (2) ){
ReturngetCounterfeitCoin(coins,first,first+(last-first)/2;)
}else{ReturngetCounterfeitCoin(coins,first+(last-first)/2+1,last;)
}}
else{ /*奇數(shù)枚硬幣*/
for(i=first;i<first+(last-first)/2;i++){
firstSum+=coins[i];
}
for(i=first+(last-first)/2+1;i<last+1;i++){
lastSum+=coins[i];
}if(firstSum<lastSum){
returngetCounterfeitCoin(coins,first,first+(last-first)/2-1);
}elseif(firstSum>lastSum){
returngetCounterfeitCoin(coins,first+(last-first)/2-1,last);
}else{
return(3)
}
}}1根據(jù)題干說明,填充C代碼中的空(1)-(3)2根據(jù)題干說明和C代碼,算法采用了()設計策略。函數(shù)getCounterfeitCoin的時間復雜度為()(用O表達)。3若輸入的硬幣數(shù)為30,則最少的比較次數(shù)為(),最多的比較次數(shù)為()。試題五(共15分)(請從試題五、試題六中選答一題)
閱讀下列說明和C++代碼,將應填入(n)處的字句寫在答題紙的相應欄內(nèi)。
某快餐廳重要制作并出售兒童套餐,一般涉及主餐(各類比薩)、飲料和玩具,其餐品種類也許不同,但其制作過程相同。前臺服務員(Waiter)調(diào)度廚師制作套餐。現(xiàn)采用生成器(Builder)模式實現(xiàn)制作過程,得到如圖5-1所示的類圖。圖5-1l類圖【C++代碼】
#include<iostream>
#include<string>
usingnamespacestd;
classPizza{
private:stringparts;
public:
voidsetParts(stringparts){this->parts=parts;}
stringgetParts(){returnparts;}
};
classPizzaBuilder{
protected:Pizza*pizza;
public:
Pizza*getPizza(){retumpizza;}
voidcreateNewPizza(){pizza=newPizza();}
(1);
}
classHawaiianPizzaBuilder:publicPizzaBuilder{
public:
voidbuildParts(){
pizza->setParts("cross+mild+ham&pineapple");
}
}
classSpicyPizzaBuider:publicPizzaBuilder{
public:
voidbuildParts(){
pizza->setParts("panbaked+hot+ham&pineapple");
}
}
ClassWaiter{
Private:
PizzaBuilder*pizzaBuilder;
public:
voidsetPizzaBuilder(PizzaBuilder*pizzaBuilder){/*設立構(gòu)建器*/
(2)
}
Pizza*getPizza(){returnpizzaBuilder->getPizza();}
voidconstruct(){/*構(gòu)建*/
pizzaBuilder->createNewPizza();
(3)
}
};
intmain(){
Waiter*waiter=newWaiter();
PizzaBuilder*hawaiianpizzabuilder=new
HawaiianPizzaBuilder()
(4);
(5);
cout<<"pizza:"<<waiter->getPizza()->getParts()<<endl;
}
程序的輸出結(jié)果為:
pizza:cross+mild+ham&pineapple試題六(共15分)
閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的相應欄內(nèi)。
某快餐廳重要制作并出售兒童套餐,一般涉及主餐(各類比薩)、飲料和玩具,其餐品種類也許不同,但其制作過程相同。前臺服務員(Waiter)調(diào)度廚師制作套餐。現(xiàn)采用生成器(Builder)模式實現(xiàn)制作過程,得到如圖6-1所示的類圖。6-1類圖【Java代碼】
classPizza{
privateStringparts;
publicvoidsetParts(Stringparts){
this.parts=parts;
}
publicStringtoString(){
returnthis.parts;
}
}
abstractclassPizzaBuilder{
protectedPizzapizza;
publicPizzagetPizza(){returnpizza;}
publicvoidcreateNewPizza(){pizza=newPizza();}
public(1);
}
classHawaiianPizzaBuilderextendsPizzaBuilder{
publicvoidbuildParts(){
pizza.setParts("cross+mild+ham&pineapp1e”);
}
}
classSpicyPizzaBuilderextendsPizzaBuilder{
publicvoidbuildParts(){
pizza.setParts("panbaked+hot+pepperoni&salami");
}
}
classWaiter{
privatePizzaBuilderpizzaBuilder;
publicvoidsetPizzaBuilder(PizzaBuilderpizzaBuilder){/*設立構(gòu)建器*/
(2);
}
publicPizzagetPizza(){returnpizzaBuilder.getPizza();}
publicvoidconstruct(){/*構(gòu)建*/
pizzaBuilder.createNewPizza();
(3);
}}
ClassFastFoodOrdering{publicstaticviodmainSting[]args){
Waiterwaiter=newWaiter();
PizzaBuilderhawaiian_pizzabuilder=newHawaiianPizzaBuilder();
(4);
(5);
System.out.println("pizza:"+waiter.getPizza());
}
}
程序的輸出結(jié)果為:
Pizza:cross+mild+ham&pineapple試題一答案解析:1:E1供應商E2采購部門E3檢查員E4庫管員E5職工2:D1庫存表D2采購訂單表D3質(zhì)量標準表D4供應商表3: P3(驗證裝運部件)-----E1(客戶) P4(校驗部件質(zhì)量)-----E1(客戶)P3(驗證裝運部件)------P4(校驗部件質(zhì)量) P1(檢查庫存水平)-----D1(庫存表)4:父圖中某個加工的輸入輸出數(shù)據(jù)流必須與其子圖的輸入輸出數(shù)據(jù)流在數(shù)量上和內(nèi)容上保持一致,即數(shù)據(jù)不會憑空產(chǎn)生,也不能憑空消失。父圖的一個輸入(或輸出)數(shù)據(jù)流應相應子圖中幾個輸入(或輸出)數(shù)據(jù)流,而子圖中組成的這些數(shù)據(jù)流的數(shù)據(jù)項全體正好是父圖中的這個數(shù)據(jù)流。試題二答案解析:12 a)業(yè)務技能b)樓編號c)月租金3 新增維修關(guān)系,維修工維修公寓,關(guān)系模式為維修情況
維修情況(故障編號,員工編號,樓編號,公寓號,維修日期,維修內(nèi)容)試題三答案解析:a):C4、C5、C7、C8、C10、C11b):C3c):C1、C2、C6、C9、C12一、實體類
實體類是用于對必須存儲的信息和相關(guān)行為建模的類。實體對象(實體類的實例)用于保存和更新一些現(xiàn)象的有關(guān)信息,例如:事件、人員或者一些現(xiàn)實生活中的對象。實體類通常都是永久性的,它們所具有的屬性和關(guān)系是長期需要的,有時甚至在系統(tǒng)的整個生存期都需要。
二、邊界類
邊界類是系統(tǒng)內(nèi)部與系統(tǒng)外部的業(yè)務主角之間進行交互建模的類。邊界類依賴于系統(tǒng)外部的環(huán)境,比如業(yè)務主角的操作習慣、外部的條件的限制等。它或者是系統(tǒng)為業(yè)務主角操作提供的一個GUI,或者系統(tǒng)與其他的系統(tǒng)之間進行一個交互的接口,所以當外部的GUI變化時,或者是通信協(xié)議有變化時,只需要修改邊界類就可以了,不用再去修改控制類和實體類。業(yè)務主角通過它來與控制對象交互,實現(xiàn)用例的任務。邊界類調(diào)用用例內(nèi)的控制類對象,進行相關(guān)的操作。一個系統(tǒng)也許會有多種邊界類:
用戶界面類-幫助與系統(tǒng)用戶進行通信的類
系統(tǒng)接口類-幫助與其他系統(tǒng)進行通信的類
設備接口類-為用來監(jiān)測外部事件的設備(如傳感器)提供接口的類
三、控制類
控制類用于對一個或幾個用例所特有的控制行為進行建模,它描述的用例的業(yè)務邏輯的實現(xiàn),控制類的設計與用例實現(xiàn)有著很大的關(guān)系。在有些情況下,一個用例也許相應多個控制類對象,或在一個控制類對象中相應著對個用例。它們之間沒有固定的相應關(guān)系,而是根據(jù)具體情況進行分析判斷,控制類有效將業(yè)務邏輯獨立于實體數(shù)據(jù)和邊界控制,專注于解決業(yè)務邏輯,控制類會將特有的操作和實體類分離,者有助于實體類的統(tǒng)一化和提高復用性。當業(yè)務主角通過邊界類來執(zhí)行用例的時候,產(chǎn)生一個控制類對象,在用例被執(zhí)行完后,控制類對象會
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025短期勞務合同匯編
- Tixentamig-生命科學試劑-MCE
- 2025屆高考物理大一輪復習課件 第十章 第51課時 閉合電路的歐姆定律
- 北京市通州區(qū)09-10學年高一上學期期末考試(政治)
- 2025年一建《機電工程管理與實務》考試易錯知識點精講試題匯編
- 西昌市優(yōu)果蔬包裝生產(chǎn)項目環(huán)評報告
- 涼山州渝投節(jié)能建材有限公司生物質(zhì)鍋爐技術(shù)改造(擴建)項目環(huán)評報告
- 2025年合同誠信管理回顧與總結(jié)
- 2025房屋租賃合同標準模板
- 德平鎮(zhèn)中心小學地震演練圖片資料
- GB 1886.193-2016食品安全國家標準食品添加劑丙酸乙酯
- 《士兵突擊》課件
- 接觸網(wǎng)施工計算課件
- 標本的運送流程課件
- 雨棚棚蓋檢驗批質(zhì)量驗收記錄表
- 學校組織架構(gòu)及崗位職責 -
- 醫(yī)院感染監(jiān)測清單
- 國際慕課學習者使用手冊
- 電子商務安全與支付09課件
- 循證醫(yī)學臨床指南
- 手把手教華為PTN設備業(yè)務配置
評論
0/150
提交評論