基于手機(jī)的點(diǎn)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  基于手機(jī)的點(diǎn)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘 要</b></p><p>  小型軟件系統(tǒng)在我國(guó)軟件行業(yè)中已發(fā)展到了一定的階段,并占有一定的地位。它為滿足用戶的某項(xiàng)或某些服務(wù)的方便、需要、以及完善的管理提供了良好的控制操作平臺(tái)。隨著軟件技術(shù)的發(fā)展,各種計(jì)算機(jī)語(yǔ)言、開發(fā)工具已逐步的走向簡(jiǎn)單化、易操作使用化,在眾多的開發(fā)工具中,首選M

2、yEclipse和MySQL以及Eclipse 配WTK插件。</p><p>  在當(dāng)今經(jīng)濟(jì)發(fā)展的社會(huì)中,酒店行業(yè)迅速發(fā)展成為大型企業(yè),而酒店服務(wù)的管理是一項(xiàng)較為復(fù)雜、規(guī)范的操作,因此,酒店服務(wù)要想得到更好的操作、運(yùn)轉(zhuǎn),開發(fā)一個(gè)酒店服務(wù)系統(tǒng)勢(shì)在必行。點(diǎn)菜服務(wù)是酒店服務(wù)中一個(gè)重要部分,顧客的方便和酒店的簡(jiǎn)捷操作是雙方的希望,針對(duì)這種服務(wù)需求酒店點(diǎn)菜服務(wù)系統(tǒng)得以開發(fā)實(shí)踐。本系統(tǒng)利用MyEclipse和MySQL的嚴(yán)

3、整結(jié)合,從顧客操作和酒店前臺(tái)管理兩個(gè)方面連接同一個(gè)數(shù)據(jù)庫(kù)進(jìn)行了方便而簡(jiǎn)捷的窗口管理設(shè)計(jì)。系統(tǒng)完成得以運(yùn)用,并在初始模型下,不斷的更進(jìn)、完善,以滿足用戶的需求。</p><p>  關(guān)鍵詞:手機(jī),點(diǎn)菜系統(tǒng),J2ME,MIDP</p><p>  The Design and Implementation of Ordering System based on Cell Phone</p

4、><p><b>  ABSTRACT</b></p><p>  Small software system has developed to a certain stage and has gained a firm position in China's software industry. It provides the users with a good

5、 platform to meet their particular service or convenience by improving the management control. With the development of software technology, various computer languages and the development tools have been gradually moving

6、toward the simplistic way that is easy to use. Among the many development tools, MyEclipse small software development and MySQL als</p><p>  In the society of today's economic development, the hotel indu

7、stry has rapidly developed to large enterprises. The management of hotel services has become more complex and standardized operations. Therefore, in order to operate better, it is imperative to develop a hotel service sy

8、stem. La carte service is an important part of the hotel service. In light of this demand for customer convenience and simple operation of the hotels’ hope Services ordered hotel services systems have been put into pra&l

9、t;/p><p>  Key words: Cell Phone, Ordering System, J2ME, MIDP</p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  ABSTRACTII</p><p><

10、;b>  1 緒論1</b></p><p>  1.1系統(tǒng)開發(fā)的目的1</p><p>  1.2 系統(tǒng)的概述1</p><p>  1.3系統(tǒng)的開發(fā)意義與發(fā)展1</p><p><b>  2 相關(guān)技術(shù)3</b></p><p>  2.1 Java ME3<

11、;/p><p>  2.1.1 Java ME體系結(jié)構(gòu)及介紹3</p><p>  2.1.2 MIDP4</p><p>  2.1.3 MIDlet5</p><p>  2.2 數(shù)據(jù)庫(kù)MySQL7</p><p>  2.3 服務(wù)器Tomcat7</p><p><b> 

12、 2.4 JSP8</b></p><p>  2.5 本章小結(jié)8</p><p>  3 系統(tǒng)分析與設(shè)計(jì)9</p><p>  3.1 可行性分析9</p><p>  3.1.1 經(jīng)濟(jì)可行性9</p><p>  3.1.2 技術(shù)可行性9</p><p>  3.1.

13、3 操作可行性9</p><p>  3.2 需求分析9</p><p>  3.3 系統(tǒng)總體設(shè)計(jì)9</p><p>  3.3.1 系統(tǒng)設(shè)計(jì)原則9</p><p>  3.3.2 系統(tǒng)總體框架10</p><p>  3.3.3 系統(tǒng)模塊設(shè)計(jì)10</p><p>  3.3.4 主

14、要業(yè)務(wù)流程11</p><p>  3.4數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)12</p><p>  3.4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)原則12</p><p>  3.4.2 數(shù)據(jù)庫(kù)的設(shè)計(jì)步驟12</p><p>  3.4.2數(shù)據(jù)庫(kù)表的設(shè)計(jì)13</p><p>  3.5 本章小結(jié)15</p><p>  4

15、 系統(tǒng)詳細(xì)設(shè)計(jì)16</p><p>  4.1 系統(tǒng)環(huán)境配置16</p><p>  4.1.1 軟件環(huán)境16</p><p>  4.1.2 硬件環(huán)境16</p><p>  4.2 系統(tǒng)框架實(shí)現(xiàn)16</p><p>  4.2.1 主要的類與接口16</p><p>  4.2.

16、2 系統(tǒng)主要配置文件17</p><p>  4.3 系統(tǒng)主要功能模塊的實(shí)現(xiàn)18</p><p>  4.3.1 服務(wù)器端18</p><p>  4.3.2 客戶端21</p><p>  4.3.3 功能實(shí)現(xiàn)25</p><p>  4.4 本章小結(jié)25</p><p>  5

17、總結(jié)與展望26</p><p><b>  5.1 總結(jié)26</b></p><p>  5.2 存在的問題及展望26</p><p><b>  致謝27</b></p><p><b>  參考文獻(xiàn)28</b></p><p><b&

18、gt;  1 緒論</b></p><p>  1.1 系統(tǒng)開發(fā)的目的</p><p>  隨著社會(huì)的發(fā)展,人們的生活節(jié)奏日益加快,越來越多的人把更多的時(shí)間投入在工作學(xué)習(xí)之中。于是花費(fèi)在生活上其他事情的時(shí)間相應(yīng)的就少了。所謂“民以食為天”,盡管人們生活節(jié)奏的加快了,但對(duì)于飲食的質(zhì)量的需求卻不會(huì)因此而下降。這一需求逐漸醞釀出對(duì)方便、快捷、營(yíng)養(yǎng)的餐飲服務(wù)市場(chǎng)。網(wǎng)絡(luò)的興起為滿足這種新

