基于UML的飲料自動售貨機系統(tǒng)設(shè)計_第1頁
基于UML的飲料自動售貨機系統(tǒng)設(shè)計_第2頁
基于UML的飲料自動售貨機系統(tǒng)設(shè)計_第3頁
基于UML的飲料自動售貨機系統(tǒng)設(shè)計_第4頁
基于UML的飲料自動售貨機系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于UML的飲料自動售貨機系統(tǒng)設(shè)計1 問題描述1.1 關(guān)于自動售貨機自動售貨機像磁卡電話、銀行柜員機一樣,以方便、新穎、文明、晝夜服務(wù)等特點,成為發(fā)達國家不可缺少的便民配套設(shè)施。如今的自動售貨機可以為顧客提供多種服務(wù)。顧客可以根據(jù)自己的需要選擇商品并投入錢幣,售貨機接收錢幣,售出商品。1.2 飲料自動售貨機的設(shè)計該設(shè)計模擬自動售貨機的工作原理和方式,完成出售商品、接收錢幣、找零錢等功能。與系統(tǒng)交涉的人有兩類:送貨員和顧客。送貨員在每周固定時間查看售貨機中的飲料數(shù)量和錢幣數(shù)量情況,并根據(jù)計劃適當添加飲料、錢幣或取走適當?shù)腻X幣。同時,送貨員也可以根據(jù)需要增加飲料的種類,或修改飲料的價格。顧客根據(jù)需

2、要選擇飲料,投入錢幣,并等待售貨機的響應。售貨機(所設(shè)計的系統(tǒng))所做的響應:如果售貨機中沒有該種飲料,則退回顧客所投錢幣,交易失敗。否則,如果售貨機中有該種飲料,則判斷顧客所投錢幣是否足夠,如果不夠,則提示顧客交易失敗,并退回錢幣。如果顧客所投的錢幣剛好夠(不需要找零錢),則售出飲料,交易結(jié)束。如果需要找零錢,則判斷是否有適當?shù)牧沐X可以找,如果有,則售出飲料,找出零錢,交易結(jié)束。否則,退回錢幣,交易失敗。當然,實際生活中的售貨機可能有更加強大的功能和更完善的處理,這里只模擬一個售貨機系統(tǒng),所以只實現(xiàn)其核心原理,并練習和提高分析問題能力和編程能力。2 用例模型及分析類圖的描述;2.1 系統(tǒng)功能模

3、塊劃分圖1:模塊劃分2.2 系統(tǒng)用例模型描述系統(tǒng)涉及的角色有:顧客和送貨員。系統(tǒng)用例模型如下圖:圖2:用例圖2.3 類分析系統(tǒng)中涉及的類有Person類,主要實現(xiàn)viewPrice這個功能.Customer和Sender繼承這個類,并且各自實現(xiàn)一定的功能,Drink類和Money類各有自己的屬性,并可以通過一些操作將自己的信息顯示出來.3 設(shè)計類圖、核心用例的順序圖與狀態(tài)圖、組件圖等的描述;3.1 類圖圖3:類圖3.2 核心用例的順序圖圖4:“注冊新的送貨員”時序圖時序圖分析:送貨員輸入新的用戶名和密碼,并確定。對話框控件接收輸入,并將信息傳到售貨機系統(tǒng),請求生成新的數(shù)據(jù)記錄。系統(tǒng)檢查該用戶名

4、是否有效。如果無效,則拒絕生成新的送貨員。如果有效,則在數(shù)據(jù)庫中添加一條新的記錄,成功的生成一個送貨員的用戶名和密碼。圖5:“查看價格”時序圖 時序圖分析:顧客或送貨員請求查看飲料的價格。對話框控件接收輸入,并請求售貨機系統(tǒng)查詢該價格信息。系統(tǒng)在數(shù)據(jù)庫中瀏覽并通過飲料名稱查出該飲料的價格,返回給對話框界面。圖6:顧客”購買飲料”順序圖 時序圖分析:界面接收顧客的輸入(包括飲料名稱和錢幣類型數(shù)量),并傳遞給售貨機系統(tǒng)。系統(tǒng)訪問數(shù)據(jù)庫查看該種飲料是否已經(jīng)賣完,如果已賣完,則提示并退回錢幣。否則,在數(shù)據(jù)庫中查詢該種飲料的價格,并判斷顧客所投錢幣是否夠買該飲料。如果足夠,則計算需要找的零錢,并在數(shù)據(jù)庫

