




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要隨著經(jīng)濟水平的提高,人們開始追求靈活、方便、快捷以及自助式服務(wù),這使得自動售貨機得以迅猛的發(fā)展。自動售貨機吸引了大量的顧客,人們可以利用自動售貨機購買飲料,零食等商品。在發(fā)達國家,自動售貨機已經(jīng)成為零售業(yè)不可分割的一部分,這種前衛(wèi)的消費方式吸引了眾多客戶。并且,針對地球暖化,新型自動售貨機的開發(fā)致力于能源的節(jié)省。本論文涉及到自動化、節(jié)能和計算機軟件的開發(fā),該軟件可以更加方便的應(yīng)用在自動售貨機中。本文對用Java語言設(shè)計自動售貨機進行了系統(tǒng)的研究,利用Java語言實現(xiàn)自動售貨機的硬幣識別,幣值累加,自動售貨,自動找錢功能。該軟件的程序代碼具有靈活性和可擴展性,它可以重復(fù)使用,而且當整個系統(tǒng)實施一些新的特點時,對現(xiàn)有代碼的影響較小。關(guān)鍵詞:自動售貨機;Java設(shè)計模式;J2SE
AbstractWiththeimprovementofeconomiclevel,peoplebegantopursueaflexible,convenient,efficient,andself-service.Akindofmachinewhichiscalledvendingmachineemergesandattractsquantitiesofcustomerstouseittobuydrinks,snacksandsimilarproducts.Indevelopedcountries,thevendingmachinehasbecomeanintegralpartoftheretailindustry,thisavant-gardewayofconsumptionattractedmanycustomers.And,inviewofglobalwarming,newdevelopmentofvendingmachineiscommittedtoenergysaving.Thispaperinvolvestheautomation,energyefficiencyandcomputersoftwaredevelopment,whichcanbemoreconvenientapplicationinthevendingmachine.Thisthesis
hasa
systemic
study
ofthedesignofvendingmachineintheJavalanguage.Thesystemcanachievethefunctionssuchascoinrecognition,
currencyaccumulate,vendingmachines,automaticallychangebyusingJavalanguage.Thesoftwareprogramcodehastheflexibilityandextensibility,so
itcanberepeateduse,andwhentheentiresystemtoimplementsomenewcharacteristics,therewillbelessimpactonexistingcode.Keywords:VendingMachine;JavaDesignPatterns;J2SEPAGE36目錄TOC\o"1-2"\u目錄 ITOC\o"1-3"\h\u7378第1章概述 12381.1研究的背景和意義 1116781.2自動售貨機產(chǎn)業(yè)的現(xiàn)狀 1267441.3本論文主要研究的內(nèi)容 220829第2章Java語言介紹 3301452.1Java語言的特點 3105082.2Java的發(fā)展 4134992.3本章小結(jié) 719498第3章開發(fā)環(huán)境概述 853353.1系統(tǒng)硬件環(huán)境概述 847553.2系統(tǒng)軟件環(huán)境概述 10174123.3系統(tǒng)開發(fā)環(huán)境及其開發(fā)工具 10230273.4本章小結(jié) 1123250第4章環(huán)境搭建 1230424.1安裝JDK 12109044.2設(shè)置環(huán)境變量 1245984.3本章小結(jié) 1517862第5章系統(tǒng)軟件設(shè)計 1639165.1總體設(shè)計 16234995.2系統(tǒng)詳細設(shè)計與性能分析 16131315.3系統(tǒng)實現(xiàn) 18169295.4本章小結(jié) 2727766結(jié)論 287039參考文獻 291275致謝 308882附錄 31第1章概述1.1研究的背景和意義自動售貨機是一種全新的商業(yè)零售形式。20世紀70年代自日本和歐美發(fā)展起來。它又被稱為24小時營業(yè)的微型超市。在日本,70%的罐裝飲料是通過自動售貨機售出的;全球著名飲料商可口可樂公司在全世界就布有50萬臺飲料自動售貨機[1]。在中國,售貨機從1999年開始進入中國市場。如今,在機場、地鐵、商場、公園等客流量較大的場所也不難發(fā)現(xiàn)自動售貨機的身影。從自動售貨機的發(fā)展趨勢來看,它的出現(xiàn)是由勞動密集型的產(chǎn)業(yè)構(gòu)造向技術(shù)密集型社會轉(zhuǎn)變的產(chǎn)物。大量生產(chǎn)、大量消費以及消費模式和銷售環(huán)境的變化要求出現(xiàn)新的流通渠道;而相對的超市、百貨購物中心等新的流通渠道的產(chǎn)生,人工費用也不短上升;再加上場地的局限性以及購物的便利性等因素的制約,無人自動售貨機作為一種必須的機器便應(yīng)運而生了。自動售貨機可以充分補充人力資源的不足,適應(yīng)消費環(huán)境和消費模式的變化,24小時無人售貨的系統(tǒng)可以更省力,運營時需要的資本少、面積小,有吸引人們購買好奇心的自身性能,可以很好地解決人工費用上升的問題等各項優(yōu)點。自動售貨機解放了人力,方便了生活,創(chuàng)造了效益,方便廣大的市民。實踐和直覺告訴我們,自動售貨機在中國的橫空出世,必將為國內(nèi)的食品、香煙、飲料等諸多行業(yè)帶來新的契機,中國的現(xiàn)代文明又將以自動售貨機的應(yīng)用和普及開創(chuàng)一個新的時代。所以設(shè)計自動售貨機是非常必要的。1.2自動售貨機產(chǎn)業(yè)的現(xiàn)狀首先,我們來看一下發(fā)達國家的現(xiàn)狀。日本:各種自動售貨機保有量超過600萬臺,平均20人一臺,世界普及率第一。1990年通過自動售貨機實現(xiàn)的銷售額已達到5兆日元(約3000億人民幣)。美國:總的機器保有量大致和日本相當,2000年通過自動售貨機實現(xiàn)的銷售額達到250億美元,其中OCS(OfficeCoffeeService)的銷售額排第六位。韓國:自動售貨機的使用歷史要遠短于其它發(fā)達國家,僅有25年,據(jù)2001年的統(tǒng)計,總保有量已超過80萬臺。在2001年韓國生產(chǎn)的自動售貨機中OCS占32.7%,排第一位,咖啡自動售貨機占18.1%,排第三位,僅次于18.6%的充電自動售貨機。瓶罐飲料自動售貨機和復(fù)合型自動售貨機(同機銷售瓶罐飲料和熱咖啡)都僅占8.6%,并列第四位。下面,我們來看一下我國的現(xiàn)狀[2]。自動售貨機在我國的安放和使用,也已經(jīng)有10多年的時間,但一直沒有全面普及。中國自1993年開始從日、韓等國引進自動售貨機并投放中國市場。1995年第一臺國產(chǎn)自動售貨機在北京誕生。1999年國產(chǎn)自動售貨機形成規(guī)模生產(chǎn)并批量投放市場。相對于日本、美國等發(fā)達國家,中國目前市場運營的自動售貨機數(shù)量還很少。至2000年初,中國自動售貨機研發(fā)、制造和運營的企業(yè)有10多家,天津南開戈德集團規(guī)模最大。在自動售貨機運營商方面,主要是由制造企業(yè)的關(guān)聯(lián)或下屬企業(yè)運營,如戈德集團的戈德移動商務(wù)公司、澳珂瑪集團的澳鴻自動商務(wù)公司等,中國目前還沒有產(chǎn)生獨立的運營商。自動售貨機這種全新的零售方式已逐漸被國人所接受和信賴。隨著我國商品市場的不斷繁榮和城市現(xiàn)代化程度的不斷提高,自動售貨機也已悄然步入了我國的大中城市。自動售貨機在北京、上海、大連、沈陽、西安開始出現(xiàn),成為不少年輕人時髦的購物選擇。在國家相關(guān)政府部門的大力支持下,中國的自動售貨機產(chǎn)業(yè)以超常規(guī)的速度迅猛發(fā)展,并帶動了一批新的服務(wù)業(yè)、物流運輸配送業(yè)的快速發(fā)展,豐富了中國的商業(yè)產(chǎn)業(yè)結(jié)構(gòu),開創(chuàng)了一個全新的自動銷售和自助服務(wù)的時代[3]。1.3本論文主要研究的內(nèi)容本論文主要研究用Java語言進行自動售貨機控制系統(tǒng)軟件部分的設(shè)計,即自動售貨機的主控制系統(tǒng)。可以實現(xiàn)硬幣識別,幣值累加,自動售貨,自動找零的功能。該設(shè)計提高了自動售貨機的可靠性和執(zhí)行效率,且系統(tǒng)維護容易,維修簡單,有一定的市場推廣價值。本論文的主要研究工作如下:,概述。簡要介紹了本次畢業(yè)設(shè)計的背景,闡述了自動售貨機的產(chǎn)業(yè)現(xiàn)狀,介紹研究本課題的目的、意義和內(nèi)容。,Java語言介紹。主要介紹了Java語言的特點及其發(fā)展歷程。第三章,系統(tǒng)環(huán)境概述。介紹了本設(shè)計的硬件系統(tǒng)環(huán)境及其軟件系統(tǒng)環(huán)境。第四章,環(huán)境搭建的介紹。主要講解如何運行Java程序。第五章,利用Java語言進行詳細設(shè)計。包括總體結(jié)構(gòu)設(shè)計與性能分析,主要操作的流程圖,具體詳細設(shè)計以及功能實現(xiàn)。并介紹了本設(shè)計的兩個創(chuàng)新點。最后是總結(jié),對本次的研究工作作出總結(jié),闡明研究出的一些規(guī)律,說明了本次工作的重難點。第2章Java語言介紹2.1Java語言的特點Java是1995年6月有Sun公司引進到這個世界的革命性的編程語言,它被美國的著名雜志《PCMagazine》評為1995年十大優(yōu)秀科技產(chǎn)品。之所以稱Java為革命性編程語言,是因為傳統(tǒng)的軟件往往與具體的實現(xiàn)環(huán)境有關(guān),一旦環(huán)境有所變化就需要對軟件進行一番改動,耗時費力,而Java編寫的軟件能在執(zhí)行碼上兼容。這樣,只要計算機提供了Java解釋器,Java編寫的軟件就能在其上運行[4]。自從1946年世界上第一臺電子計算機問世以來,計算模式的發(fā)展經(jīng)歷了三個階段:集中計算模式、分散計算模式和網(wǎng)絡(luò)計算模式。Internet的出現(xiàn),為在網(wǎng)絡(luò)計算模式下的科學計算和信息處理提供了良好平臺。然而,要充分利用網(wǎng)絡(luò)計算模式的功能與效益,平臺的運行環(huán)境是個制約因素,而Java語言和Java技術(shù)則是解決這一問題的最佳途徑。Java語言具有以下特點:1、Java語言是簡單的。Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學習和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內(nèi)存管理而擔憂。2、Java語言是一個面向?qū)ο蟮摹ava語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定。總之,Java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言。3、Java語言是分布式的。Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口,它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI機制也是開發(fā)分布式應(yīng)用的重要手段。4、Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。5、Java語言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡(luò)下載的類具有一個安全防范機制,如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制讓Java應(yīng)用設(shè)置安全哨兵。6、Java語言是體系結(jié)構(gòu)中立的。Java程序在Java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。7、Java語言是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSIC實現(xiàn)的。8、Java語言是解釋型的。如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。在運行時,Java平臺中的Java解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運行環(huán)境中。9、Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。10、Java語言是多線程的。在Java中,線程是一種特殊的對象,它必須由Thread類或其子類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable)的構(gòu)造子將一個實現(xiàn)了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象,即為線程。Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何線程均有它的run方法,而run方法中包含了線程要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制。11、Java語言是動態(tài)的。Java語言的設(shè)計目標之一是適應(yīng)于動態(tài)變化的環(huán)境。Java程序需要的類能夠動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查[5]。2.2Java的發(fā)展Java自正式問世以來已經(jīng)歷了數(shù)年的歷程,其發(fā)展極快。一年一度在美國舊金山召開的世界JavaOne語言開發(fā)者大會(JavaOneDeveloperConference)盛況空前正說明了這一點。四年中每年的JavaOne大會,既是了解Java最新技術(shù)動態(tài)、應(yīng)用成果和下一步發(fā)展趨勢的最好場所,又是推動下一年Java快速發(fā)展的重要動力。首屆JavaOne大會于1996年召開,各屆簡況如下:1996年5月29-31日,第一屆,出席會議者6500余人,來自工業(yè)界的超過一半。有人評價說:“這是近年計算機界最光輝的一次盛會”。工業(yè)界相當看好Java語言,認為它的使用將會引起一場軟件革命:從軟件的設(shè)計風格、設(shè)計方法、設(shè)計目標到設(shè)計過程,都會產(chǎn)生徹底的變革,“甚至會改變此星球的生活方式”。1997年,第二屆,出席會議者10000人。Java的追隨者不斷增加,應(yīng)用開發(fā)迅速起步。1998年3月24-27日,第三屆,出席會議者14000余人,注冊門票售價1195美元,否則1395美元,即使如此,仍有不少人不惜工本,擠入會場。本次會議除了軟件巨頭微軟未參加會議外,幾乎所有的計算機公司都參加了。展廳內(nèi)設(shè)300多個展臺,先后舉行了90場專題討論會,每場參加的人數(shù)從千人至五六千人不等。會議的主題是:通過Java的培訓(xùn)來帶動Java軟件的開發(fā)和技術(shù)研究,從而發(fā)展生產(chǎn)力,獲取高額利潤,提高生活質(zhì)量,推動信息產(chǎn)業(yè)的進步。會議展出的內(nèi)容大致如下:Java開發(fā)工具軟件,如:JMF、JDK、SymantecVisualCafe、JavaDynamicManagementKit、JFC、JNDI、JavaStudio等;企業(yè)信息管理解決方案軟件,如:EJB;基于Java技術(shù)的信息家電,如:機頂盒、Java電話等;個人信息綜合服務(wù)、社會信息綜合查詢亭;電子商務(wù)軟件、智能卡、JavaCardAPI等;網(wǎng)絡(luò)計算環(huán)境下的Java服務(wù)器軟件、遠程方法調(diào)用、基于Java技術(shù)的移動計算設(shè)備;JMS用于出版、票據(jù)訂閱的軟件;JOS、基于Java技術(shù)的NC和JavaStation。隨著Internet的飛速發(fā)展,企業(yè)計算模式正摒棄C/S結(jié)構(gòu)而采用Web-Browser結(jié)構(gòu),此即瘦客戶端/胖服務(wù)器、大容量數(shù)據(jù)庫的3層或N層體系結(jié)構(gòu)。由于Java的特點,使得它在開發(fā)服務(wù)器端的應(yīng)用程序方面有著得天獨厚的優(yōu)勢,面向服務(wù)器端的J2EE為當今逐漸流行的N層體系結(jié)構(gòu)提供了一個標準的Java計算平臺:界面一致、工具簡易、豐富、Web頁面互聯(lián)便捷,從而能大大加速和簡化各種應(yīng)用系統(tǒng)的開發(fā)。Java語言的出現(xiàn)和發(fā)展,得到了IT業(yè)界的青睞,它像一面大旗,凝聚了世界眾多的廠商與Sun公司一道,結(jié)成了對抗微軟壟斷的聯(lián)盟。許多知名廠商紛紛購買Java許可證,目前已有90多萬個軟件開發(fā)商加入了Java陣營,1億個Java最終用戶,幾千種Java應(yīng)用軟件產(chǎn)品,1500余種Java書籍。IBM公司提出“高舉Java大旗,全力以赴”的口號,它在全世界的11個國家有28個實驗室,集聚了2500余名技術(shù)人員,全天侯24小時進行全方位開發(fā);芯片巨人Intel提出“抓住時機,占領(lǐng)Java陣地”決心使Intel芯片系統(tǒng)成為開發(fā)Java應(yīng)用運行的最佳平臺;Novell則宣稱“Java是Novell的未來,未來是服務(wù)器端Java的市場”;作為Java發(fā)明者的Sun公司,堅持“保衛(wèi)Java大旗,發(fā)展Java之路”的方針,從而占領(lǐng)市場。此外,HP、Oracle、Apple、Sybase、Netscape、Informix、3Com、Motorola等公司均是Sun的堅強同盟。在中國,Java的開發(fā)可以說是“人才濟濟,成果累累”。如清華大學王克宏教授帶領(lǐng)的課題組面向全國,自96年開始舉辦了多期Java培訓(xùn)班和講座,開設(shè)了數(shù)期本科生、研究生Java課程,出版了“Java系列叢書”10余冊,承擔了國家“九五”攻關(guān)項目“基于Java技術(shù)的交互式遠程教學系統(tǒng)”,并與日本就Java開發(fā)進行了國際合作,成績斐然;東大阿派下屬的寶鋼東軟軟件技術(shù)研究中心是國內(nèi)是首屈一指的Java研發(fā)骨干企業(yè),該中心從95年起就開始了Java的研發(fā),目前,已掌握了PersonalJava的核心移植技術(shù),并成功地將JVM移植到汽車導(dǎo)航平臺。此外,他們還開發(fā)出支持Jini協(xié)議的即插即用網(wǎng)絡(luò)打印機軟件,以及一套Jini信息家電網(wǎng)絡(luò)的可視化演示環(huán)境,完成了基于JavaBeans的組件化軟件開發(fā)及運行支持環(huán)境等多項成果;在臺灣,22家知名計算機公司成立了“Java聯(lián)盟”,并在臺北建立了“Java開發(fā)中心”,新竹建立了“Java語言實驗室”;在香港,舉行了全島Java杯比賽,掀起了學習Java的熱潮。Java的浪潮洶涌澎湃,席卷全球。Java發(fā)展至今日,已不僅僅是一種編程語言,實際上已形成了一門技術(shù)。其內(nèi)容包括:1、Java軟件包Java語言及其編程技術(shù)、JavaOS、Java開發(fā)環(huán)境與工具、Java語言的各種軟件包、數(shù)據(jù)庫接口JDBC等。2、Java虛擬機及其規(guī)范3、Java嵌入技術(shù)1999年8月2日,Sun公司宣布名為MAJC的專門為Java語言設(shè)計的的芯片優(yōu)化研制成功,欲與Intel試比高低。該芯片在設(shè)計時采用了模塊式高性能計算引擎,實質(zhì)為一種芯片級并行處理機,能以更有效的方式分解計算任務(wù),特別適合處理多媒體數(shù)據(jù)。Sun公司希望通過MAJC芯片的發(fā)布催生出一個基于Java語言的微處理器家族,與Intel公司競爭。設(shè)想中的Java處理器將應(yīng)用在從低價消費電子產(chǎn)品到高端因特網(wǎng)服務(wù)器領(lǐng)域。4、Java計算基于Java技術(shù)的企業(yè)Internet/Intranet信息系統(tǒng)以及其他應(yīng)用系統(tǒng)。5、Jini技術(shù)1999年初正式發(fā)布后,立刻得到業(yè)界的廣泛支持。Jini的出現(xiàn)為Java網(wǎng)絡(luò)連接提供了公共標準,使得任何Java設(shè)備都可以連入網(wǎng)絡(luò)中被自動識別,并可充分利用網(wǎng)絡(luò)上已有的各種資源。它把網(wǎng)絡(luò)上的各類設(shè)備(包括消費類電子設(shè)備如移動電話、PDA、DTV、HPC、NC、游戲機、電冰箱、智能卡等等)和各種軟件組合成一個單一、動態(tài)的分布式系統(tǒng),使網(wǎng)絡(luò)更易于操縱、易于管理,具有更高的可配置性。Jini將使網(wǎng)絡(luò)具有自發(fā)性,它的出現(xiàn)大大擴展了“計算”和“計算機”的含義,極大地簡化了網(wǎng)絡(luò)操作,對家庭用戶來說,使用網(wǎng)上設(shè)備即插即用,就像使用電話一樣方便。Java和Jini不僅可以不依賴于Windows為代表的操作系統(tǒng),而且引導(dǎo)著信息產(chǎn)業(yè)的潮流,使Sun公司能在未來的、非PC類電子產(chǎn)品的數(shù)字化市場中強占制高點。6、Jiro平臺異質(zhì)網(wǎng)絡(luò)環(huán)境中安裝的存儲系統(tǒng)的多樣性和分布性,給存儲管理帶來了巨大的挑戰(zhàn)。用戶和開發(fā)人員都希望能有一種技術(shù),能更好地促進企業(yè)存儲管理方案的開發(fā)。而Jiro平臺正是解決此問題的革命性方案。Jiro平臺實現(xiàn)了Java和Jini技術(shù),它是一個便于用戶管理異質(zhì)網(wǎng)絡(luò)上由各種服務(wù)器、存儲和設(shè)備組成的混合環(huán)境的開放式存儲管理平臺。它對操作系統(tǒng)是中立的。Jiro為跨異質(zhì)存儲局域網(wǎng)(SAN)的管理服務(wù)和設(shè)備提供了一個開放平臺,允許服務(wù)器、存儲和聯(lián)網(wǎng)設(shè)備在異質(zhì)網(wǎng)絡(luò)環(huán)境中無縫地協(xié)同工作。Jiro平臺為開發(fā)者帶來的好處有:允許開發(fā)者利用各種實現(xiàn)管理存儲網(wǎng)絡(luò)的目標功能創(chuàng)建應(yīng)用;提供了一個可以在各種應(yīng)用、服務(wù)和設(shè)備之間交互操作的組件模型;允許設(shè)備易被增加、刪除;允許應(yīng)用或服務(wù)被自動更新。1999年7月,Sun發(fā)布了正式的Jiro規(guī)范草案,供公眾討論、修改。目前,Jiro平臺的團體成員已超過25家,支持Jiro平臺的廠商超過300家。有眼光的廠商紛紛加入到這些組行列,從而加快了Jiro的發(fā)展[6]。2.3本章小結(jié)本章介紹了Java語言。從Java語言的特點及其Java語言的發(fā)展歷程進行介紹。第3章開發(fā)環(huán)境概述3.1系統(tǒng)硬件環(huán)境概述自動售貨機是集光、機、電一體化的獨立機構(gòu),它只需要顧客投幣和按鍵購物選擇即可自動售貨及退錢找零,其工作程序如下圖所示:顧客投幣顧客投幣選擇商品取出商品取出余幣機器自動計數(shù)機器送出選定商品機器將余幣送出圖3-1自動售貨機工作時序圖自動售貨機的工作原理是:首先,從投幣口送入貨幣,然后通過傳感器采集數(shù)據(jù)、識別器判斷貨幣的真?zhèn)尾⑴袆e面值。然后,識別器把信息數(shù)據(jù)傳送給通信模塊。通信模塊與售貨機的主控制系統(tǒng)通信,主控系統(tǒng)顯示面值,啟動售貨機的面板鍵,顯示出哪個貨道有貨,哪個貨道已經(jīng)售完,并等待顧客選擇商品。顧客選擇商品后,售貨機自動把商品送出,等待顧客取走。在交易過程中,如果金額足夠多,顧客可以將找回的零錢取回,完成交易;如果款額不足,則不能進行交易。下面結(jié)合圖3-2對本自動售貨機做進一步描述:如圖3-2示,這種具備商品信息和健康建議功能的自動售貨機包括機身1、商品收容室2、貨物傳送裝置、中央處理器,機身1上有商品取出口3、貨幣投入口4,商品收容器、貨物傳送裝置、中央處理器均設(shè)置在機身內(nèi),從貨幣投入口4投入貨幣后,如需找零,剩余的貨幣從退幣口5退出,購買的商品從商品取出口3傳送出來;機身1上還設(shè)置有商品健康信息觸摸顯示器6,商品健康信息觸摸顯示器6連接中央處理器,中央處理器連接商品健康信息存儲器。商品健康信息觸摸顯示器6設(shè)置在貨幣投入口4的上面。圖3-2自動售貨機圖3-3是自動售貨機的硬件原理圖,如圖所示,人們在通過觸摸的方式操作商品健康信息觸摸顯示器6后,商品健康信息觸摸顯示器6會將此信息傳送給中央處理器,中央處理器從商品健康信息存儲器中查找到相關(guān)信息后,從商品健康信息觸摸顯示器6顯示出來,供人們查閱。主控制系統(tǒng)主控制系統(tǒng)DTU/DEI接口MDB接口擴展存儲器實時時鐘人機模塊電機陣列驅(qū)動接口信號檢測串行通信并行總線I/O口貨幣識別器制冷控制板觸摸顯示器貨物傳送裝置圖3-3硬件原理圖綜上所述,自動售貨機控制系統(tǒng)可以分為三部分組成,即自動售貨機的主控制系統(tǒng)、通訊系統(tǒng)、硬幣及紙幣識別系統(tǒng)。其中主控制系統(tǒng)是本設(shè)計的研究重點。下面將著重介紹。3.2系統(tǒng)軟件環(huán)境概述本設(shè)計是利用Java語言設(shè)計的,下面將分別介紹本系統(tǒng)的運行平臺及運行環(huán)境。目前Java運行平臺主要分為下列3個版本。J2SE:稱為Java標準版或Java標準平臺。J2SE提供了標準的SDK開發(fā)平臺(以前稱為JDK開發(fā)平臺)。利用該平臺可以開發(fā)Java桌面應(yīng)用程序和低端的服務(wù)器應(yīng)用程序,也可以開發(fā)JavaApplet程序。J2EE:稱為Java企業(yè)版或Java企業(yè)平臺。使用J2EE可以構(gòu)建企業(yè)級的服務(wù)器應(yīng)用程序,J2EE平臺包含了J2SE平臺,并增加了附加類庫,以便支持目錄管理、交易管理和企業(yè)級消息處理等功能。J2ME:稱為Java微型版或Java小型平臺。J2ME是一種很小的Java運行環(huán)境,用于嵌入式的消費產(chǎn)品中,如移動電話、掌上電腦或其它無線設(shè)備等。本系統(tǒng)的運行平臺是J2SE。同時,本系統(tǒng)的運行環(huán)境是Java7。Java7具有以下特性:首先,Java7采用了模塊的劃分方式來提速,一些不是必須的模塊并沒有下載和安裝,因此在使用全新的Java7的虛擬機的時候會發(fā)現(xiàn)真的很快,當虛擬機需要用到某些功能的時候,再下載和啟用相應(yīng)的模塊,這樣使得最初需要下載的虛擬機大小得到了有效的控制。同時對啟動速度也有了很大的改善。其次是多語言支持,Java7的虛擬機對多種動態(tài)程序語言增加了支持,比如:Rubby、Python等等。對這些動態(tài)語言的支持極大地擴展了Java虛擬機的能力。第三是開發(fā)者的開發(fā)效率得到了改善,Java7通過多種特性來增強開發(fā)效率。通過注解增強程序的靜態(tài)檢查。提供了一些新的API用于文件系統(tǒng)的訪問、異步的輸入輸出操作、Socket通道的配置與綁定、多點數(shù)據(jù)包的傳送等等。最后是執(zhí)行效率的提高,Java7壓縮了64位的對象指針,通過對對象指針由64位壓縮到與32位指針相匹配的技術(shù)使得內(nèi)存和內(nèi)存帶塊的消耗得到了很大的降低因而提高了執(zhí)行效率。此外還提供了新的垃圾回收機制(G1)來降低垃圾回收的負載和增強垃圾回收的效果。G1垃圾回收機制擁有更低的暫停率和更好的可預(yù)測性。3.3系統(tǒng)開發(fā)環(huán)境及其開發(fā)工具開發(fā)環(huán)境:JDK開發(fā)工具:Myeclipse3.4本章小結(jié)本章主要介紹了本次設(shè)計的主要系統(tǒng)環(huán)境,其中包括硬件系統(tǒng)和軟件系統(tǒng)。著重介紹了本系統(tǒng)的運行環(huán)境及運行平臺,同時還介紹了Java語言的開發(fā)平臺以及相關(guān)的開發(fā)工具的介紹。第4章環(huán)境搭建4.1安裝JDK1、打開“http///”網(wǎng)頁,根據(jù)本地計算機的操作系統(tǒng),選擇并下載適合此系統(tǒng)的JDK版本。2、找到安裝程序后,雙擊jdk-7u21-windows-i586.exe,運行安裝程序進行安裝。3、等程序初始化完成后,選擇接受許可證協(xié)議,繼續(xù)安裝。4、選擇要安裝的組件,點擊“下一步”按鈕繼續(xù)安裝,一般選擇默認組件直接進入下一步。5、等待程序安裝完成后,顯示安裝完成界面,至此JDK安裝完成[7]。4.2設(shè)置環(huán)境變量1、在桌面右鍵點擊“我的電腦”圖標,在出現(xiàn)的菜單中選擇“屬性”選項,出現(xiàn)的界面如圖4-1所示。圖4-1系統(tǒng)屬性2、選擇“高級”選項,如圖4-2所示,并單擊“環(huán)境變量”按鈕,彈出“環(huán)境變量”對話框,如圖4-3所示。圖4-2“高級”界面圖4-3“環(huán)境變量”對話框3、在“系統(tǒng)變量”對話框里找到變量名“Path”,并選出,再單擊“編輯”按鈕進入“編輯系統(tǒng)變量”對話框,如圖4-4所示。圖4-4“編輯系統(tǒng)變量”對話框4、在所有的變量值前面輸入“C:\ProgramFiles\Java\jdk1.7.0_21”,注意有分號,路徑根據(jù)情況進行設(shè)置。5、在“系統(tǒng)變量”對話框里點擊“新建”按鈕,彈出“新建系統(tǒng)變量”對話框,如圖4-5所示。圖4-5“新建系統(tǒng)變量”對話框6、設(shè)置變量名為“CLASSPATH”,變量值為“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”,路徑根據(jù)情況進行設(shè)置,如圖4-6所示。圖4-6填入新值配置完成后,需要測試是否配置正確。下面給出了詳細的測試步驟,按照這個步驟操作可以很輕松地完成測試。1、單擊“開始”按鈕,在彈出的開始菜單中再單擊“運行”菜單項,將出“運行”對話框。在“運行”對話框里輸入“cmd”,并單擊“確定”按鈕,如圖4-7所示。圖4-7“運行”對話框2、在命令提示符窗口里輸入“javac”和“java”,觀察是否出現(xiàn)javac或java的用法提示,如圖4-8所示。圖4-8配置正確的環(huán)境變量信息4.3本章小結(jié)本章詳細的介紹了Java運行環(huán)境的安裝過程,包括安裝JDK以及如何設(shè)置環(huán)境變量。正確的設(shè)置環(huán)境變量是整個程序能否運行的關(guān)鍵。第5章系統(tǒng)軟件設(shè)計5.1總體設(shè)計只要的使用者有兩類人,一類是顧客,另一類是管理員。如下圖所示,在顧客操作模式下,顧客可以利用前觸屏,投幣口,以及分配渠道三個部分通過內(nèi)部網(wǎng)連接到控制系統(tǒng),控制端通過內(nèi)部網(wǎng)將商品信息以及幣值總而發(fā)送到信息數(shù)據(jù)庫。在管理員模式中,管理員利用內(nèi)部顯示屏以及內(nèi)部鍵盤和鼠標通過內(nèi)部網(wǎng)連接控制端,以此輸入信息等[8,9]。顧客顧客前觸摸屏投幣口分配通道管理員內(nèi)部顯示屏內(nèi)部鍵盤和鼠標控制系統(tǒng)信息數(shù)據(jù)庫圖5-1總體設(shè)計框圖5.2系統(tǒng)詳細設(shè)計與性能分析獲取庫存當顧客選擇一個商品時,該商品信息會通過機器控制模塊發(fā)送到商品識別模塊,從而獲取商品的庫存信息。如果庫存充足,機器控制模塊會給操作模塊發(fā)送一個消息,并將界面改成付款界面。流程圖如圖5-2所示。操作模塊操作模塊機器控制模塊商品識別模塊所選商品所選商品反饋庫存更改界面圖5-2庫存獲取流程圖密碼驗證操作操作模塊機器控制模塊模塊管理員賬戶模塊輸入密碼傳送密碼反饋信息更改模式圖5-3密碼驗證流程圖如圖5-3所示,管理員進入操作模式時,需要輸入密碼。操作模塊將輸入的密碼發(fā)送到機器控制模塊,再傳送到管理員賬戶模塊。通過核對密碼,將信息反饋到機器控制模塊,機器控制模塊判斷輸入的密碼是否正確。在機器可以判斷輸入的密碼是否正確之前,機器的內(nèi)部需要存儲一個密碼。因此,一旦輸入的密碼錯誤,系統(tǒng)將會提示警告信息,并阻止接下來的操作,更改到服務(wù)模式下[10]。記錄更改設(shè)置如圖5-4所示,管理員可以通過操作模式進行更改,如添加新的商品、更改庫存、更改商品價格等。更改的信息將傳送到機器控制模塊,將更改的信息發(fā)送到機器中。機器收到更改信息后,生成信息的具體的實體值,并將信息發(fā)送到存儲模塊,進行存儲記錄。操作模塊操作模塊機器控制模塊存儲模塊更改存儲圖5-4信息更改流程圖數(shù)據(jù)存儲如圖5-5所示,如果系統(tǒng)中出現(xiàn)修改,將會出現(xiàn)提示窗口。如果確定修改,系統(tǒng)將重新存儲數(shù)據(jù)。機器控制模塊對信息生成新的文件,并存儲數(shù)據(jù),最終發(fā)送到文件系統(tǒng)中,生成新的文件。如果數(shù)據(jù)錯誤,將重新復(fù)位。機器控制模塊機器控制模塊文件系統(tǒng)復(fù)位設(shè)置新的數(shù)值存儲圖5-5數(shù)值存儲流程圖硬幣計數(shù)變化如圖5-6所示,如果管理員利用操作模塊對硬幣的庫存,以及各類硬幣的現(xiàn)有值進行更改,機器控制模塊將信息發(fā)送到硬幣模塊,硬幣模塊根據(jù)更改信息進行整合,然后把當前庫存顯示出來。操作模塊操作模塊機器控制模塊硬幣模塊傳遞參數(shù)參數(shù)圖5-6計數(shù)變化流程圖5.3系統(tǒng)實現(xiàn)5.3.1顧客購買操作實現(xiàn)當打開該軟件時,進入購物模式,出現(xiàn)如圖5-7所示界面。在這一界面我們能夠看到商品提示的購買建議。圖5-7用戶購買界面購買界面中出現(xiàn)五種商品,并且有每種商品對應(yīng)的名稱及價格,還有當?shù)夭僮鲿r間。以下以購買可口可樂為例。點擊可口可樂下面的“購買”按鈕,出現(xiàn)圖5-8界面。該界面會出現(xiàn)提示信息,提示顧客選擇的商品是“可樂”。顧客通過“+1”“+5”“+10”選擇購買可樂的數(shù)量。選擇完畢后,點擊“確認”。若想刪除之前的選擇,點擊“刪除”,若想返回上一頁重新選擇,點擊“返回”。圖5-8購買可樂(1)以選擇一瓶為例,選擇完畢后,出現(xiàn)圖5-9界面。提示用戶選擇了一瓶可樂,總金額3元。點擊“付款”投入貨幣。圖5-9購買可樂(2)然后開始投幣,如圖5-10所示。該系統(tǒng)可以接受的硬幣為0.5元、1元、2元、5元以及10元和20元。如果先投入1元,系統(tǒng)提示還需繼續(xù)投入2元。圖5-10可樂購買(3)如果再投入2元,則出現(xiàn)圖5-11界面。圖5-11可樂購買(4)當投入的金額大于等于商品要求金額,則可繼續(xù)進行購買,點擊“確認”。出現(xiàn)如圖5-12界面。這一界面,用于信息確認,顯示顧客購買的商品及商品數(shù)量,投入的硬幣總額以及需要退還的零錢。如果想取消購買,則點擊“取消”。圖5-12可樂購買(5)確認信息無誤后,點擊“確認”,出現(xiàn)5-13界面。該界面用于提示顧客應(yīng)該獲得的零錢多少。圖5-13可樂購買(6)點擊“完成”,完成交易。出現(xiàn)5-14界面。如果顧客需要打印發(fā)票,則可以點擊“打印發(fā)票”進行發(fā)票打印;如不需要則可以點擊“退出”。圖5-14可樂購買(7)5.3.2管理員操作實現(xiàn)如果想進入到管理員模式,則可以點擊圖5-7中的“更換模式”進行更改操作模式[11,12]。點擊后,出現(xiàn)如圖5-15界面。該界面提示管理員需要輸入密碼,才可以進行操作。該程序設(shè)置的初始密碼為“1234”。圖5-15管理員輸入密碼輸入密碼后,進入操作員操作模式,如圖5-16。在這一界面中,我們可以看到出售的產(chǎn)品以及商品的庫存。初始設(shè)置每種飲品的庫存為20瓶,由于之前的演示中,多次購買了可樂,所以可樂的當前庫存為15瓶。同時,在這一界面中,我們可以看到管理員可以進行如下操作:增加一款新商品、雇主復(fù)位、設(shè)置現(xiàn)金水平、更改密碼、設(shè)置庫存水平、更改價格。接下來,我們對各個功能進行一一演示。圖5-16管理員操作(1)當管理員需要增加新的商品時,點擊“增加一款新產(chǎn)品”。出現(xiàn)如圖5-17界面。管理員可以填寫商品的名稱、價格以及庫存。點擊“保存修改”,完成商品添加。圖5-17管理員操作(2)點擊“雇主重置”,出現(xiàn)5-18提示界面。如果確認復(fù)位,點擊“是”,否則點擊“否”。圖5-18管理員操作(3)想要更改售貨機中現(xiàn)金時,點擊“設(shè)置現(xiàn)金水平”,出現(xiàn)5-19界面。該界面顯示了當前售貨機中各類硬幣的數(shù)量[13]。圖5-19管理員操作(4)如果管理員想要更改密碼,點擊“更改密碼”,出現(xiàn)如圖5-20所示界面。管理需要先輸入原密碼,然后才能更改密碼。圖5-20管理員操作(5)如果想要設(shè)置庫存,則點擊“設(shè)置庫存水平”,出現(xiàn)5-21界面。圖5-21管理員操作(6)點擊“更改價格”,出現(xiàn)5-22界面,管理員可以進行商品價格的更改。圖5-22管理員操作(7)在管理員操作這一部分,管理員可以通過我編寫的程序,看到哪種商品銷量最好。這是本設(shè)計的另一個創(chuàng)新點。如圖5-23所示。指出了哪種商品銷量最好。由于之前我們演示,都以可樂為例,所以可樂的銷量最好。圖5-23購買情況統(tǒng)計文檔5.4本章小結(jié)本章主要介紹本次畢業(yè)設(shè)計的總體思路,以及其功能的實現(xiàn)過程。其中包括系統(tǒng)的總體設(shè)計、系統(tǒng)的詳細設(shè)計、系統(tǒng)實現(xiàn)與性能分析等。本章詳細介紹了本設(shè)計中的兩大核心部分:管理員操作模式設(shè)計和顧客操作模式設(shè)計。通過圖片以及文字,清晰的展示了兩種模式的操作過程。并且介紹了本設(shè)計的創(chuàng)新之處。結(jié)論計算機的出現(xiàn),使科技文明的發(fā)展跨入到了一個新的時代,計算機軟件的應(yīng)用,使人們的工作效率成倍提高。人們從復(fù)雜、繁重的工作中解脫出來,擁有了更加舒適、快捷、方便的工作方式和更多的自由時間。本次畢業(yè)設(shè)計的多功能自動售貨機控制系統(tǒng)方便快捷,操作簡單,大大提高了運行速度,節(jié)省了運行時間。本次畢業(yè)設(shè)計完成了自動售貨機的硬幣識別、幣值累加、自動售貨、自動找零的功能。通過編寫這個程序,使我將學習的Java語言融會貫通,提高了我使用編寫程序的能力。同時作為Java語言的初學者,我還有很多技術(shù)方面的知識掌握的不夠全面,這個程序的功能也不是十分的完善,因此我將在今后繼續(xù)學習,提高Java語言的編程能力,不斷地完善自動售貨機的程序,為操作者提供更加方便的使用體驗。本次設(shè)計的自動售貨機控制系統(tǒng)可以實現(xiàn)購買統(tǒng)計分析,并且能夠?qū)徺I者提出合理化的購買建議。并且已經(jīng)獲得了相關(guān)的專利。參考文獻[1]李代萬,李金平,孫亮亮.人民幣識別器與自動售貨機通信的設(shè)計與實現(xiàn)[J].北方交通大學學報,2002,26(6):80-82.[2]許瀚文,王仲嫻,李梓豪.淺談國內(nèi)自動售貨機的發(fā)展[J].中國科技博覽,2012(22):267.[3]余世明,晁岳磊,繆仁將.自動售貨機研究現(xiàn)狀及展望[J].中國工程科學.2008(07).[4]李衛(wèi)華.Java語言課程雙語教學探索[J].廣東工業(yè)大學學報,2008,(3):15-22.[5]張紅旭.淺談Java的發(fā)展及特點[M].硅谷出版社,2010.[6]王子君,范學峰,張志浩.Java編碼問題研究與應(yīng)用[J].計算機工程,2003,(3):18-23.[7]D.Alur,J.Crupi,D.Malks.BestPracticesandDesignStrategies[J].CoreJ2EEPatterns,2008,9(1):23-30.[8]L.W.M.Verhoef.Decisionmakingofvendingmachineusers[J].AppliedErgonomics,1988,19(2):103-109.[9]張建龍.自動售貨機節(jié)能設(shè)計與實現(xiàn)[J].機電工程2010(4).[10]鄭大宇,張立惠,秦芳.網(wǎng)絡(luò)自動售貨機數(shù)據(jù)庫系統(tǒng)的設(shè)計[J].哈爾濱商業(yè)大學學報(自然科學版),2003,(05):20-25.[11]T.Mori.FatigueDamageMonitoringSensorUsingCrackPropagationinStainlessSteelSheet.China-JapanJointSeminaronSteelandCompositeBridges.2007.[12]曹利紅,葉楊.自動售貨機的實時監(jiān)控設(shè)計與實現(xiàn)[J].北京工商大學學報(自然科學版),2007(02).[13]J.Anderru.Vandalismofvendingmachines:Factorsthatattractprofessionalsandamateurs[J].JournalofCriminalJustice,2003,(15):35-40.致謝在本次畢業(yè)設(shè)計設(shè)計中,我深切體會到無論理論知識再好,都需要用實踐去檢驗,實踐是理論運用的最好的檢驗工具。本次設(shè)計是對我四年所學知識的一次綜合性檢測和考驗,無論是動手能力還是理論知識運用能力都得到了提高,同時加深了我對網(wǎng)絡(luò)資源的認識,大大提高了查閱資料的能力和效率。感謝我的指導(dǎo)教師,本論文是在她的悉心指導(dǎo)下完成的。趙老師淵博的知識,嚴謹?shù)闹螌W態(tài)度和孜孜不倦的工作熱情給我留下了非常深刻的印象。趙老師思維敏銳、經(jīng)驗豐富,激勵我在今后的工作和學習中積極上進。這份深厚的師生情誼,必將成為難忘的回憶。與此同時,在本次畢業(yè)設(shè)計中過程中,得到了許多同學的幫助,借鑒了他們的一些經(jīng)驗,并且從他們身上學到了很多東西,尤其在相互的討論和學習中,增加了周圍學習的氣氛,在這樣的氛圍中學習和工作,使我感到非常慶幸。在此對他們表示感謝。附錄附錄1售貨機購買實現(xiàn)的程序代碼://packagedesktopapplication2;/**Thisclassistocontroltheallactivitiesofcustomerinterfaceandhisaction.*@authorHuangYing*/publicclassVMC_Control{Stockstockinfo=newStock();Cashcoinsinfo=newCash();CustomerTransactioncusinfo=newCustomerTransaction();/**Thismethodistogettheproduct'snamefromtheStockclass.**/publicString[]getstockname(){returnductName;}/**Thismethodistogettheproduct'spricefromtheStockclass.**/publicdouble[]getstockprice(){returnstockinfo.Price;}/**Thismethodistogettheproduct'sstocklevelofeachproductsfromtheStockclass.**/publicint[]getstock(){returnstockinfo.Stock;}/**ThismethodistogetthecoinslevelfromtheCashclass.**/publicint[]getcoinsinfo(){returncoinsinfo.cashLevel;}/**Thismethodistoconvertthepriceintopoundorpenny.*@parammoneyThedoublenumbertostoragethemoney.*@returnmoneythedoublenumberwhichisconverted.*/publicdoublemoney(doublemoney){if(money<1.0){returnmoney*100;}returnmoney;}/**Thismethodistodecoratethepoundorthepenny.*@parampriceThedoublearraytostoragetheprice.*@returnpThestringarraytostoragethedecoratedstock'sprice.*/publicString[]decpri(doubleprice[]){String[]p=newString[5];for(inti=0;i<5;i++){if(price[i]<1.0){price[i]=price[i]*100;p[i]=String.valueOf((int)price[i])+"p";}else{p[i]="\u00a3"+String.valueOf(price[i]);}}returnp;}/**Thismethodistocountthechangeofeachcoins.*@paramclicknumTheintarraytohowmanyofeachcoinsthecustomerinserts.*/publicvoidcalculateCoins(int[]clicknum){for(inti=0;i<6;i++){coinsinfo.cashLevel[i]=coinsinfo.cashLevel[i]+clicknum[i];}}/**Thismethodistocomputethechanges.*@parammoney2Thedoublenumbertostoragethehas-paidmoney.*/publicint[]computeChange(doublemoney2,doublem){java.text.NumberFormatformate=java.text.NumberFormat.getNumberInstance();formate.setMaximumFractionDigits(2);int[]coinsnum=coinsinfo.cashLevel;intchange=Integer.valueOf(formate.format(100*(money2-m)));//changetobereturnedint[]changetype=newint[6];changetype[5]=change/200;change=change-change/200*200;changetype[4]=change/100;change=change-change/100*100;changetype[3]=change/50;change=change-change/50*50;changetype[2]=change/20;change=change-change/20*20;changetype[1]=change/10;change=change-change/10*10;changetype[0]=change/5;for(inti=0;i<6;i++){coinsnum[i]=coinsnum[i]-changetype[i];}for(inti=0;i<6;i++){coinsinfo.cashLevel[i]=coinsnum[i];}returnchangetype;}/**Thismethodistorecordthecustomertransactioninformaiton.*@paramm2Thedoublenumbertostoragethehas-paidmoney.*/publicvoidrecordTransaction(doublem2,doublem1,Stringamount,Stringname,doublep,intnum,intnump,int[]clicknum){cusinfo.record(m2,m1,amount,name,p,num,clicknum);cusinfo.stock[nump]=num-Integer.valueOf(amount);cusinfo.changeStock(cusinfo.stock);cusinfo.changeCash_level(coinsinfo.cashLevel);}/**Thismethodistocheckifthemachinehasenoughcoinstochangetocustomer.*@returnfTheintnumbertosettobeaindicator.*/publicintcheckCash(doublemoney2,doublem){java.text.NumberFormatformate=java.text.NumberFormat.getNumberInstance();formate.setMaximumFractionDigits(2);int[]coinsnum=coinsinfo.cashLevel;intchange=Integer.valueOf(formate.format(100*(money2-m)));//changetobereturnedint[]changetype=newint[6];intf=0;changetype[5]=change/200;change=change-change/200*200;changetype[4]=change/100;change=change-change/100*100;changetype[3]=change/50;change=change-change/50*50;changetype[2]=change/20;change=change-change/20*20;changetype[1]=change/10;change=change-change/10*10;changetype[0]=change/5;for(inti=0;i<6;i++){coinsnum[i]=coinsnum[i]-changetype[i];if(coinsnum[i]<0){f=1;}}returnf;}/**Thismethodistoprintthecustomertransactioninformaiton.*@paramm1Thedoublenumbertostoragethechangeprice.*/publicvoidprintReceipt(doubletotal_m,doublem2,doublem1,Stringamount,Stringsname){Rere=newRe(total_m,m2,m1,amount,sname);re.setVisible(true);}}附錄2購買統(tǒng)計程序代碼:FileWritertongjifw=newFileWriter("tongji.txt");Filetongjif=newFile("tongji.txt");intt1=p1_stock;intt2=p2_stock;intt3=p3_stock;intt4=p4_stock;intt5=p5_stock;inti,j,tmp,flag=1;Stringtmpname="賣的都挺好";tmp=Math.min(t1,t2);tmp=Math.min(tmp,t3);tmp=Math.min(tmp,t4);tmp=Math.min(tmp,t5);if(tmp==t1){tmpname="可樂賣的最好";}if(tmp==t2){tmpname="健怡可樂賣的最好";}if(tmp==t3){tmpname="胡椒博士賣的最好";}if(tmp==t4){tmpname="芬達賣的最好";}if(tmp==t5){tmpname="礦泉水賣的最好";}tongjifw.write("經(jīng)過統(tǒng)計"+tmpname);FileOutputStreamtongjios=newFileOutputStream(tongjif);DataOutputStreamtongjiout=newDataOutputStream(tongjios);tongjifw.flush();tongjifw.close();}catch(Exceptione)基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力能源設(shè)備采購及安裝合同
- 臨時炊事員聘用合同
- 建筑工程施工合同多場景條款
- 拍攝場地短期租賃合同
- 工廠營銷承包合同協(xié)議
- 鋪位租房協(xié)議合同
- 中介合同糾紛調(diào)解協(xié)議
- 購車協(xié)議電子合同
- 琴行上課合同協(xié)議
- 飯店裝修協(xié)議合同
- 層流手術(shù)室的管理
- 機電安裝安全措施方案
- 中華人民共和國學前教育法-知識培訓(xùn)
- 康復(fù)科自查報告及整改措施
- 2024年四川省宜賓市中考英語試題含解析
- 擔保公司專項檢查方案
- 景區(qū)旅游安全風險評估報告
- 二級建造師《礦業(yè)工程管理與實務(wù)》試題(100題)
- 養(yǎng)護道班考勤管理制度
- 北師大版(2019)必修第二冊 Unit6 The admirable Lesson 1 A Medical Pioneer名師教學設(shè)計
- GB/T 36187-2024冷凍魚糜
評論
0/150
提交評論