19、型的需求提供了一個(gè)平臺(tái),軟件應(yīng)用技術(shù)和數(shù)據(jù)庫(kù)技術(shù)成為了信息傳遞的主要工具。使用計(jì)算機(jī)對(duì)菜單、訂單和點(diǎn)菜信息進(jìn)行操作和管理,具有手工記錄和管理所無法比擬的優(yōu)點(diǎn)。例如:操作方便、可靠性高、存儲(chǔ)量大、保密性好、成本低等。這些優(yōu)點(diǎn)能夠極大地提高菜單管理的效率,滿足了人們提高生活品質(zhì)的需求。</p><p>  然而,酒店業(yè)的競(jìng)爭(zhēng)也愈來愈激烈,要想在競(jìng)爭(zhēng)中取得優(yōu)勢(shì),必須在經(jīng)營(yíng)管理、產(chǎn)品服務(wù)等方面提高管理意識(shí)。如何利用先進(jìn)的

20、管理手段,提高酒店的管理水平,是每一個(gè)酒店管理者所面臨的重大問題。在當(dāng)今信息化社會(huì)中,為了簡(jiǎn)化酒店管理和顧客的自主方便,酒店點(diǎn)菜服務(wù)系統(tǒng)的開發(fā)勢(shì)在必行。</p><p><b>  1.2 系統(tǒng)的概述</b></p><p>  服務(wù)業(yè)現(xiàn)代化的一個(gè)重要內(nèi)容,就是要實(shí)現(xiàn)“個(gè)性化服務(wù)”。提供個(gè)性化服務(wù)是智能化酒店的基本功能,如通過網(wǎng)絡(luò)技術(shù),酒店的會(huì)議室可以跨全球同時(shí)同聲傳

21、影傳音翻譯。手機(jī)點(diǎn)菜服務(wù)系統(tǒng)也是酒店個(gè)性化服務(wù)的信息化的表現(xiàn)。</p><p>  本系統(tǒng)重點(diǎn)為解決顧客自主點(diǎn)菜方便和酒店管理規(guī)范而設(shè)計(jì)。整個(gè)系統(tǒng)圍繞著一個(gè)數(shù)據(jù)庫(kù)做操作,針對(duì)數(shù)據(jù)庫(kù),一個(gè)由顧客操作,顧客操作主要有:自主點(diǎn)菜功能、查看點(diǎn)菜消費(fèi)。另一個(gè)操作模塊由酒店前臺(tái)管理員操作,前臺(tái)操作主要有:獲取顧客點(diǎn)菜單、菜單維護(hù)、結(jié)賬功能。系統(tǒng)界面設(shè)計(jì)簡(jiǎn)潔易于操作。</p><p>  該系統(tǒng)以餐飲業(yè)

22、務(wù)為基礎(chǔ),主要突出點(diǎn)單、結(jié)賬。點(diǎn)單方面主要采取圖形加數(shù)據(jù)的方式使用戶能直觀的管理數(shù)據(jù)信息;結(jié)賬方面也采取圖形界面加數(shù)據(jù)的管理方式,讓用戶可以動(dòng)態(tài)的管理現(xiàn)有的信息,這里突出了重要的兩點(diǎn):一是操作管理的信息準(zhǔn)確無誤,可讓用戶放心;二是操作管理的速度快、管理方便、實(shí)用性高。</p><p>  1.3 系統(tǒng)的開發(fā)意義與發(fā)展</p><p>  服務(wù)行業(yè)已經(jīng)在我國(guó)盛行,這是種趨勢(shì)。同樣的商品,可以

23、說到處都有賣,但不同的服務(wù)質(zhì)量將是影響經(jīng)營(yíng)的一個(gè)重要因素。酒店餐飲也不另外,大家都知道,現(xiàn)在的大酒店吃的是服務(wù),吃的是心情。要在餐飲的同時(shí)享受快樂,點(diǎn)菜這個(gè)環(huán)節(jié)是非常重要的,點(diǎn)菜的服務(wù)將會(huì)影響到餐飲的質(zhì)量,要是點(diǎn)菜的過程中,酒店和顧客發(fā)生了矛盾,我相信縱是山珍海鮮也味同嚼蠟,既對(duì)不起廚師,也對(duì)不起自己。因此,酒店的點(diǎn)菜服務(wù)引起了酒店高層領(lǐng)導(dǎo)的重視。在信息化時(shí)代中,人與人的交往矛盾沖突發(fā)生的幾率遠(yuǎn)大過人與機(jī)器設(shè)備的矛盾發(fā)生率,因此,酒店點(diǎn)

24、菜系統(tǒng)的開發(fā)在酒店管理和顧客服務(wù)兩方面都有著極其重要的意義。</p><p>  傳統(tǒng)手工的酒店管理,管理過程繁瑣而復(fù)雜,執(zhí)行效率低,并且易于出錯(cuò)。通過這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,實(shí)現(xiàn)了酒店信息管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,這樣不僅減少了管理工作量,還提高了管理效率,降低了管理成本,也為顧客帶來了很大的方便與自主性。</p><p>  在現(xiàn)實(shí)的社會(huì)中,小型餐飲公司或

25、企業(yè)的管理還大多停留在人工管理日常業(yè)務(wù)運(yùn)作的水平上,人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、易出錯(cuò),另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難。開發(fā)此餐飲管理系統(tǒng),不僅能提高酒店的管理水平給管理者提供一個(gè)企業(yè)運(yùn)作的信息平臺(tái)還能提升企業(yè)的形象及增強(qiáng)競(jìng)爭(zhēng)力。使用該餐飲管理系統(tǒng)能將餐飲企業(yè)業(yè)務(wù)管理和人員管理信息化,使酒店從原材料加工到客人消費(fèi)都由計(jì)算機(jī)管理并記錄,可隨時(shí)掌

26、握酒店里及時(shí)消費(fèi)的使用狀況,客人點(diǎn)單等情況,并能盡可能的降低使用者的勞動(dòng)強(qiáng)度,同時(shí)提高工作質(zhì)量和效率,在競(jìng)爭(zhēng)越來越激烈的餐飲業(yè)中取得優(yōu)勢(shì)。</p><p><b>  1.4 所做工作</b></p><p>  本系統(tǒng)中我所做工作如下:針對(duì)某家餐飲店的情況做的調(diào)查,又了解到網(wǎng)絡(luò)上的相關(guān)數(shù)據(jù),對(duì)手機(jī)點(diǎn)菜系統(tǒng)的需求做以分析,并初步對(duì)手機(jī)點(diǎn)菜系統(tǒng)進(jìn)行設(shè)計(jì),再根據(jù)目前的技術(shù)