5、中查詢是否有足夠的零錢。如果沒有適合的零錢,則提示并退回顧客所投錢幣。如果有適合的零錢,則通知數(shù)據(jù)庫更新飲料和錢幣信息,并且售出飲料,找零。圖7:送貨員“登陸”時序圖時序圖分析:送貨員輸入用戶名和密碼登陸系統(tǒng)。UI界面將其傳遞給售貨機系統(tǒng),系統(tǒng)查詢數(shù)據(jù)庫中的送貨員信息,并驗證該用戶名和密碼是否正確,如果錯誤,提示用戶。否則,將送貨員專區(qū)界面顯示給送貨員。圖8:“添加飲料”時序圖時序圖分析:UI界面接收送貨員輸入要添加的飲料類型和數(shù)量,并傳遞給售貨機系統(tǒng),系統(tǒng)生成一條新的數(shù)據(jù)記錄,并通知數(shù)據(jù)庫修改該飲料的數(shù)量信息。修改成功之后,向界面返回現(xiàn)在的飲料信息。圖9:“查看飲料”時序圖時序圖分析:UI界

6、面接受送貨員點擊“查看飲料”按鈕,并將接收的消息傳遞給售貨機系統(tǒng),系統(tǒng)查詢數(shù)據(jù)庫中的飲料信息,并將其顯示出來。圖10:“取走錢幣”時序圖時序圖分析:UI界面接收送貨員輸入的錢幣類型和數(shù)量,并傳遞給售貨機系統(tǒng)。系統(tǒng)訪問數(shù)據(jù)庫,查看是否可以取走該數(shù)量的該種錢幣,如果不可以,則拒絕取走錢幣,并通知UI界面提示送貨員。否則,通知數(shù)據(jù)庫修改錢幣信息,并返回給界面修改后的新信息。3.3 狀態(tài)圖圖11:狀態(tài)圖4 信息代碼設(shè)計、數(shù)據(jù)庫設(shè)計、輸入設(shè)計、輸出設(shè)計的描述4.1 信息代碼設(shè)計(1)設(shè)計用Microsoft Visual C+ 基于對話框的App Wizard實現(xiàn)。(2)首先創(chuàng)建“歡迎”對話框,即初始界

7、面。再根據(jù)用戶身份分為顧客和送貨員,這樣分別創(chuàng)建兩個“專區(qū)”。(3)“顧客專區(qū)”為新建的對話框改造,所以需要創(chuàng)建一個類,稱為class CCustomer,并且添加相應的控件。顧客可以每次選擇一種飲料,所以用單選按鈕實現(xiàn),而在投入錢幣時,這里模擬用輸入方式說明顧客投入的錢幣面值和數(shù)量。當顧客確定輸入以后,系統(tǒng)調(diào)用數(shù)據(jù)庫中的信息判斷是否有顧客所選飲料,并計算顧客投入錢幣是否足夠,是否需要找零等問題。之后,系統(tǒng)會彈出一個提示框提示顧客現(xiàn)在的交易情況這里分3種情況:沒有該種飲料并提示選擇另一種、有該種飲料但沒有適合的零錢并退回錢幣、交易成功。(4)送貨員需要通過“登陸”對話框驗證身份后才能進入“送貨

8、員專區(qū)”。登陸的用戶名和密碼分別為wumei,0000.而“送貨員專區(qū)”也是新建的對話框,所以創(chuàng)建一個class CSell類,并添加控件。送貨員可以添加任意種飲料任意瓶,所以用復選框選擇所要添加飲料品種,并用編輯框輸入添加數(shù)量。確定之后,數(shù)據(jù)添加到數(shù)據(jù)庫中,通過“查看飲料”可以查看現(xiàn)在的飲料信息。同時,送貨員可以選擇“放置錢幣”或“取走錢幣”來放置或取走錢幣,這里也用復選框和編輯框來實現(xiàn)操作的錢幣面值和數(shù)量。確定并“查看錢幣”可以看到現(xiàn)在的錢幣狀況。4.2 數(shù)據(jù)庫設(shè)計圖12:E-R圖數(shù)據(jù)庫描述:錢幣有面值和數(shù)量兩種屬性,其中,面值是主屬性。送貨員有用戶名和密碼兩種屬性,其中用戶名是主屬性,當

