




已閱讀5頁,還剩36頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章 軟件設計師下午試題分析與解答試題一閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。說明某公司欲開發招聘系統以提高招聘效率,其主要功能如下:(1)接受申請驗證應聘者所提供的自身信息是否完整,是否說明了應聘職位,受理驗證合格的申請,給應聘者發送致謝信息。(2)評估應聘者根據部門經理設置的職位要求,審查已經受理的申請;對未被錄用的應聘者進行謝絕處理,將未被錄用的應聘者信息存入未錄用的應聘者表,并給其發送謝絕決策;對錄用的應聘者進行職位安排評價,將評價結果存入評價結果表,并給其發送錄用決策,發送錄用職位和錄用者信息給工資系統。現采用結構化方法對招聘系統進行分析與設計,獲得如圖1-1所示的頂層數據流圖、圖1-2所示0層數據流圖和圖1-3所示1層數據流圖。問題1使用說明中的術語,給出圖中E1E3所對應的實體名稱。答:E1:應聘者 E2: 部門經理 E3: 工資系統問題2 使用說明中的術語,給出圖中D1D2所對應的數據存儲答:D1: 未錄用的應聘者表 D2: 評價結果表問題3使用說明和圖中的術語,給出圖1-3中加工P1P3的名稱。答:P1:驗證申請 P2: 審查申請 P3: 職位安排評價問題4解釋說明圖1-2和圖1-3是否保持平衡,若不平衡請按如下格式補充圖1-3中數據流的名稱以及數據流的起點或終點,使其平衡(使用說明中的術語或圖中符號)。 答:數據流名稱起 點錄用職位P3 或 2.3職位安排評價已受理的申請1.2受理申請謝絕決策2.2謝絕應聘者試題二閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。說明某物流公司為了整合上游供應商與下游客戶,縮短物流過程,降低產品庫存,需要構建一個信息系統以方便管理其業務運作活動。需求分析結果(1)物流公司包含若干部門,部門信息包括部門號、部門名稱、經理、電話和郵箱。一個部門可以有多名員工處理部門的日常事務,每名員工只能在一個部門工作。每個部門有一名經理,只需負責管理本部門的事務和人員。(2)員工信息包括員工號、姓名、職位、電話號碼和工資;其中,職位包括:經理、業務員等。業務員根據托運申請負責安排承運貨物事宜,例如:裝貨時間、到達時間等。一個業務員可以安排多個托運申請,但一個托運申請只由一個業務員處理。(3)客戶信息包括客戶號、單位名稱、通信地址、所屬省份、聯系人、聯系電話、銀行賬號,其中,客戶號唯一標識客戶信息的每一個元組。每當客戶要進行貨物托運時,先要提出貨物托運申請。托運申請信息包括申請號、客戶號、貨物名稱、數量、運費、出發地、目的地。其中,一個申請號對應唯一的一個托運申請;一個客戶可以有多個貨物托運申請,但一個托運申請對應唯一的一個客戶號。概念模型設計根據需求階段收集的信息,設計的實體聯系圖和關系模式(不完整)如圖2-1所示。關系模式設計部門(部門號,部門名稱,經理,電話,郵箱)員工(員工號,姓名,職位,電話號碼,工資, (a) 部門號 )客戶( (b) ,單位名稱,通信地址,所屬省份,聯系人,聯系電話,銀行賬號)托運申請( (c) ,貨物名稱,數量,運費,出發地,目的地) 申請號、客戶號、貨物名稱、數量、運費、出發地、目的地安排承運( (d) ,裝貨時間,到達時間,業務員)問題1根據問題描述,補充四個聯系、聯系的類型,以及實體與子實體的聯系,完善圖2-1所示的實體聯系圖。答:托運申請客戶員工部門處理申請安排管理業務員經理nn11n111問題2根據實體聯系圖,將關系模式中的空(a)(d)補充完整。分別指出部門、員工和安排承運關系模式的主鍵和外鍵。答:(1)a: 部門號 b: 客戶號c: 申請號、客戶號 d: 申請號(2)部門: 主鍵:部門號 外鍵:無員工: 主鍵:員工號 外鍵:部門號安排承運:主鍵:申請號 外鍵:無問題3若系統新增需求描述如下:為了數據庫信息的安全性,公司要求對數據庫操作設置權限管理功能,當員工登錄系統時,系統需要檢查員工的權限。權限的設置人是部門經理。為滿足上述需要,應如何修改(或補充)圖2-1所示的實體聯系圖,請給出修改后的實體聯系圖和關系模式。權限客戶員工部門處理申請安排管理業務員經理設置托運申請答:1nnn11111n試題二分析本題考查數據庫系統中實體聯系模型(E-R模型)和關系模式設計方面的應用知識。問題1兩個實體集之間的聯系類型分為三類:一對一(1:1)聯系、一對多(1:n)聯系和多對多(m:n)聯系。根據題意,每名員工只能在一個部門工作,所以部門和員工之間有一個1:n的“所屬”聯系;由于每個部門有一名經理,只需負責管理本部門的事務和人員,因此部門和經理之間有一個1:1的“管理”聯系;由于一個業務員可以安排多個托運申請,但一個托運申請只由一個業務員處理,故業務員和托運申請之間有一個1:n的“托運”聯系;又由于一個客戶可以有多個貨物托運申請,但一個托運申請對應唯一的一個客戶號,故客戶和托運申請之間有一個1:n的“申請”聯系。根據上述分析,完善圖2-1所示的實體聯系圖可參見參考答案。問題2根據題意,部門和員工之間有一個1:n的“所屬”聯系需要將一端的碼并入多端,故員工關系模式中的空(a)應填寫部門號;在客戶關系模式中,客戶號為主鍵,故空(b)應填寫客戶號;在托運申請關系模式中,申請號、客戶號為主鍵,故空(c)應填寫申請號、客戶號;又由于一個業務員可以安排多個托運申請,但一個托運申請只由一個業務員處理,因此在安排承運關系模式中,申請號為主鍵,故空(d)應填寫申請號。部門關系模式中的部門號為主鍵,經理為外鍵;因為經理來自員工關系。員工關系模式中的員工號為主鍵,部門號為外鍵,因為部門號來自部門關系。安排承運關系模式中的申請號為主鍵,業務員為外鍵,因為業務員來自員工關系。問題3根據題意,權限的設置人是部門經理,因此,需要建立一個權限關系模式,以及經理到權限之間的1:n的“設置”聯系。修改后的實體聯系圖和關系模式參見參考答案。參考答案問題1問題2(a)部門號(b)客戶號(c)申請號,客戶號(d)申請號部門主鍵:部門號外鍵:經理員工主鍵:員工號外鍵:部門號安排承運主鍵:申請號外鍵:業務員問題3關系模式:權限(員工號,權限,設置人)或權限(員工號,權限,部門經理)試題三閱讀下列說明和圖,回答問題1至問題3,將解答填入答題紙的對應欄內。說明Pay&Drive系統(開多少付多少)能夠根據駕駛里程自動計算應付的費用。系統中存儲了特定區域的道路交通網的信息。道路交通網由若干個路段(RoadSegment)構成,每個路段由兩個地理坐標點(Node)標定,其里程數(Distance)是已知的。在某些地理坐標點上安裝了訪問控制(Access Control)設備,可以自動掃描行駛卡(Card)。行程(Trajectory)由一組連續的路段構成。行程的起點(Entry)和終點(Exit)都裝有訪問控制設備。系統提供了3種行駛卡。常規卡(Regular Card)有效期(Valid Period)為一年,可以在整個道路交通網內使用。季卡(Season Card)有效期為三個月,可以在整個道路交通網內使用。單次卡(Minitrip Card)在指定的行程內使用,且只能使用一次。其中,季卡和單次卡都是預付卡(Prepaid Card),需要客戶(Customer)預存一定的費用。系統的主要功能有:客戶注冊、申請行駛卡、使用行駛卡行駛等。使用常規卡行駛,在進入行程起點時,系統記錄行程起點、進入時間(Date Of Entry)等信息。在到達行程終點時,系統根據行駛的里程數和所持卡的里程單價(Unit Price)計算應付費用,并打印費用單(Invoice)。季卡的使用流程與常規卡類似,但是不需要打印費用單,系統自動從卡中扣除應付費用。單次卡的使用流程與季卡類似,但還需要在行程的起點和終點上檢查行駛路線是否符合該卡所規定的行駛路線。現采用面向對象方法開發該系統,使用UML進行建模。構建出的用例圖和類圖分別如圖3-1和圖3-2所示。問題1根據說明中的描述,給出圖3-1中U1和U2所對應的用例,以及(1)所對應的關系。答:U1:使用常規卡行駛 U2:使用單次卡行駛(1):問題2根據說明中的描述,給出圖3-2中缺少的C1C6所對應的類名以及(2)(3)處所對應的多重度(類名使用說明中給出的英文詞匯)。答:C1: RoadSegment C2: TrajectoryC3: Card C4: Regular CardC5: Prepaid Card C6: Minitrip Card(2):1(3):13問題3根據說明中的描述,給出Road Segment、Trajectory和Card所對應的類的關鍵屬性(屬性名使用說明中給出的英文詞匯)。答:RoadSegment的屬性:DistanceTrajectory的屬性:Entry、Exit、DateOfEntryCard的屬性:UnitPrice、ValidPeriod試題三分析本題屬于經典的考題,主要考查面向對象分析方法以及UML的用例圖和類圖的相關知識。問題1本問題要求將圖3-1所給出的用例圖補充完整。用例圖的構成要素有:參與者、用例以及用例之間的關系。圖中缺少了兩個用例,以及一個用例關系。解答此題時,首先應從說明中找到所有的用例。用例表示系統的一個單一業務功能。從題目的描述中可以看出,系統的主要功能就是申請行駛卡,以及使用行駛卡行駛。由于行駛卡分為三種,所以在說明中詳細描述了三種行駛卡的使用方法。再結合用例圖來看,缺少的兩個用例與用例“使用季卡行駛”有關聯關系,由此可以推斷出,需要補充的這兩個用例必定與另外兩種行駛卡相關,分別為“使用常規卡行駛”和“使用單次卡行駛”。下面需要解決的問題是這兩個用例與U1和U2的對應關系。這就需要仔細考查一下用例圖所給出的用例關系。由圖3-1可知,U1和“使用季卡行駛”之間是泛化(generalization)關系。當多個用例共同擁有一種類似的結構和行為時,可以將它們的共性抽象為父用例,其他的用例作為泛化關系中的子用例。在用例的泛化關系中,子用例是父用例的一種特殊形式,子用例繼承了父用例所有的結構、行為和關系。根據說明中的“季卡的使用流程與常規卡類似,但是不需要打印費用單,系統自動從卡中扣除應付費用”可知,U1應該對應著用例“使用常規卡行駛”。由此不難得出U2對應著用例“用單次卡行駛”。現在圖中只剩下(1)處的用例關系沒有確定。用例之間的關系在用例圖上只有三種:包含(include)、擴展(extend)和泛化(generalization)。包含關系是指當多個用例中存在相同事件流時,可以把這些公共事件流抽象成為公共用例,這個公共用例稱為抽象用例,而原始用例稱為基礎用例。基礎用例和抽象用例之間是包含關系。如果一個用例明顯地混合了兩種或兩種以上的不同場景,則可以將這個用例分為一個基本用例和多個擴展用例。擴展關系用“extend”表示,箭頭指向基本用例。包含關系和擴展關系的區別在于,抽象用例中的事件流一定要插入到基本用例中去,并且插入點只有一個,通常抽象用例不能脫離基本用例而獨立存在。擴展用例的事件流往往可以抽象為基本用例的備選事件流,在擴展關系中,可以根據一定的條件來決定是否將擴展用例的事件流插入到基本用例的事件流中,并且插入點可以有多個。根據以上分析可知,(1)處的用例關系選擇“extend”最為合適。問題2本問題考查的是類圖建模。解題的重點在于根據類圖中提供的類及類之間的關聯關系,推斷出剩余的類。可以先觀察一下類圖。可以看到,需要補充的類基本上集中在兩個結構上:聚集結構(類C1和C2)以及繼承結構(類C3C6)。繼承結構是比較容易辨識的類之間的關聯關系,圖上給出了其中的一個子類SeasonCard。以這個類為線索,回到說明中尋找與類SeasonCard相關的其他類。從說明中可知,“系統提供了3種卡”,常規卡、季卡、單次卡,而“季卡和單次卡都是預付卡”。這些描述暗示,“季卡”、“單次卡”與“預付卡”之間存在著特殊/一般關系,即“is-a”關系,這是繼承結構的典型標志。由此可以得出類C5和C6應該分別對應PrepaidCard(預付卡)和MinitripCard(單次卡)。根據C5和C6所對應的類,可以推斷出,C4和C3必定也是與行駛卡相關的類。三種卡中,已經有兩種卡有了對應的類,還剩下一種卡即“常規卡”。而“常規卡”只能是與“預付卡”同層次的概念,所以只能對應于C4,C3表示的是能代表所有這幾種卡的公共概念。所以C3和C4應分別對應于Card和RegularCard。確定了C3之后,就可以識別出(2)和(3)處的多重度。Customer和Card之間是持有和被持有的關系,由于系統中只有3種卡,所以一個客戶最多只能有3種卡,所以(3)處應填1.3。而對于任何一張卡來說,只能有唯一地一個所屬人,因此(2)處應填1。現在還剩下類C1和C2沒有確定。由于這兩個類之間是聚集關系,所以需要在說明中尋找具有“部分一整體”關系的概念。由說明中的“行程(Trajectory)由一組連續的路段構成”可知,C1和C2應分別對應于RoadSegment和Trajectory。問題3本問題考查類的關鍵屬性的識別。由說明中給出的描述可知,類RoadSegment的屬性至少應包括Distance;類Trajectory的屬性至少應包括Entry、Exit和DateOfEntry;類Card的屬性至少應包括UnitPrice、ValidPeriod。參考答案問題1U1:使用常規卡行駛 U2:使用單次卡行駛 (1):extend問題2C1:RoadSegment C2:Trajectory C3:CardC4:RegularCard C5:PrepaidCard C6:MinitripCard(2)1 (3)1.3問題3RoadSegment的屬性:DistanceTrajectory的屬性:Entry、Exit、DateOfEntryCard的屬性:UnitPrice、ValidPeriod試題四閱讀下列說明和C代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。說明設某一機器由n個部件組成,每一個部件都可以從m個不同的供應商處購得。供應商j供應的部件i具有重量wij和價格cij。設計一個算法,求解總價格不超過上限cc的最小重量的機器組成。采用回溯法來求解該問題:首先定義解空間。解空間由長度為n的向量組成,其中每個分量取值來自集合1,2,m),將解空間用樹形結構表示。接著從根結點開始,以深度優先的方式搜索整個解空間。從根結點開始,根結點成為活結點,同時也成為當前的擴展結點。向縱深方向考慮第一個部件從第一個供應商處購買,得到一個新結點。判斷當前的機器價格(c11)是否超過上限(cc),重量(w11)是否比當前已知的解(最小重量)大,若是,應回溯至最近的一個活結點;若否,則該新結點成為活結點,同時也成為當前的擴展結點,根結點不再是擴展結點。繼續向縱深方向考慮第二個部件從第一個供應商處購買,得到一個新結點。同樣判斷當前的機器價格(c11+c21)是否超過上限(cc),重量(w11+w21)是否比當前已知的解(最小重量)大。若是,應回溯至最近的一個活結點;若否,則該新結點成為活結點,同時也成為當前的擴展結點,原來的結點不再是擴展結點。以這種方式遞歸地在解空間中搜索,直到找到所要求的解或者解空間中已無活結點為止。C代碼下面是該算法的C語言實現。(1)變量說明n:機器的部件數m:供應商數cc:價格上限w:二維數組,wij表示第j個供應商供應的第i個部件的重量c:二維數組,cij表示第j個供應商供應的第i個部件的價格bestW:滿足價格上限約束條件的最小機器重量bestC:最小重量機器的價格bestX:最優解,一維數組,bestXi表示第i個部件來自哪個供應商cw:搜索過程中機器的重量cp:搜索過程中機器的價格x:搜索過程中產生的解,xi表示第i個部件來自哪個供應商i:當前考慮的部件,從0到n-1j:循環變量(2)函數backtrackint n=3;int m=3;int cc=4;int w33=1,2,3,3,2,1,2,2,2;int c33=1,2,3,3,2,1,2,2,2;int bestW=8;int bestC=0;int bestX3=0,0,0;int cw=0;int cp=0;int x3=0,0,0;int backtrack (int i)int j=0;int found=0;if(in-1) /*得到問題解*/bestW=cw;bestC=cp;for(j=0; jn; j+)(1) ; /bestXj=xjreturn 1;if (cp=cc)(/*有解*/found=1;for(j=0; (2) ; j+) /jm/*第i個部件從第j個供應商購買*/(3) ; /xi=jcw=cw+wi j;cp=cp+ci j;if (cp=cc& (4) )/*深度搜索,擴展當前結點*/cw0投入2元錢有2元錢沒有投幣售出紙巾紙巾售完按下取紙巾按鈕紙巾數0 圖5-1 紙巾售賣機的狀態圖采用狀態(State)模式來實現該紙巾售賣機,得到如圖5-2所示的類圖。其中類State為抽象類,定義了投幣、退幣、出紙巾等方法接口。類SoldState、SoldOutState、NoQuarterState和HasQuarterState分別對應圖5-1中紙巾售賣機的4種狀態:售出紙巾、紙巾售完、沒有投幣、有2元錢。C+代碼#include iostreamusing namespace std;/以下為類的定義部分 class TissueMachine; /類的提前引用 class State public: virtual void insertQuarter()=0; /投幣 virtual void ejectQuarter()=0; /退幣 virtual void turnCrank()=0; /按下“出紙巾”按鈕 virtual void dispense()=0; /出紙巾 ; /*類SoldOutState、NoQuarterState、HasQuarterState、SoldState的定義省略,每個類中均定義了私有數據成員TissueMachine*tissueMachine;*/ class TissueMachine private: (1)*soldOutState,*noQuarterState,*hasQuarterState,*soldState,*state; /(1) Stateint count; /紙巾數 public: TissueMachine(int numbers); void setState(State* state); State* getHasQuarterState(); State* getNoQuarterState(); State* getSoldState(); State* getSoldOutState(); int getCount(); /其余代碼省略; /以下為類的實現部分 void NoQuarterState :insertQuarter() tissueMachine-setState( (2) ); /(2) tissueMachine-getHasQuarterState() void HasQuarterState :ejectQuarter()tissueMachine-setState( (3) ); / (3)tissueMachine-getNoQuarterState() void SoldState :dispense() if(tissueMachine-getCount()0) tissueMachine-setState( (4) ); ) /(4)tissueMachine-getNoQuarterState()else tissueMachine-setState( (5) ); ) /(5)tissueMachine- getSoldOutState() /其余代碼省略(1) State(2) tissueMachine-getHasQuarterState()(3) tissueMachine-getNoQuarterState()(4) tissueMachine-getNoQuarterState()(5) tissueMachine-getSoldoutState()試題五分析本題考查狀態(State)模式的概念及應用。狀態模式是一種對象的行為型模式,允許一個對象在其內部狀態改變時改變它的行為,對象看起來似乎修改了它的類。狀態模式的類圖如下所示:狀態模式主要解決的是控制一個對象轉換的條件表達式過于復雜的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把復雜的判斷邏輯簡化。狀態模式的好處是將與特定狀態相關的行為局部化,并且將不同狀態的行為分割開來。題目利用狀態模式來實現一個簡易的紙巾售賣機。售賣機的狀態轉換圖已經在題目中給出,類S01dState、SoldoutState、NoQuarterState和HasQuaerState分別用來表示售賣機的4種不同狀態,對應于狀態模式中的ConcreteState1,.ConcreteStateN。題目所設置的填空,主要集中在狀態轉換上。因此解答該題時,要求在理解狀態模式內涵的基礎上,依據紙巾售賣機的狀態轉換原則,給出正確的狀態設置。空(1)出現在類TissueMachine的數據成員定義部分。狀態模式封裝了狀態的轉換過程,但是它需要枚舉可能的狀態,因此需要確定狀態種類。因此在類TissueMachine中需定義出所有可能的狀態對象。根據所給出的對象名稱及說明中的描述,可知(1)處應填入的類名為State。空(2)(5)都是與狀態轉換相關的,要求填寫類TissueMachine中的方法setState在不同調用處的實際參數。根據方法的名稱及調用方式,可以推斷出這個方法的功能就是設置自動售賣機的當前狀態。要填出這些空,只要對照圖5.1的狀態轉換圖,根據狀態轉換的條件確定出當前狀態及下一狀態即可。空(2)出現在方法insertQuaner內,即給紙巾售賣機投入2元錢。根據狀態圖,“投入2元錢”之后,售賣機應轉換到“有2元錢”的狀態。“有2元錢”對應的狀態的類為“HasQuanerState”,所以空(2)處應填類HasQuanerState的對象。由于hasQuanerState是類TissueMachine的私有數據成員,不能直接訪問,所以只能通過調用相關的get方法來獲取該對象。由此得出(2)應填tissueMachine-getHasQuarterState();同理,空(3)表示的狀態是從“有2元錢”狀態,經歷“退回2元錢”事件之后的狀態,及“沒有投幣”狀態。所以空(3)處應填tissueMachine-getNoQuanerState()。空(4)和(5)處分別表示賣出一包紙巾之后,售賣機應該轉換到的下一個狀態。這個跟售賣機中的紙巾數有關,如果還有紙巾,則轉換到“沒有投幣”狀態,如果沒有紙巾了,則轉換到“紙巾售完”狀態,因此,空(4)處應填tissueMachine-getNoQuarterState(),空(5)處應填tissueMachine-getSoldOutState()。參考答案(1) State(2) tissueMachine-getHasQuarterState()(3) tissueMachine-getNoQuarterState()(4) tissueMachine-getNoQuarterState()(5) tissueMachine-getSoldoutState()試題六閱讀下列說明和Java代碼,將應填入(n)處的字句寫在答題紙的對應欄內。說明某大型商場內安裝了多個簡易的紙巾售賣機,自動出售2元錢一包的紙巾,且每次僅售出一包紙巾。紙巾售賣機的狀態圖如圖6-1所示。圖6-1退回2元錢紙巾數0投入2元錢有2元錢沒有投幣售出紙巾紙巾售完按下取紙巾按鈕紙巾數0 紙巾售賣機的狀態圖采用狀態(State)模式來實現該紙巾售賣機,得到如圖6-2所示的類圖。其中類State為抽象類,定義了投幣、退幣、出紙巾等方法接口。類SoldState、SoldOutState、NoQuarterState和HasQuarterState分別對應圖6-1中紙巾售賣機的4種狀態:售出紙巾、紙巾售完、沒有投幣、有2元錢。Java代碼import java.util.*;interface Statepublic void insertQuarter(); /投幣public void ejectQuarter(); /退幣public void turnCrank(); /按下“出紙巾”按鈕public void dispense(); /出紙巾class TissueMachine(1)soldOutState,noQuarterState,hasQuarterState,soldState,state;/ (1) Statestate=soldOutState;int count=0; /紙巾數public TissueMachine(int numbers) /*實現代碼省略*/)public State getHasQuarterState() return hasQuarterState;public State getNoQuarterState() return noQuarterState; public State getSoldState() return soldState; public State getSoldOutState() return soldOutState; public int getCount() retum count; /其余代碼省略class NoQuarterState implements StateTissueMachine tissueMachine;public void insertQuarter()tissueMachine.setState( (2) );/(2) tissueMachine. getHasQuarterState()/構造方法以及其余代碼省略class HasQuarterState implements StateTissueMachine tissueMachine;public void ejectQuarter()tissueMachine.setState( (3) ); /(3)tissueMachine.getNoQuarterState()/構造方法以及其余代碼省略class SoldState implements StateTissueMachine tissueMachine;public void dispense()if(tissueMachine.getCount()0)tissueMachine.setState( (4) ); / (4)tissueMachine.getNoQuarterState()elsetissueMachine.setState( (5) );/ (5)tissueMachine.getSoldOutState()試題六分析本題考查狀態(State)模式的概念及應用。狀態模式是一種對象的行為型模式,允許一個對象在其內部狀態改變時改變它的行為,對象看起來似乎修改了它的類。狀態模式的類圖如下所示:狀態模式主要解決的是控制一個對象轉換的條件表達式過于復雜的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把復雜的判斷邏輯簡化。狀態模式的好處是將與特定狀態相關的行為局部化,并且將不同狀態的行為分割開來。題目利用狀態模式來實現一個簡易的紙巾售賣機。售賣機的狀態轉換圖已經在題目中給出,類SoldState、SoldOutState、NoQuarterState和HasQuarterState分別用來表示售賣機的4種不同狀態,對應于狀態模式中的ConcreteStatel,.ConcreteStateN。題目所設置的填空,主要集中在狀態轉換上。因此解答該題時,要求在理解狀態模式內涵的基礎上,依據紙巾售賣機的狀態轉換原則,給出正確的狀態設置。空(1)出現在類Tissu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司資料及用章管理制度
- 施工材料領料管理制度
- 旅游景區項目管理制度
- 公司財務部資金管理制度
- 家具公司外貿部管理制度
- sis系統報警管理制度
- 公司廣告宣傳品管理制度
- 公司測試手機誰管理制度
- taptap禮儀考試題及答案
- fbi考試題及答案大全
- 2025年高考英語全國二卷試題含答案
- 網絡服務器配置與管理(微課版) 教案 項目02 虛擬化技術和VMware-2
- 國家開放大學2025年《創業基礎》形考任務3答案
- 江岸區2023-2024學年下學期期末七年級數學試卷(含答案)
- (正式版)HGT 22820-2024 化工安全儀表系統工程設計規范
- 2021-2022學年江蘇省揚州市高一下學期期末地理試題
- 司爐崗位應急處置卡(燃氣)參考
- 最新四川省教師資格認定體檢表
- 串并聯電路電壓表電流表(課堂PPT)
- XXX縣第三次國土調查技術報告
- 肝硬化基本知識ppt課件
評論
0/150
提交評論