27、以及自己掌握這方面技術(shù)的情況對(duì)系統(tǒng)做了相應(yīng)的可行性研究,最終對(duì)系統(tǒng)的體系結(jié)構(gòu)總體框架進(jìn)行規(guī)劃,并完成詳細(xì)設(shè)計(jì)。</p><p>  在本系統(tǒng)中主要研究了Java Me技術(shù)、Jsp技術(shù)以及之間的HTTP通信技術(shù),利用這些技術(shù)在MySQL的基礎(chǔ)上實(shí)現(xiàn)手機(jī)點(diǎn)菜系統(tǒng)。整個(gè)系統(tǒng)采用Eclipse + Java ME Wireless Toolkit 2.5.1 作為開發(fā)工具,Tomcat 6.0 作為網(wǎng)絡(luò)服務(wù)器,MySQL

28、作為數(shù)據(jù)庫(kù),Windows7 作為網(wǎng)絡(luò)操作系統(tǒng)平臺(tái)。手機(jī)端程序用Java ME 實(shí)現(xiàn),通過GPRS 網(wǎng)絡(luò)連接到Internet, 然后實(shí)現(xiàn)與企業(yè)內(nèi)部局域網(wǎng)的互連。</p><p>  通過對(duì)本系統(tǒng)的開發(fā),使我對(duì)軟件的開發(fā)有了進(jìn)一步的認(rèn)識(shí),學(xué)習(xí)如何利用Eclipse開發(fā)企業(yè)級(jí)的應(yīng)用程序,并懂得了服務(wù)器—客戶端程序的開發(fā),對(duì)基于HTTP協(xié)議的通信技術(shù)有了一定的了解,也進(jìn)一步了解了軟件開發(fā)的流程,對(duì)以后的學(xué)習(xí)和工作打下

29、了基礎(chǔ)。</p><p><b>  2 相關(guān)技術(shù)</b></p><p>  2.1 Java ME</p><p>  2.1.1 Java ME體系結(jié)構(gòu)及介紹</p><p>  從整體上來看,Java ME平臺(tái)由一下幾部分組成。</p><p>  Java虛擬機(jī):針對(duì)不同的嵌入式設(shè)備以及

30、為了滿足不同的需要,提供了KVM和CVM兩大類虛擬機(jī)。</p><p>  配置(Configuration):它是將某一類特定應(yīng)用范疇的設(shè)備的共性提取出來形成的規(guī)范。為開發(fā)人員提供了一個(gè)基礎(chǔ)的、能在所有平臺(tái)上通用的核心API類庫(kù)。</p><p>  簡(jiǎn)表(Profile):它是將某一個(gè)特殊行業(yè)或領(lǐng)域內(nèi)的設(shè)備的特性提取出來,形成對(duì)特定領(lǐng)域的特性總結(jié),作為配置的一個(gè)補(bǔ)充。</p>

31、;<p>  一些可選包:主要包括設(shè)備廠商提供的OME的API類庫(kù)。</p><p>  前三項(xiàng)組成了Java ME的基本運(yùn)行環(huán)境,他們的關(guān)系如圖2-1所示。</p><p>  圖2-1 Java ME 平臺(tái)的體系結(jié)構(gòu)[3]</p><p>  其中Java虛擬機(jī)是運(yùn)行環(huán)境的核心,它運(yùn)行于設(shè)備中的操作系統(tǒng)之上,再往上是具體的Java ME配置,包括根

32、據(jù)設(shè)備的資源需要而提供的基本核心API類庫(kù),配置的上面是一個(gè)或者多個(gè)針對(duì)不同應(yīng)用領(lǐng)域而設(shè)置的簡(jiǎn)表。</p><p>  配置是將基本運(yùn)行環(huán)境定義為一套核心類和一個(gè)運(yùn)行在特定類型設(shè)備上的特定虛擬機(jī)。Java ME中提供了兩種配置:CLDC(Connected Limited Device Configuration)和CDC(Connected Device Configuration)。這兩種配置所針對(duì)的設(shè)備的C

33、PU和內(nèi)存大小是不一樣的,因此它們所使用的虛擬機(jī)和核心類庫(kù)也不相同。</p><p>  Java ME根據(jù)設(shè)備的硬件配置把設(shè)備分成兩類:連接設(shè)備(Connected Device)和有限連接設(shè)備(Connected Limited Device)。</p><p>  連接設(shè)備主要是指使用32位及75MHz以上的處理器、具有2MB以上內(nèi)存的嵌入式設(shè)備;有限連接設(shè)備主要是指16/32位的R

34、ISC/CISC微處理器或控制器,并且其可用內(nèi)存為160~512KB的嵌入式設(shè)備。</p><p>  CDC針對(duì)的設(shè)備主要是數(shù)字電視、機(jī)頂盒、網(wǎng)絡(luò)電話等連接設(shè)備的配置,這些設(shè)備的特點(diǎn)是有線連接、穩(wěn)定而持續(xù)的電源供應(yīng)、設(shè)備資源比較受限。CDC使用CVM虛擬機(jī),具有較強(qiáng)的處理能力和較大的核心類庫(kù)。</p><p>  CLDC支持的設(shè)備主要包括無線電話、手機(jī)、個(gè)人數(shù)字助理(PAD)以及小型零

35、售支付終端等。CLDC使用KVM虛擬機(jī),其處理能力較弱,并且只包含程序運(yùn)行所需要的最小類庫(kù)。</p><p>  CLDC中類的預(yù)審核機(jī)制分為兩個(gè)階段,如圖2-2所示。</p><p>  圖2-2 CLDC/KVM中的預(yù)審核機(jī)制[3]</p><p>  簡(jiǎn)表是面向配置之上的縱向設(shè)備,建立在配置的頂部,定義了配置之上受支持設(shè)備的類型。它是基于Java技術(shù)的API集

36、合,作為配置的補(bǔ)充,為特定的縱向市場(chǎng)或者設(shè)備類型提供服務(wù)。配置和簡(jiǎn)表的層次關(guān)系如圖2-3所示。</p><p>  圖2-3 配置和簡(jiǎn)表的層次關(guān)系[3]</p><p>  目前Java ME領(lǐng)域里使用最廣泛的是移動(dòng)信息設(shè)備簡(jiǎn)表(MIDP),它主要是針對(duì)手機(jī)和其他雙向移動(dòng)通信設(shè)備而設(shè)計(jì)的。</p><p>  2.1.2 MIDP </p><p

37、>  移動(dòng)信息設(shè)備簡(jiǎn)表(Mobile Information Device Profile,MIDP)針對(duì)的是移動(dòng)信息設(shè)備或者體積較小的能力有限的手持設(shè)備(MID),這些設(shè)備的共性是具有用戶接口,即屏幕和輸入機(jī)制。MIDP目標(biāo)設(shè)備的典型例子就是手機(jī)和PDA。</p><p>  MIDP中主要包含7個(gè)軟件包,其中4個(gè)核心CLDC軟件包另外加上3個(gè)特定于MIDP的軟件包,其名稱和功能如下:</p>

38、<p>  核心包:java.lang</p><p>  工具包:java.util</p><p>  I/O包:java.io</p><p>  網(wǎng)絡(luò)I/O包:javax.microedition.io</p><p>  用戶界面包:javax.microedition.lcdui</p><p&g