9、添加新的送貨員時,如果用戶名已經(jīng)存在,則會出錯。飲料有類型、數(shù)量和價格三種屬性。其中類型是主屬性。數(shù)據(jù)庫中按名稱存儲各種飲料若干。送貨員可以放置或取走若干錢幣,也可以添加飲料。4.3 輸入、輸出設(shè)計(1)創(chuàng)建數(shù)據(jù)庫之后,先初始化,將錢幣和飲料的數(shù)量都置成0,并且設(shè)置默認的飲料價格。而送貨員信息表中,先注冊一個用戶名為wumei,密碼為0000的送貨員。(2)輸入設(shè)計。送貨員登陸時設(shè)計2種情況:輸入正確的登陸信息和錯誤的登陸信息。而在添加飲料輸入飲料數(shù)量時,設(shè)計輸入為正確的數(shù)字和錯誤的其他符號。在放置/取走錢幣時,設(shè)計取走小于已有數(shù)量的錢幣和大于已有數(shù)量的錢幣。在送貨員添加新的送貨員時,設(shè)計添加

10、的用戶名為與已有用戶名相同和相異兩種。對于顧客,在購買飲料時設(shè)計選擇一種已賣完的飲料和一種未完的飲料。投入錢幣時,設(shè)計投入小于飲料價格的、等于飲料價格的和大于飲料價格的錢幣。(3)預期的輸出。每種正確的輸入,系統(tǒng)都能正確響應,或能順利進入下一個界面,或能成功修改數(shù)據(jù)庫,或能顯示新的信息,或能提示操作成功。5 用戶界面設(shè)計和處理過程的設(shè)計的描述;5.1 用戶界面設(shè)計:圖13:系統(tǒng)的歡迎界面界面描述:用戶選擇任意一種身份,并確定,則會進入到相應的操作界面。圖14:送貨員登陸界面 界面描述:送貨員輸入自己的用戶名和密碼,登陸成功之后則進入到送貨員專區(qū)進行相應的操作。 圖15:送貨員功能區(qū)界面描述:第

11、一組中,送貨員可以選擇飲料,并可在右邊的編輯框中輸入飲料數(shù)量。第二組中,送貨員先要選擇對錢幣的具體操作類型,然后選中錢幣面值,輸入錢幣數(shù)量,則可以完成對錢幣的操作。而第三組和第四組主要用來響應“查看按鈕”和“查看錢幣”,顯示數(shù)據(jù)庫中現(xiàn)存的飲料和錢幣信息。第五組中,送貨員可以輸入用戶名和密碼,進行添加新的送貨員。圖16:顧客功能區(qū)界面描述:顧客每次可以選中一種飲料,并投入錢幣。模擬投入錢幣是用編輯框讓顧客輸入投入該種錢幣的數(shù)量。5.2用戶界面設(shè)計說明(1)在“選擇身份”時當選擇“顧客”這個單選按鈕,并確定,則會進入到“顧客專區(qū)”,如果選擇“送貨員”,則會彈出一個登陸對話框.,讓送貨員輸入用戶名和

12、密碼,驗證信息,并作出相應的回應.(2)當送貨員要向系統(tǒng)添加飲料或放置、取走錢幣時,需要首先登陸。輸入用戶名和密碼,驗證通過才可以繼續(xù)下一步的操作。這里開始設(shè)置了一個送貨員,當他登陸成功之后可以在“添加送貨員”中再添加其他的送貨員。(3)送貨員可以添加飲料,用復選按鈕選擇要添加的飲料類型,并且可以在后面的編輯框中輸入添加飲料的數(shù)量。確定之后,首先驗證輸入是否合法。如果是合法的輸入,即可生效。同時,送貨員可以通過選擇放置錢幣或取走錢幣并設(shè)置數(shù)量來添加或減少售貨機中的錢幣。(4)當送貨員點擊“查看飲料”時,在上面的列表框中會顯示現(xiàn)有的飲料信息,包括名稱,數(shù)量和價格。而“查看錢幣”按鈕則能讓售貨機中

13、的錢幣類型和數(shù)目顯示在下面的列表框中。(5)顧客可以選擇一種飲料,并選擇投入的錢幣類型和數(shù)目,系統(tǒng)判斷是否有該種飲料,所投錢幣是否足夠,是否有適當?shù)牧沐X等,從而完成售貨。(6)由于顧客投錢幣有很多種方法,并且找零錢也有很多種組合,設(shè)計起來比較麻煩,所以這里只列舉了幾種投幣和找零的方法。(當然,如果現(xiàn)實中的售貨機沒有該種功能,則可以設(shè)計成只能投入1元或0.5元的硬幣若干,系統(tǒng)判斷所投錢幣是否等于飲料價格,若不相等,則拒絕售出飲料,并退回錢幣)假設(shè)顧客購買“百事可樂“,并投入10元,那么需要找零6.5元。所以如果有5元*1 + 1元*1 + 0.5元*1 這種組合,或者 1元*6 + 0.5元*1

