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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論