39、t;  MIDP主類包:javax.microedition.midlet</p><p>  持久化存儲(chǔ)包:javax.microedition.rms</p><p>  MIDP 2.0中的軟件包及功能描述:</p><p>  表2-1 MIDP 2.0軟件包的功能描述[3]</p><p>  2.1.3 MIDlet </p

40、><p>  MIDlet(Mobile Information Devices let,移動(dòng)信息設(shè)備小程序)是可以在KVM上運(yùn)行的Java ME應(yīng)用程序。它是一個(gè)普通的Java類,但是在定義時(shí)必須繼承java.microedition.midlet包中的MIDlet類。</p><p>  MIDlet的生命周期共有3個(gè)狀態(tài):活動(dòng)(Active)態(tài)、暫停(Paused)態(tài)和銷毀(Destro

41、yed)態(tài)。MIDlet中必須實(shí)現(xiàn)一些特定的生命周期方法,應(yīng)用程序管理器通過調(diào)用MIDlet生命周期中的各個(gè)方法來管理MIDlet的行為。</p><p>  整個(gè)MIDlet程序的執(zhí)行流程如下。</p><p>  系統(tǒng)調(diào)用繼承自MIDlet類的默認(rèn)構(gòu)造方法,創(chuàng)建對(duì)象。</p><p>  系統(tǒng)進(jìn)入MIDlet生命周期的暫停狀態(tài),這是MIDlet生命周期的第一個(gè)狀

42、態(tài)。</p><p>  系統(tǒng)調(diào)用startApp()方法,然后進(jìn)入MIDlet的運(yùn)行狀態(tài),程序正常執(zhí)行。</p><p>  如果在暫停狀態(tài)或者運(yùn)行狀態(tài)下發(fā)生錯(cuò)誤,則程序會(huì)調(diào)用destroyApp()方法,然后進(jìn)入銷毀狀態(tài)。</p><p>  對(duì)于MIDlet生命周期的整個(gè)過程,可以通過圖2-4所示的MIDlet的狀態(tài)轉(zhuǎn)換過程進(jìn)行描述。</p>&

43、lt;p>  圖2-4 MIDlet狀態(tài)轉(zhuǎn)換[3]</p><p>  MIDlet套件組成部分:</p><p>  添加到JAR文件中的Java類文件和其它資源文件。</p><p>  描述JAR文件內(nèi)容的清單文件MANIFEST.MF。</p><p>  Java應(yīng)用程序描述符文件JAD。</p><p&g

44、t;<b>  應(yīng)用程序管理器。</b></p><p>  MANIFEST.MF清單文件的屬性描述:</p><p>  表2-2 MANIFEST.MF清單文件屬性描述[3]</p><p>  表2-2中的屬性其中只有以下列出的6個(gè)屬性是必需的,如果缺少任何一個(gè)必需屬性,應(yīng)用程序管理器就會(huì)拒絕加載這個(gè)JAR文件。</p>

45、<p>  MIDlet-Name</p><p>  MIDlet-Version</p><p>  MIDlet-Vendor</p><p><b>  MIDlet-n</b></p><p>  MicroEdition-Profile</p><p>  MicroEdit

46、ion-Configuration</p><p>  MIDlet的基本開發(fā)流程:編寫MIDlet程序源代碼→編譯MIDlet程序→對(duì)編譯后的類文件進(jìn)行預(yù)校驗(yàn)→編寫清單文件MANIFEST.MF→對(duì)MIDlet程序進(jìn)行打包→編寫Java應(yīng)用程序描述符(JAD)文件。</p><p>  2.2 數(shù)據(jù)庫(kù)MySQL</p><p>  數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)主要包括數(shù)據(jù)庫(kù)(D

47、atabase,簡(jiǎn)稱DB)、數(shù)據(jù)庫(kù)管理系統(tǒng)(Database Management System,簡(jiǎn)稱DBMS)、數(shù)據(jù)庫(kù)應(yīng)用3大部分。其關(guān)系如圖2-5所示。</p><p>  圖2-5 數(shù)據(jù)庫(kù)系統(tǒng)的組成及關(guān)系</p><p>  MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器,它是一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn)。MySQL是現(xiàn)在流行的關(guān)系數(shù)據(jù)庫(kù)中其中的一種,相比其它的數(shù)據(jù)庫(kù)管理系統(tǒng)

48、(DBMS)來說,MySQL具有小巧、功能齊全、查詢迅捷等優(yōu)點(diǎn)。MySQL 主要目標(biāo)是快速、健壯和易用。MySQL 對(duì)于一般中小型,甚至大型應(yīng)用都能夠勝任。</p><p>  2.3 服務(wù)器Tomcat</p><p>  Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,是Apache軟件基金會(huì)(Apache Software Foundation)的Jakarta項(xiàng)目中的一

49、個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。它是在SUN公司的JSWDK(Java Server Web Development Kit)基礎(chǔ)上發(fā)展起來的一個(gè)JSP和Servlet規(guī)范的標(biāo)準(zhǔn)實(shí)現(xiàn),使用Tomcat可以體驗(yàn)JSP和Servlet的最新規(guī)范。經(jīng)過多年的發(fā)展,Tomcat不僅是JSP和Servlet規(guī)范的標(biāo)準(zhǔn)實(shí)現(xiàn),而且具備了很多商業(yè)Java Servlet容器的特性,并被一些企業(yè)用于商業(yè)用途。</

50、p><p>  因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。Tomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)

51、和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。</p><p><b>  2.4 JSP</b></p><p>  JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插

52、入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。</p><p>  JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和

53、顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語(yǔ)言。</p><p>  JSP相比ASP和PHP,具有一定優(yōu)勢(shì):</p><p>  一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。<

54、;/p><p>  系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。</p><p>  強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到 由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的

55、生命力。</p><p>  多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行 于多種平臺(tái)之下。</p><p>  當(dāng)然,JSP也存在一定的缺點(diǎn)。與ASP相比,Java的優(yōu)勢(shì)也是它的問題所在。由于Java的跨平臺(tái)性,為了極度的伸縮能力,所以極大地增加了產(chǎn)品的復(fù)雜性。其次,Java的運(yùn)行速度是用

56、class常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實(shí)是“最低性能價(jià)格比”了。</p><p><b>  2.5 本章小結(jié)</b></p><p>  本章主要討論到該手機(jī)點(diǎn)菜系統(tǒng)中所用的的各種技術(shù),這個(gè)是基于HTTP協(xié)議的網(wǎng)絡(luò)開發(fā),其中服務(wù)器與手機(jī)客戶端之間的信息傳遞將會(huì)成為本系統(tǒng)的難點(diǎn)。HTTP協(xié)議的工作機(jī)制就是請(qǐng)求和響應(yīng),由于HTTP協(xié)