14、 組合,則都是可以購買成功的。這里假設(shè)其他組合為“不適當”。同樣,如果投入5元,那么需要找零1.5元。如果有 1元*1 +0.5元*1這種組合或者 0.5元*3 組合,則都是可以購買成功的。購買其他品種飲料都是如此。(3)假設(shè)顧客在投入10元(或5元)之后,不會再投入其他面值的錢幣。(因為購買飲料的界面設(shè)計成單選,顧客每次只買一種飲料,所需投錢幣小于5元)6 軟件的測試方法和測試結(jié)果。6.1 初始化 先初始化數(shù)據(jù)庫中的數(shù)據(jù),設(shè)置飲料有四種類型,每種價格固定,并且數(shù)量都為0。設(shè)置錢幣的四種類型,并且每種數(shù)量也都為0.6.2 添加飲料、錢幣首先送貨員向售貨機中添加飲料和錢幣,假設(shè)添加的飲料數(shù)量分別

15、為:5,2,4,0.放置的錢幣數(shù)量分別為:0,2,5,8.圖17:添加飲料和錢幣6.3 購買飲料現(xiàn)在顧客可以購買飲料了。(1)假設(shè)顧客A購買“百事可樂”,并且投幣10元。圖18:購買成功購買成功。現(xiàn)在可以查看系統(tǒng)中的飲料和錢幣信息(當然是用送貨員的身份查看):可以看到,“百事可樂”的數(shù)量已經(jīng)減少為4,而錢幣的數(shù)量也有相應的變化。圖19:查看飲料、錢幣信息(2)假設(shè)顧客B購買“可口可樂”,并投幣1元*2.可知,投入的錢幣不夠。系統(tǒng)彈出一個對話框提示顧客所投錢幣不夠。圖20:投幣不夠 這時可以查看現(xiàn)有飲料和現(xiàn)有錢幣,可以發(fā)現(xiàn),數(shù)據(jù)并沒有被修改。(3)假設(shè)顧客C購買“雪碧”,并投幣5元。用送貨員的身

16、份可以看到,現(xiàn)在售貨機中沒有“雪碧”這種飲料了,所以會提示用戶選擇另外一種飲料。圖21:無飲料(4)送貨員注冊新的送貨員信息。用初始的用戶名和密碼登陸的送貨員向系統(tǒng)添加新的送貨員,用戶名為“software”,密碼為0504.則添加成功。以后即可用該用戶名和密碼登陸。圖22:添加送貨員(5)注冊新的送貨員信息時,仍然用software這個用戶名。可知添加不能成功。這里會出現(xiàn)提示:圖23:添加同名送貨員7 設(shè)計的特點、不足、收獲與體會。7.1 設(shè)計的特點與不足 將自動售貨機用程序模擬,完成了其基本功能,如添加飲料、放置錢幣、取走錢幣和購買飲料。而且設(shè)計中可以流通面值大于飲料價格的錢幣(如10元、

17、5元的錢幣),這樣設(shè)計比較適合以后售貨機的發(fā)展趨勢,即可以找零。送貨員可以查看已有飲料和錢幣信息,這樣可以知道一周之內(nèi)各種飲料的售出情況,從而可以適當調(diào)整各種飲料的供應量,以追求最大化的利潤。在需要找零時,系統(tǒng)自動瀏覽數(shù)據(jù)庫中的錢幣信息,計算各種可能的組合,判斷是否可以找零,并進行提示成功或失敗。在送貨員取走錢幣時,判斷是否可以有足夠的錢幣可以取。送貨員可以添加信息生成新的送貨員,以使其他人可以成為該售貨機的送貨員來操作。 不足之處在于設(shè)計有些簡單,飲料價格被設(shè)置為固定的,不能修改。當然,這在一定時期內(nèi)是可以的,如果飲料價格有變動,還需要修改數(shù)據(jù)庫,操作不太安全。這還需要改進。7.2 收獲與體會 通過對飲料自動售貨機系統(tǒng)的設(shè)計與實現(xiàn),從最開始搜集需求、系統(tǒng)分析、詳細設(shè)計再到實現(xiàn),對軟件開發(fā)的整個

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論