57、議簡(jiǎn)單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。</p><p><b>  3 系統(tǒng)分析與設(shè)計(jì)</b></p><p><b>  3.1 可行性分析</b></p><p>  根據(jù)實(shí)際的情況,我將手機(jī)點(diǎn)菜系統(tǒng)的可行性分析為三個(gè)部分來進(jìn)行,分別是經(jīng)濟(jì)可行性、技術(shù)可行性和用戶使用可行性。</p>

58、<p>  3.1.1 經(jīng)濟(jì)可行性</p><p>  該系統(tǒng)開發(fā)多使用的是開源軟件,如Tomcat服務(wù)器,Eclipse開發(fā)工具還有MySQL數(shù)據(jù)庫(kù)等,間接地降低了開發(fā)成本,商家完全不用擔(dān)心它對(duì)自己系統(tǒng)經(jīng)濟(jì)的影響。而且軟件的可移植性和可修改性非常的好,如果商家想更新或者升級(jí)擴(kuò)展的話,也是完全可以的。</p><p>  3.1.2 技術(shù)可行性</p><p&

59、gt;  Java的設(shè)計(jì)目標(biāo)和能力即在于平臺(tái)無關(guān)性和網(wǎng)絡(luò)功能。事實(shí)上Java最初的設(shè)計(jì)目標(biāo)是用于消費(fèi)電子領(lǐng)域,但是后來在PC和服務(wù)器上得到了發(fā)展?!耙淮尉帉?,到處運(yùn)行”的平臺(tái)無關(guān)性,對(duì)網(wǎng)絡(luò)和多重設(shè)備間聯(lián)網(wǎng)的機(jī)制顯然是至關(guān)重要的軟件條件。這個(gè)領(lǐng)域內(nèi)的Java標(biāo)準(zhǔn)就是J2ME,其全稱是Java 2 Micro Edition(2005年6月更名為Java ME)。Java ME在適用于這些設(shè)備的同時(shí)也保留了Java的傳統(tǒng)特性,即代碼具有可移

60、植性、部署靈活性、安全的網(wǎng)絡(luò)傳輸性和代碼的穩(wěn)定性等。因此,Java ME已經(jīng)被廣泛地應(yīng)用于消費(fèi)類嵌入式設(shè)備中,成為嵌入式開發(fā)的一種標(biāo)準(zhǔn)。還有我們所使用的數(shù)據(jù)庫(kù)MySQL,它是一款開源軟件。此數(shù)據(jù)庫(kù)體積小、速度快、總體擁有成本低。我們使用一款非常穩(wěn)定的小型服務(wù)器Tomcat,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新

61、的功能。在這樣的組合下,我們的軟件系統(tǒng)有非常好的穩(wěn)定性和擴(kuò)展性。</p><p>  3.1.3 操作可行性</p><p>  該手機(jī)點(diǎn)菜系統(tǒng)是基于MIDP 2.0的,可以在大部分支持Java的手機(jī)上運(yùn)行。如今用戶基本人手一部,只需要下載安裝即可使用。該系統(tǒng)不僅操作簡(jiǎn)單,而且還提供了很好的用戶體驗(yàn)。</p><p><b>  3.2 需求分析</

62、b></p><p>  傳統(tǒng)的酒店點(diǎn)菜服務(wù)運(yùn)轉(zhuǎn)方式是采用人工操作管理,并應(yīng)用手寫記錄的方式手工操作,從資源上來說,需要投入許多人力與物力。同時(shí),此種方式操作可能引發(fā)一些利益沖突,給管理和顧客消費(fèi)帶來了一定的影響。現(xiàn)在已經(jīng)進(jìn)入了系統(tǒng)化社會(huì),信息資源共享、信息規(guī)范管理是各行各業(yè)的發(fā)展趨勢(shì),也是超越落后管理方式的要求。數(shù)據(jù)庫(kù)的操作代替人力等方式是一種信息化的方式,這樣既節(jié)約了人力,也為酒店帶來了經(jīng)濟(jì)利益。酒店點(diǎn)

63、菜服務(wù)系統(tǒng)的開發(fā)既是基于酒店管理人員的需要,又是廣大消費(fèi)者的心聲。</p><p>  3.3 系統(tǒng)總體設(shè)計(jì)</p><p>  本系統(tǒng)是基于MySQL數(shù)據(jù)庫(kù)的操作,適用于中小型的餐飲酒店服務(wù)。手機(jī)點(diǎn)菜系統(tǒng)設(shè)計(jì)采用了信息管理系統(tǒng)完整實(shí)用的開發(fā)方法,突出了實(shí)用性和實(shí)效性,緊密結(jié)合用戶的使用要求,設(shè)計(jì)界面簡(jiǎn)潔,操作方便。具體設(shè)計(jì)如下。</p><p>  3.3.1 系

64、統(tǒng)設(shè)計(jì)原則</p><p>  總體設(shè)計(jì)過程首先尋找現(xiàn)實(shí)目標(biāo)系統(tǒng)的各種不同的方案,需求分析階段得到的數(shù)據(jù)流圖是設(shè)想各種可能方案的基礎(chǔ)。然后分析員從這些提供選擇的方案中選取若干個(gè)合理的方案的基礎(chǔ),為每個(gè)合理的方案都準(zhǔn)備一份系統(tǒng)流程圖,列出組成系統(tǒng)的所有物理元素,進(jìn)行成本/效益分析,并且制定實(shí)現(xiàn)這個(gè)方案的進(jìn)度計(jì)劃。分析員應(yīng)該綜合分析比較這些合理的方案,從中選一個(gè)最佳方案向用戶和使用部門負(fù)責(zé)人推薦。如果用戶和使用部門的

65、負(fù)責(zé)人接受了推薦方案,分析員應(yīng)該進(jìn)一步為了這個(gè)最佳方案設(shè)計(jì)軟件結(jié)構(gòu),通常,設(shè)計(jì)出初步的方案,分析員應(yīng)該為了這個(gè)最佳方案設(shè)計(jì)軟件結(jié)構(gòu)。</p><p>  實(shí)用性原則:應(yīng)用軟件最基本的原則,直接衡量系統(tǒng)的成敗,提交到用戶手中的系統(tǒng)都應(yīng)該是實(shí)用的,能解決用戶的實(shí)際問題。</p><p>  適應(yīng)性和可擴(kuò)展性原則:系統(tǒng)需要具備一定的適應(yīng)能力,隨著數(shù)據(jù)量的增加和運(yùn)行節(jié)點(diǎn)的擴(kuò)展,系統(tǒng)對(duì)硬件軟件的要求

66、會(huì)不斷提高,系統(tǒng)采用的所有硬件、軟件的選型必須考慮可擴(kuò)展性的要求。</p><p>  可靠性原則:系統(tǒng)應(yīng)該是可靠的,在出現(xiàn)異常的時(shí)候應(yīng)該有人性化的異常信息方便用戶理解原因,或采取適當(dāng)?shù)膽?yīng)對(duì)方案來保證系統(tǒng)的流暢運(yùn)行。</p><p>  可維護(hù)性和可管理性原則:系統(tǒng)應(yīng)該有一個(gè)完善的管理機(jī)制,易于維護(hù)。在系統(tǒng)建設(shè)和開發(fā)過程中的每個(gè)環(huán)節(jié),必須遵循有關(guān)國(guó)際、國(guó)家主流技術(shù)標(biāo)準(zhǔn)。</p>

67、<p>  安全性原則:整個(gè)系統(tǒng)具有良好的安全管理功能,對(duì)各個(gè)層面和角度都具有相應(yīng)的安全機(jī)制。</p><p>  總體規(guī)劃、分層實(shí)施原則:在開始設(shè)計(jì)之前應(yīng)該對(duì)Web系統(tǒng)進(jìn)行總體設(shè)計(jì),然后在總體設(shè)計(jì)指導(dǎo)下分步開發(fā)。在實(shí)現(xiàn)各個(gè)模塊的功能設(shè)計(jì)后,完成整個(gè)系統(tǒng)的開發(fā)。</p><p>  3.3.2 系統(tǒng)框架</p><p>  該系統(tǒng)的框架如圖3-1所示,

68、具體分析如下:</p><p><b>  圖3-1 系統(tǒng)框架</b></p><p><b>  客戶端:</b></p><p>  客戶端是運(yùn)行在手機(jī)上的,主要是向服務(wù)器提交顧客的點(diǎn)菜單。當(dāng)開始提交數(shù)據(jù)時(shí)就會(huì)和服務(wù)器建立起HTTP連接,并使用GET方式向服務(wù)器發(fā)送數(shù)據(jù)。這里向服務(wù)器提交的數(shù)據(jù)有用戶的ID和密碼,登錄成

69、功的用戶便可以開始進(jìn)行點(diǎn)菜的相關(guān)操作。</p><p><b>  服務(wù)器端:</b></p><p>  服務(wù)器主要是對(duì)邏輯的處理,與客戶端進(jìn)行交互的同時(shí)也對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新。客戶端與服務(wù)器端利用統(tǒng)一的MESSAGE進(jìn)行消息傳遞,減少數(shù)據(jù)量的傳遞并方便管理。</p><p>  3.3.3 系統(tǒng)模塊設(shè)計(jì)</p><p>

70、  本系統(tǒng)的主要操作界面中包含有兩個(gè)基本操作菜單,一個(gè)是顧客手機(jī)端的操作菜單和一個(gè)前臺(tái)操作菜單。</p><p>  顧客操作菜單中包含有:注冊(cè)、登錄、菜單/點(diǎn)菜、點(diǎn)菜查看等操作。這些都是在手機(jī)上操作實(shí)現(xiàn)的,這些都是以窗體的形式給出,看上去直觀,在已點(diǎn)菜列表中也可以進(jìn)行修改操作。點(diǎn)菜具體可分為熱菜、涼菜和面食,進(jìn)行選擇后才能查看以及相應(yīng)的點(diǎn)菜,顧客點(diǎn)完菜的時(shí)候直接提交給前臺(tái)進(jìn)行處理。顧客用戶還可以隨時(shí)對(duì)自己的信息

71、進(jìn)行修改,比如說密碼,昵稱,聯(lián)系電話,郵箱等。如圖3-2所示。</p><p>  圖3-2 系統(tǒng)功能模塊</p><p>  3.3.4 主要業(yè)務(wù)流程</p><p>  手機(jī)點(diǎn)菜服務(wù)系統(tǒng)業(yè)務(wù)說明如下:</p><p>  顧客操作模塊即手機(jī)客戶端</p><p><b>  用戶的注冊(cè)及登錄</b&

72、gt;</p><p>  根據(jù)菜單項(xiàng),進(jìn)行自主點(diǎn)菜</p><p>  點(diǎn)菜查看及提交座位號(hào)的點(diǎn)菜單</p><p><b>  顧客留言</b></p><p>  酒店管理操作模塊即服務(wù)器端</p><p>  查詢顧客的點(diǎn)菜單,并做相應(yīng)的處理</p><p>  對(duì)

73、菜單進(jìn)行維護(hù)、修改</p><p><b>  消費(fèi)結(jié)賬,打印清單</b></p><p><b>  如圖3-3所示。</b></p><p><b>  圖3-3 業(yè)務(wù)流程</b></p><p>  3.4數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)</p><p>  對(duì)于

74、本系統(tǒng)來說,設(shè)計(jì)到的數(shù)據(jù)量不是很大,所以采用MySQL作為系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)。首先在計(jì)算機(jī)中安裝MySQL數(shù)據(jù)庫(kù)管理系統(tǒng),確定安裝成功后,可以再安裝個(gè)可視化界面管理插件,方便數(shù)據(jù)的管理及操作。</p><p>  3.4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)原則</p><p>  構(gòu)建此點(diǎn)菜系統(tǒng),數(shù)據(jù)庫(kù)的設(shè)計(jì)必須合理,這樣管理起來也就方便很多。在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),應(yīng)當(dāng)慎重考慮到以下幾個(gè)因素:</p>

75、<p>  數(shù)據(jù)庫(kù)必須層次分明,布局合理。</p><p>  數(shù)據(jù)庫(kù)必須高度結(jié)構(gòu)化,保證數(shù)據(jù)的結(jié)構(gòu)化、規(guī)范化和標(biāo)準(zhǔn)化,這是建立數(shù)據(jù)庫(kù)和進(jìn)行信息交換的基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)應(yīng)該遵循國(guó)家標(biāo)準(zhǔn)和行業(yè)標(biāo)準(zhǔn)。</p><p>  在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,一方面要盡可能地減小冗余度,減小存儲(chǔ)空間占用,降低數(shù)據(jù)一致性問題發(fā)生的可能性,另一方面,還要考慮適當(dāng)?shù)娜哂?,以提高運(yùn)行速度和降低開發(fā)難度。&

76、lt;/p><p>  必須維護(hù)數(shù)據(jù)的正確性和一致性。在系統(tǒng)中,多個(gè)用戶共享數(shù)據(jù)庫(kù),由于并發(fā)操作,可能影響數(shù)據(jù)的一致性。因此必須用“鎖”等辦法保證數(shù)據(jù)的一致性。</p><p>  設(shè)定相應(yīng)的安全機(jī)制,由于數(shù)據(jù)庫(kù)的信息對(duì)特定的用戶有特定的保密要求,安全機(jī)制必不可少。[4]</p><p>  3.4.2 數(shù)據(jù)庫(kù)的設(shè)計(jì)步驟</p><p>  數(shù)據(jù)

77、庫(kù)的設(shè)計(jì)過程可分為6個(gè)階段:</p><p>  需求分析階段:準(zhǔn)確了解與分析用戶的需求(包括數(shù)據(jù)與處理),是整個(gè)設(shè)計(jì)過程的基礎(chǔ),也是最困難、最耗費(fèi)時(shí)間的一步。</p><p>  概念結(jié)構(gòu)設(shè)計(jì)階段:這步是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,通過對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。</p><p>  邏輯結(jié)構(gòu)設(shè)計(jì)階段:將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBM

78、S所支持的數(shù)據(jù)模型,對(duì)其進(jìn)行優(yōu)化。</p><p>  數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段:為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。</p><p>  數(shù)據(jù)庫(kù)實(shí)施階段:運(yùn)用DBMS提供的數(shù)據(jù)語(yǔ)言、工具及宿主語(yǔ)言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果。建立數(shù)據(jù)庫(kù),編制與調(diào)試應(yīng) 用程序,組織數(shù)據(jù)入庫(kù),并進(jìn)行試運(yùn)行。</p><p>  數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段:

79、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。在數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行過程中必須不斷地對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。</p><p>  3.4.2數(shù)據(jù)庫(kù)表的設(shè)計(jì)</p><p>  根據(jù)手機(jī)點(diǎn)菜系統(tǒng)的基本情況,設(shè)計(jì)數(shù)據(jù)庫(kù)的E-R圖如圖3-4所示,整個(gè)表都是根據(jù)用戶的相關(guān)操作而設(shè)計(jì)成新表,用戶瀏覽菜單進(jìn)行點(diǎn)菜生成點(diǎn)菜日志表,用戶留言生成留言表等。</p><p>  圖3-4 系

80、統(tǒng)基本E-R圖</p><p>  用戶表users的設(shè)計(jì):</p><p>  表3-1 用戶表USERS</p><p>  菜單表orders的設(shè)計(jì):</p><p>  表3-2 菜單表ORDERS</p><p>  點(diǎn)菜記錄表order_log的設(shè)計(jì):</p><p>  表3-3

81、點(diǎn)菜記錄表ORDER_LOG</p><p>  留言表leave_words的設(shè)計(jì):</p><p>  表3-4 留言表LEAVE_WORDS</p><p>  視頻表videos的設(shè)計(jì):</p><p>  表3-5 視頻表VIDEOS</p><p><b>  3.5 本章小結(jié)</b>

82、</p><p>  本章主要對(duì)該手機(jī)點(diǎn)菜項(xiàng)目進(jìn)行了系統(tǒng)的分析,分別從經(jīng)濟(jì)可行性、技術(shù)可行性、操作可行性對(duì)其分析,又針對(duì)某一家餐飲店的經(jīng)營(yíng)情況對(duì)該系統(tǒng)做了需求分析,并對(duì)系統(tǒng)的工作原理、整體架構(gòu)做了詳細(xì)的描述,再根據(jù)數(shù)據(jù)庫(kù)的設(shè)計(jì)步驟完成了系統(tǒng)所需表的創(chuàng)建。</p><p><b>  4 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p>  4.1 系統(tǒng)環(huán)境

83、配置</p><p>  4.1.1 軟件環(huán)境</p><p>  在本系統(tǒng)中,采用Apache組織的開源項(xiàng)目Tomcat作為Web服務(wù)器,使用JSP技術(shù)開發(fā)服務(wù)器端,Java ME技術(shù)開發(fā)手機(jī)客戶端。具體如下:</p><p>  (a)Java開發(fā)工具包:JDK6.0。建議采用JDK5以上版本,因?yàn)樵谝郧暗陌姹局胁恢С址盒秃推渌男绿匦浴?lt;/p>

84、<p>  JDK環(huán)境變量的配置如下:</p><p>  變量名JAVA_HOME: D:\Windows7\Java\jdk1.6.0_10(為JDK的安裝目錄)</p><p>  變量名Path:%JAVA_HOME%\bin</p><p>  變量名ClassPath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\

85、lib\tools.jar</p><p>  (b)Web服務(wù)器采用Tomcat6.0,建議安裝5.0以上版本。</p><p>  (c)數(shù)據(jù)庫(kù)服務(wù)器采用MySQL。</p><p>  (d)服務(wù)器端開發(fā)工具采用的是MyEclipse。</p><p> ?。╡)Java ME開發(fā)插件:EclipseME和Java無線開發(fā)工具包(Jav

86、a Wireless Toolkit,WTK)。Eclipse是一個(gè)開放源代碼的、可擴(kuò)展的開發(fā)環(huán)境,我們開發(fā)Java ME程序,需要使用EclipseME插件。</p><p>  4.1.2 硬件環(huán)境</p><p>  4.2 系統(tǒng)框架實(shí)現(xiàn)</p><p>  4.2.1 主要的類與接口</p><p> ?。?)工具(com.nyb.u

87、til):連接數(shù)據(jù)庫(kù)的DBUtil和實(shí)現(xiàn)Filter的過濾器EncodingFilter。</p><p> ?。?)實(shí)體類(com.nyb.bean):菜單類(Order)、點(diǎn)菜記錄單類(OrderLog),用戶類(User)和視頻類(Video)。</p><p> ?。?)DAO(com.nyb.dao):</p><p>  表4.1 DAO主要類與接口&l

88、t;/p><p>  (4)Servlet類(com.nyb.servlet):</p><p>  表4.2 主要的Servlet類</p><p>  4.2.2 系統(tǒng)主要配置文件</p><p> ?。?)paramsConfig.properties配置文件:</p><p>  driverClass=com.m

89、ysql.jdbc.Driver</p><p>  dbUrl=jdbc:mysql://localhost:3306/order_db?useUnicode=true&characterEncoding=utf-8</p><p>  username=root</p><p>  password=root</p><p>  

90、(2)web.xml配置文件:</p><p> ?。╝)配置Servlet</p><p>  <!-- 注冊(cè) Servlet --></p><p><b>  <servlet></b></p><p>  <servlet-name>userRegister</servl

91、et-name></p><p>  <servlet-class>com.nyb.servlet.UserRegisterSerlvet</servlet-class></p><p>  </servlet></p><p>  <servlet-mapping></p><p> 

92、 <servlet-name>userRegister</servlet-name></p><p>  <url-pattern>/userServlet/userRegister</url-pattern></p><p>  </servlet-mapping></p><p> ?。╞)字符處理過

93、濾器</p><p><b>  <filter></b></p><p>  <filter-name>ending</filter-name></p><p>  <filter-class>com.nyb.util.EncodingFilter</filter-class><

94、;/p><p><b>  </filter></b></p><p>  <filter-mapping></p><p>  <filter-name>ending</filter-name></p><p>  <url-pattern>/*</url-

95、pattern></p><p>  </filter-mapping></p><p>  4.3 系統(tǒng)主要功能模塊的實(shí)現(xiàn)</p><p>  4.3.1 服務(wù)器端</p><p>  在本系統(tǒng)中,前端頁(yè)面實(shí)現(xiàn)比較簡(jiǎn)單,主要界面風(fēng)格如圖4-1所示。主要的頁(yè)面有index.jsp(首頁(yè)),listOrder.jsp(菜單列表

96、),listVideo.jsp(視頻列表),orderLogList.jsp(點(diǎn)菜日志列表),addOrder.jsp(添加新菜頁(yè)面),addVideo.jsp(添加視頻頁(yè)面)。相應(yīng)的頁(yè)面都有相關(guān)操作。</p><p>  界面簡(jiǎn)單明了,最上面一欄是相應(yīng)的操作,有點(diǎn)菜日志查詢,菜單查詢和視頻查詢,以及添加菜單和視頻的操作,在列表內(nèi)可以對(duì)該條內(nèi)容進(jìn)行相應(yīng)的修改或者刪除,針對(duì)點(diǎn)菜日志則有送往廚房、完成交易的操作等。手

97、機(jī)客戶端點(diǎn)菜后將點(diǎn)菜日志發(fā)送到菜單管理頁(yè)面對(duì)點(diǎn)菜日志進(jìn)行添加更新,再通過點(diǎn)菜管理查看相關(guān)的點(diǎn)菜日志,并作相應(yīng)的操作管理。</p><p>  圖4-1 點(diǎn)菜查詢界面</p><p>  (1)菜單列表實(shí)現(xiàn):</p><p>  List<Order> list = dao.getAllOrder();//獲得所有菜得信息</p><p

98、>  request.setAttribute(“l(fā)ist”,list);</p><p>  RequestDispatcher dispatcher = request.getRequestDispatcher(“/listOrder.jsp”);</p><p>  dispatcher.forward(request,response);//將請(qǐng)求轉(zhuǎn)發(fā)到listOrder.j

99、sp這個(gè)頁(yè)面</p><p>  對(duì)于點(diǎn)菜日志列表查詢和視頻列表的查詢和這個(gè)方法是一樣的,比較簡(jiǎn)單,這里不再贅述。</p><p> ?。?)菜單添加新菜:</p><p><b>  界面截圖:</b></p><p><b>  圖4-2 添加新菜</b></p><p>

100、;<b>  流程圖:</b></p><p>  圖4-3 添加新菜流程圖</p><p><b>  關(guān)鍵代碼:</b></p><p>  while(it.hasNext()){ </p><p>  FileItem fileItem=(FileItem)it.next(); //填充文

101、本框</p><p>  if(fileItem.isFormField()){</p><p>  if("orderName".equals(fileItem.getFieldName())){</p><p>  order.setName(fileItem.getString("UTF-8"));//設(shè)置菜名稱&l

102、t;/p><p>  } else if("orderDesc".equals(fileItem.getFieldName())){</p><p>  order.setDescription(fileItem.getString("UTF-8"));//設(shè)置菜描述</p><p>  } else if("orde

103、rType".equals(fileItem.getFieldName())){</p><p>  order.setType(fileItem.getString("UTF-8"));//設(shè)置菜類型</p><p>  } else if("orderPrice".equals(fileItem.getFieldName())){&

104、lt;/p><p>  order.setPrice(fileItem.getString("UTF-8"));//設(shè)置菜價(jià)格</p><p><b>  }</b></p><p><b>  } else {</b></p><p>  //添加菜圖片的方法</p>

105、;<p>  if(fileItem.getName()!=null&&!fileItem.getName().equals("")){</p><p>  String filename = fileItem.getName();//獲得圖片文件名</p><p>  String ext = filename.substring

106、(filename.lastIndexOf(".") + 1);//取圖片格式</p><p>  if(!"jpgpngbmp".contains(ext)){//格式限定為jpg、png、bmp的格式圖片</p><p>  out.println("圖片格式必須為:jpg、png、bmp");</p><

107、p><b>  return ;</b></p><p><b>  }</b></p><p>  if(fileItem.getSize() > 1024 * 1024){//大小限定(1 M )</p><p>  out.println("圖片不能大于1M");</p&

108、gt;<p><b>  return ;</b></p><p><b>  }</b></p><p>  String newname = System.currentTimeMillis() + "." + ext;//圖片統(tǒng)一重命名</p><p>  String str =

109、this.getClass().getResource("/").getPath();//瀏覽圖片的存放路徑</p><p>  str = str.replace("WEB-INF/classes/", "").substring(1);</p><p>  String imagesPath = str + IMAGE_PAT

110、H;//新的存放路徑</p><p>  File dir = new File(imagesPath);</p><p>  if(!dir.exists() && !dir.isDirectory())</p><p>  dir.mkdirs();</p><p>  File realFile=new File(

111、imagesPath, newname);//上傳后的文件保存</p><p>  fileItem.write(realFile);</p><p>  order.setImgage_path(IMAGE_PATH + newname);//路徑設(shè)置</p><p><b>  }</b></p><p>&l

112、t;b>  }</b></p><p><b>  }</b></p><p>  if(dao.addOrder(order) > 0)</p><p>  out.println("添加成功");</p><p><b>  else</b></

113、p><p>  out.println("添加失敗");</p><p>  進(jìn)行添加新菜的時(shí)候,除了描述可以為空外其他的都必須不為空才能添加成功,描述的內(nèi)容也可以之后進(jìn)行修改時(shí)進(jìn)行添加,那么對(duì)于視頻的添加方法以及效果圖和這個(gè)類似,這里不再贅述。頁(yè)面效果截圖如圖4-2所示,該程序流程圖如圖4-3所示。</p><p><b>  4.3.2

114、 客戶端</b></p><p><b> ?。?)用戶登錄:</b></p><p><b>  界面截圖:</b></p><p>  圖4-4 手機(jī)登錄界面</p><p><b>  流程圖:</b></p><p>  圖4-5 手

115、機(jī)登錄界面</p><p><b>  關(guān)鍵代碼:</b></p><p>  //根據(jù)給定的URL地址,使用HttpConnection進(jìn)行HTTP連接</p><p>  httpConn = (HttpConnection) Connector.open(ServerURL.LogonURL);</p><p> 

116、 httpConn.setRequestMethod(HttpConnection.GET);</p><p>  dos = new DataOutputStream(httpConn.openOutputStream());</p><p>  dos.writeUTF(uic.getUser().getLoginid());//發(fā)送登錄帳號(hào)</p><p&g

117、t;  dos.writeUTF(uic.getUser().getPassword());//發(fā)送登錄密碼</p><p>  dis = new DataInputStream(httpConn.openInputStream());</p><p>  Order_Client.MESSAGE = dis.readInt();//讀取服務(wù)器發(fā)送登錄的驗(yàn)證消息</p&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論