網上訂餐系統畢業設計論文_第1頁
網上訂餐系統畢業設計論文_第2頁
網上訂餐系統畢業設計論文_第3頁
網上訂餐系統畢業設計論文_第4頁
網上訂餐系統畢業設計論文_第5頁
已閱讀5頁,還剩50頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、大連工業大學 2014屆本科生畢業設計(論文) 畢 業 設 計(論 文) 題目: 網上訂餐系統 子題: 專 業: 網絡工程 指導教師: 李吉平 學生姓名: 劉 巖 班級-學號:網絡101-18 2014年 6 月大連工業大學本科畢業設計(論文)網上訂餐系統the design and implementation of online meal ordering system設計(論文)完成日期 2014 年 5 月 25日學 院: 信息科學與工程學院 專 業: 網絡工程 學 生 姓 名: 劉 巖 班 級 學 號: 網絡101-18 指 導 教 師: 李吉平 評 閱 教 師: 2014年 6 月

2、大連工業大學 2014 屆本科生畢業設計(論文) 摘 要本文分析了系統主要的各個功能的設計、實現過程,有條理地闡述系統的設計思想、系統規劃等內容。軟件設計部分采用面向對象的軟件設計方法,利用uml的標準對系統的主要部分進行建模和設計,采用b/s結構,采用myeclipse8.5開發工具,結合java編程語言,tomcat7.0作為服務器,使用jdbc連接數據庫,struts2框架做頁面間的跳轉。系統后臺利用mysql作為數據庫服務器支持,完成動態的、交互的網上訂餐系統。系統主要功能實現了管理員對系統菜品管理,用戶個人基本信息維護,訂單管理,特價菜單管理;用戶基本信息注冊,找回密碼,菜單查詢及訂

3、購各色菜品;登錄,查詢菜單信息,及菜品的評價等功能模塊。系統的實現有效地為訂餐管理工作提供方便,提高工作效率。關鍵字:b/s結構;myeclipse 8.5;mysql;java;strust2abstractthis paper analyzes the system each function of the design, implementation process, clearly illustrates system design idea, system planning, etc. software design part adopts the object-oriented s

4、oftware design method, using uml standard modeling and design for the main part of the system, adopts b/s structure, using myeclipse10 development tools, combined with the java programming language, tomcat7.0 as a server, using jdbc to connect to the database, the struts 2 framework to jump between

5、pages. support system background using mysql as a database server, dynamic, interactive online reservation system. system main function implements the administrator of food management, users' personal basic information maintenance, order management, specials menu management; user registration pe

6、rsonal basic information, retrieve password, the menu information query and order dishes; menu login, query information, and evaluation of food function module. the realization of the system for order management work effectively and provide a convenient, improve the work efficiency. keywords: b/s;my

7、eclipse 8.5; mysql; java; strust255目 錄摘要iabstractii引 言1第一章 項目概述21.1 現狀概述21.2 系統業務流程3第二章 系統需求分析52.1 需求陳述52.2 use case建模62.2.1 定義參與者62.2.2 use case圖72.3系統功能描述9第三章 總體設計113.1 系統結構113.2 軟件架構113.2.1 架構設計目標123.2.2 軟件架構設計123.2.3 軟件架構類圖18第四章 詳細設計194.1 系統交互圖194.1.1系統架構類交互圖194.1.2 參與者與模塊間的交互204.1.3 系統協作圖224.1.

8、4 系統狀態圖234.1.5 系統活動描述244.2 業務邏輯對象類設計254.2.1 發現業務邏輯類254.2.2 業務邏輯對象類圖254.3 數據庫設計264.3.1 數據庫概念模型設計264.3.2 數據庫表結構設計274.4 開發環境的選擇294.4.1 系統開發工具29 4.4.2 數據庫的選擇294.4.3 系統網絡架構設計30第五章 編碼315.1 概述開發工具及源程序代碼315.2 源程序習慣說明325.3 源程序代碼34第六章 測試386.1 測試原則及測試方法概述386.2 測試項目測試用例416.3 軟件測試結論446.3.1 軟件能力446.3.2 缺陷和限制456.3

9、.3 建議456.3.4 測試評估及總結45第七章 結論46參考文獻47致謝48引 言隨著科學技術的進步,社會節奏越來越快,網絡的迅猛發展,互聯網信息技術已日益成為獲取信息的最佳方法。餐飲這一行業也面連著巨大的挑戰,網上訂餐主要是針對工薪階層還有大學生這些特殊群體,白領們在中午時間或者晚上高峰時間就餐,由于時間的緊湊,不能很好地享受美味,所以網上訂餐,這樣既可以提前訂餐不浪費中午休息的時間,還可和同事加深感情,更可以每天換各種各樣的菜品,確保每天的工作效率和身心健康,這些問題就產生了快捷訂餐的需求,實現這種式莫過于利用網絡,將餐飲業和網絡結合起來,就形成最快的方式-網上訂餐,這種方式能足不出戶

10、,輕松方便地實現自己訂購餐飲和食品(包括飯、菜、飲料等)。有能力的餐飲企業可以對菜品、飲料等提供商提供網上訂餐服務,不僅提高餐飲企業的服務質量,對于擴大知名度,和提升市場競爭力有很大的益處。隨著人民生活質量要求的不斷提高,餐飲業及它在服務行業中的地位也越來越重要,如何從激烈的競爭中獨樹一幟,已經成為每位餐飲老板所要思考的問題。經過多年的發展,對餐飲企業的管理經營已經逐漸的由簡單的人為管理,進入到規范的利用科學手段進行管理。在科學管理的具體實現方式和方法中,最有效率的工具就是應用餐飲管理軟件進行管理。將應用軟件用于現代的餐飲業,解決了傳統的筆上記賬,統計,對于核算方式計費等費時費力的難題,這種方

11、式既容易操作,又不會出錯誤,提高了餐飲業管理水平。- 45 -第一章 項目概述1.1 現狀概述科學技術在不斷發展,計算網絡機通信行業讓人們人們的溝通越來越便捷,使今天的社會進入了以計算機為核心的社會,網絡通信的出現給我們諸多方面帶來了無限的商機與便利(比方說餐飲業);計算機與網絡的普及也使人們對web的設計和外觀要求越來越嚴格,完美而動感的畫面給人們更好的視覺感受,因此,網站作為一個企業的代表需要精心設計。餐飲業經營者也就可以利用自己的網站,發布酒店的信息和菜品信息,每種菜都有精美的圖片,這樣可以實現酒店或餐館的自我推薦,從而吸引網民的關注。能夠很方便的預定需要的菜品及飲品。足不出戶就可以享受

12、上等的佳肴,網上訂餐為客戶提供的是最方便的飲食方式,以最快、最便捷的訂餐服務,并且有自己的類似與肯德基的宅急送,送貨上門為客戶服務,這省去了客戶很多不必要的時間和麻煩,給經營者帶來更多利益,同時,網上訂餐可以增加社會的就業率。通過信息管理成的方式,可以記錄餐飲企業各方面的數據和信息。與過去的的電話訂餐相比,網絡訂餐有著很多的優點。例如如:顧客通過電話訂餐時,往往由于本身對餐飲企業提供的信息不太了解,就會進行不必要的咨詢,導致時間上的浪費。電話接收人員在同一時間反復重復相同的信息,也造成了人力的浪費。相對而言,網絡訂餐提供圖片及文字介紹,豐富而詳實的信息讓客戶就像在超市里挑選商品一樣點擊添加自己

13、喜愛的餐品,這在一定程度上滿足了客戶的自由選擇權是購買商品能夠更加的愜意。通過網上訂餐系統也將訂餐推廣到更加廣泛的群體當中,使得訂餐增多,飯店的知名度提高。網絡不會同電話一樣占線,在高峰期對訂餐的處理更是綽綽有余,很少會出現向系統崩潰的現象,而且網上訂餐的費用不會想電話訂餐那樣高,相比之下有自己的競爭力。同時兩者有事相輔相成的關系,可以擴大客流量,提升餐飲行業的業務量無論如何網上訂餐終將成為一種時尚一種潮流,將使傳統的餐飲更加具有勃勃生機,在眾多行業中立于不敗之地。1.2 系統業務流程經過前期調研分析和綜合其它各方面相關理論知識,現歸納網上訂餐系統的業務流程如下:1 .用戶進入登錄頁面后,可以

14、選擇是否注冊個人信息,如果選擇注冊,即可進入注冊信息界面,注冊個人信息,成為會員;如果選擇不注冊,則可進入非會員通道。2. 用戶注冊后,如果忘記密碼,可以找回個人密碼。3. 用戶成功登錄后,即可進入訂餐頁面,首頁顯示的是今日特價菜,用戶可以訂購特價菜,也可以選擇其他菜式進行訂購。4. 用戶選好菜式后,可將其加入購物車,完成訂單。5. 用戶可以對自己選購的或者未選購的菜品進行評價,可以增加其他用戶對菜式的了解。6. 管理員在后臺數據庫進行菜品的添加加,修改和刪除,同時還可設定今日特價菜。同時管理員也對會員進行管理。根據以上總結出來的業務流程,結合在學校學習到的java web知識,經過對需求調研

15、的總結,給出網上訂餐系統的業務流程圖。業務流程圖用于描述現系統各項業務處理過程,并結合業務流程圖詳細、詳實地說明業務處理過程中數據的采集、輸入、提交、存儲、加工的方法及算法、輸出的數量及形式等。業務流程圖的圖例如表1.1,網上訂餐系統業務流程圖如下圖1.1所示:表1.1業務流程圖圖例符號名稱說明處理可以改變數據的值或建工組件輸入輸出數據的輸入與輸出人員使用程序的人或系統數據流指明數據流動方向賬冊、報表用于記錄數據的紙質文檔網上訂餐系統的開發主要圍繞以上的業務流程進行,開發過程采用面向對象的編程思想及使用java開發語言,詳細的開發過程見如下章節。圖1.1 網上訂餐系統業務流程圖第二章 系統需求

16、分析2.1 需求陳述為了開發出真正滿足用戶需求,軟件產品首先必須進行需求分析。對軟件需求分析和了解是軟件開發成功的關鍵,不論項目人員把設計和編碼工作做得多么的出色,不能真正滿足用戶需求的程序只會令用戶失望,從而不斷地修改軟件給開發者帶來煩惱。需求陳述為以下工作提供了良好的機制;了解客戶需要什么,分析需求求,估計可行性,討論決定合理的方案,無歧義的詳細說明方案,確認規格說明,管理需求最終將這些需求轉化為可運行的軟件系統。根據調研分析得知,網上訂餐系統共需要完成4項中心任務,即:用戶信息管理、菜單信息管理、菜品評論管理、訂單管理。每項任務具體描述如下:1.用戶信息管理用戶的注冊信息管理模塊主要由后

17、臺管理人員負責,用戶注冊成功后,信息由后臺管理人員管理,管理人員根據用戶是否已經注冊,確定其是否為會員,方便用戶管理。會員制是平臺應該具備的。通過會員制,不僅可以為顧客訂餐提供方便,還可以保持顧客積累量。顧客在登陸系統首頁后,可以在用戶注冊界面點擊注冊按鈕,頁面便跳轉到用戶注冊頁面,用戶在填寫完密碼,確認密碼,聯系電話,保留信息等資料后點擊提交便可完成注冊。用戶還可以點擊重置按鈕來清除已填寫的自己想改的信息,方便用戶在想重新填寫注冊資料時使用。2.菜單信息管理菜單信息管理模塊主要由管理人員來操作,主要負責對增添新菜品、修改菜品信息、刪除菜品、設置特色菜進行管理。方便用戶進行菜品的訂購。3.菜品

18、評論管理菜品評論管理主要是用戶可以對菜品進行評論,方便其他用戶對菜品的了解。4.訂單管理訂單管理主要是指用戶訂餐后,確定其訂購后,將菜品加入購物車中,產生訂單,方便用戶了解自己的菜品訂購。同時方便管理人員對用戶訂購菜品的管理。系統確認之后,接下來的工作就是進行系統的分析。系統分析主要是包括面向對象分析,分析問題域等,畢竟我們采用的是面向對象的開發語言,如何設置對象,建立對象之間及對象和外度系統之間的關系,建立起必要的對象關系模型,如設置對象中的屬性方法,使他能夠更精確的表示事物的客觀屬性,為系統分析提供假設條件。2.2 use case建模2.2.1 定義參與者參與者(actor)是指與系統無

19、關的、需要利用與系統交互的東西,包括人、設備、外部系統等。根據網上訂餐系統的需求可以確定2個參與者,即:管理員主要維護用戶基本信息管理,菜單信息管理,訂單管理,以及菜品評論信息管理。用戶主要的功能是注冊個人信息,登錄,找回密碼,訂購菜品,以及進行菜品評論。2.2.2 use case圖用例圖定義:由用例(use case)、參與者(actor)和它們之間的關聯所組成的用于描述系統功能的動態視圖稱為用例圖。用例圖(user case)是被稱為參與者的外部用戶所能觀察到的系統功能的模型圖,呈現了一些參與者和一些用例,以及它們之間的關系,主要用于對系統、子系統或類的功能行為進行建模。用例圖展示了用例

20、之間以及同用例參與者之間是怎樣相互聯系的。用例圖用于對系統、子系統或類的行為進行可視化,使用戶能夠理解如何使用這些元素,并使開發者能夠實現這些元素 。用例圖的圖示見表2.1。符號名稱說明用例交互動作的序列說明參與者出系統外需要與系統交互的功能組件關聯actor和usecase之間的關系表2.1用例圖圖例根據系統需求分析,并結合上節系統活動者的定義分析,得到網上訂餐系統塊的10個用例:1. 用戶基本信息維護用例2. 菜單信息管理用例3. 訂單管理用例4. 菜品評論用例5. 購物車管理用例6. 訂購菜品用例7. 登錄用例8. 注冊用例9. 找回密碼用例10. 特價菜管理用例結合參與者和用例得到網上

21、訂餐系統的的用例圖如圖2-1所示,現對用例描述如下:1.用戶基本信息維護維護用戶注冊的個人信息,包括密碼,聯系電話,賬號提問,賬號回答等資料。用戶注冊后,成為會員,而未注冊的是非會員,方便管理人員對其進行管理及維護。2.菜單信息管理主要包括查詢菜單,添加新菜品,修改菜單,刪除菜品,設定特色菜。圖2.1網上訂餐系統use case 圖3.訂單管理用戶訂購菜品后,將其加入購物車,產生訂單,管理員可以查看訂單,確定用戶的訂單信息。4.菜品評價用戶可以對菜品進行評論,其評論信息會顯示到頁面中,方便其他用戶對菜品的了解。5.購物車管理管理員對每個用戶訂購的菜品所組成的購物車進行管理。6.訂購菜品用戶對自

22、己選購的菜品進行訂購,從而放到購物車中。7.登錄用戶和管理員都有自己相應的賬號和密碼,密碼和賬號匹配后即可登錄到訂餐系統,進行相應的操作。8.注冊不是會員的用戶可以注冊成為會員,提升自己使用訂餐系統的權限。9.找回密碼注冊的用戶,忘記密碼,可以找回密碼,方便用戶的信息維護。10.特價菜管理主要包括刪除,修改特價菜信息的功能。2.3系統功能描述根據上述需求,分析出網上訂餐系統功能如下:1. 用戶基本信息維護維護用戶注冊的個人信息,包括密碼,聯系電話,賬號提問,賬號回答等資料。用戶注冊后,成為會員,而未注冊的是非會員,方便管理人員對其進行管理及維護。如果用戶注冊后忘記密碼,可以找回密碼,加強管理人

23、員對用戶信息的維護。2. 瀏覽菜品信息用戶登錄后即可進入網上訂餐系統,可以查看特色菜,肉菜,素菜,飲料,海鮮等信息。3. 訂購菜品用戶根據菜單進行菜品的訂購,將其加入購物車,生成訂單。4. 評論菜品用戶可以對菜品進行評價,方便其他用戶對菜品的了解,同時也為管理員管理菜單提供信息。5. 增添新菜品管理員可以增添新的菜品,方便用戶選購。6. 修改菜品管理員可以修改菜品,更新菜單。7. 刪除菜品管理員可以刪除菜品。8. 設定特價菜管理員可以依據菜品的訂單信息,定期進行特價菜設定。第三章 總體設計需求分析作為軟件工程的首要任務那么接下來要做的便是著手解決“怎么做”的問題即軟件的總體設計。總體設計首先要

24、考慮出實現平臺的可能的多種方案從總選擇出最優的解決方法。本章將從系統結構設計、軟件架構設計和數據庫設計著手,對網上訂餐系統進行總體設計。3.1 系統結構通過需求分析階段的了解和設計討論出的軟件功能描述,抽象的設計出系統結構圖,如圖3.1所示,如下的各模塊只是抽象上的劃分,各模塊之間需要相互協調數據的傳輸共享來完成整個系統流程,但是單一模塊之間是相互獨立的。享數據,相互協作,完成整個系統流程,單一事物功能模塊間是相互獨立的。圖3.1 網上訂餐系統系統結構圖3.2 軟件架構軟件的架構是指通過某種特定的技術平臺,完成軟件系統整體功能的開發過程。也可以一般的理解為:總體設計和總體結構布局。一般而言,軟

25、件系統架構有兩個要素:1.它是一個軟件系統從整體到部分的最高層次的劃分。2.搭建一個系統,且該系統能做出最高層次的技術上的決定。3.2.1 架構設計目標軟件架構設計要達到如下的目標:可行性:軟件可行性是軟件設計的基礎。可靠性、安全性:軟件是否安全不被入侵易于維護是軟件必備的資質可定制化、可擴展性:即一個軟件具有伸縮性,可以根據需求進行調整也可以稱作為功能和性能的擴展可升級性:即可以在運行過程中對出現的bug和漏洞驚醒修改客戶體驗:軟件必須能夠有一個客戶體驗回收機制,便于對我們的軟件產品進行了解3.2.2 軟件架構設計根據軟件架構設計應遵循的原則的到系統的包圖,這樣得到包圖如圖3.3 所示:圖3

26、.2 系統體系架構圖圖 3.3網上訂餐系統模塊包圖1. 用戶界面包用戶界面包的職責是:(1) 負責與用戶的交互,根據用戶提交的數據及時回饋信息提示 (2)對用戶輸入的數據進行數據驗證,過濾掉敏感或者不合法的數據。(3)調用業務處理對象進行相關業務處理。用戶界面展開包圖如圖3.4所示:圖3.4 用戶界面展開包圖用戶界面包包含的類見圖3.5:圖3.5 用戶界面類圖2. 業務邏輯包業務邏輯包的職責是:(1)完成各種業務處理邏輯或算法。(2)驗證請求者的權限。(3)向數據訪問對象發送數據持久化操作的請求。(4)向用戶view層返回處理結果。業務邏輯展開包圖如圖3.6所示:圖3.6 業務邏輯展開包圖3.

27、 data access(數據訪問)包數據訪問層的職責是: (1)實現數據持久化操作;(2)執行事務處理,維持事務原子性。數據訪問包圖展開如圖3.7所示:圖3.7 數據訪問包圖展開在java數據訪問的過程中需要完成數據庫數據的持久化操作在這里會用到jdbc,連接池,批處理等數據層訪問技術,項目開發中我們稱其為dao層和service層,數據訪問包包含的類見圖3.8:圖3.8數據訪問類圖4. 權限管理包權限管理的主要職責是:(1)驗證請求者的請求權限。(2)提供請求者的權限列表。權限管理展開包圖如圖3.9所示:圖3.9權限管理包圖展開5. 異常處理包異常處理的職責:(1)匯報運行時的詳細異常信息

28、。(2)記錄異常處理日志。異常處理包圖展開如圖3.11所示:圖3.10異常處理包圖展開3.2.3 軟件架構類圖由包圖展開得到類圖,它是架構的靜態結構圖,表明了各個類之間的關系。網上訂餐系統架構類圖如下圖3.11所示。圖3.11 系統架構類圖第四章 詳細設計詳細設計階段的根本目標是確定應該怎樣具體地實現所要求的系統。經過這一階段的設計工作,應該得出對目標系統的精確描述,從而在編碼階段可以把整個描述直接翻譯成用某種程序設計語言書寫的程序。本章主要涉及軟件系統的動態建模和系統類圖的詳細設計。軟件系統的動態模型分為交互模型和活動狀態模型,其中的交互模型主要由順序圖和協作圖構成,活動狀態模型主要包括活動

29、圖和狀態圖。通過為軟件系統項目建立動態模型,因此可以得出具體的分析結果,即對象的時間特性,任務之間的通信機制和狀態變化等信息。4.1 系統交互圖4.1.1系統架構類交互圖系統架構類的工作流程如下:1.用戶窗體對象在接收了用戶的登錄信息后,進行權限驗證,然后顯示權限對應的菜單;2.用戶窗體在提交業務請求前,先利用model實體類對數據進行封裝,然后將封裝的數據對象和業務請求傳給業務邏輯類的對象進行處理;3.業務邏輯對象接收到請求后,進行業務處理,生成對應的sql命令,然后提交給數據庫訪問層進行執行;4.數據庫訪問對象連接數據庫并執行sql命令后,如果正常執行則返回數據,若產生異常則交付異常處理對

30、象進行處理;5.業務邏輯對象獲得返回的數據進行進一步的業務處理,如發生異常則交付給異常處理對象;6.業務邏輯對象將處理的結果通過model實體對象返回用戶窗體類;7.用戶窗體類通過model實體類進行解除封裝,然后顯示處理結果在窗體上。 4.1.2 參與者與模塊間的交互與網上訂餐系統進行交互的參與者主要包括管理員和用戶。管理員和用戶與網上訂餐系統的交互圖如下圖4.1和圖4.2所示: 圖4.1系統架構類的交互圖 圖4.2 用戶與網上訂餐系統的交互圖 下面對網上訂餐系統活動的情況進行動態建模,以下論述將以管理員與菜單管理模塊、特價菜管理模塊、訂單管理模塊分別進行時序圖、協作圖、狀態圖和活動圖的建模

31、。1.菜單管理模塊菜單管理模塊的程序流程如下:(1)管理員登錄系統,打開菜單管理窗體;(2)管理員選擇要更改的菜品(包括肉菜,海鮮,素菜,主食,飲料),并進行修改,刪除或設定為特價菜的操作;(3)管理員添加新的菜式,輸入菜品名稱,參考圖片,菜品種類,價格,會員價的信息。2.特價菜管理模塊(1)管理員登錄系統,打開菜單管理窗體;(2)管理員選擇要更改的特價菜信息,進行刪除或者修改的操作;(3)管理員對特價菜進行修改,并更新特價菜信息。3.訂單管理模塊(1)管理員登錄系統,打開菜單管理窗體;(2)管理員選擇訂單管理,對完成的訂單進行刪除;(3)更新訂單。管理員對訂單管理的時序圖如下圖4.4所示。圖

32、 4.4 管理員與訂單管理的時序圖4.1.3 系統協作圖用于說明系統實現的用例及用例場景的交互圖叫系統協作圖,在uml中有兩種交互圖,分別是時序圖和協作圖,二者不同的是前者按時間順序后者是按時間和空間的順序描述系統元素間的交互。根據上節描述的管理員對菜單管理的協作圖,如下圖4.5所示。 圖 4.5 管理員與菜單管理的協作圖管理員對特價菜管理的協作圖,如下圖4.6所示。圖 4.6 管理員對特價菜管理的協作圖4.1.4 系統狀態圖在菜單管理模塊中,系統存在菜單管理界面、菜品信息顯示、刪除菜品信息、添加菜品信息等狀態,管理員對菜單管理的狀態圖如下圖4.7所示。在特價菜管理模塊中,系統狀態包括顯示特價

33、菜菜單界面、特價菜刪除、特價菜信息修改等狀態。在訂單管理模塊中,系統存在菜單管理界面顯示、訂單管理界面顯示、刪除訂單、數據更新等狀態。圖 4.7 管理員對菜單管理的狀態圖4.1.5 系統活動描述用于描述系統活動如何進行的圖叫做活動圖。當一個操作一定要完成一連串事情,但是無法確定以什么樣的先后順序來完成這些事情的時候,活動圖可以更清晰地描述這些事情3。在網上訂餐管理系統中,主要涉及管理員的活動。在菜單管理模塊中,管理員登錄系統后,可以選取菜品種類(肉菜,素菜,海鮮,主食,飲料)進行刪除、修改、設置今日特價等操作記錄,如果是刪除,則刪除此菜品記錄,如果是修改,則修改菜品信息,更新菜單,也可以進行添

34、加菜品的操作,添加新菜品信息,更新菜單。在特價菜管理模塊中,管理員進入系統后,需要點擊特價菜管理,可以選取特價菜品進行刪除、修改等操作。如果是刪除,則菜品記錄被刪除,更新菜單;如果是修改則修改特價菜信息,記錄數據更新到數據庫。在訂單管理模塊中,管理員登錄系統后,管理員對已完成的訂單進行刪除,更新信息到數據庫中。4.2 業務邏輯對象類設計4.2.1 發現業務邏輯類本節由系統分析中的use case交互圖可以發現業務邏輯類包括用戶類,菜品評評論類,菜單基本類、訂單信息類,購物車信息類。鑒于本系統以軟件三層架構思想為指導,將系統的業務邏輯和實體模型分離開來,所以根據架構情況設計,將上述發現的業務邏輯

35、類分解為業務邏輯類和實體模型類,其中實體模型類主要描述了實體屬性,業務邏輯類描述了實體的方法集合。4.2.2 業務邏輯對象類圖系統中,實體類的類圖如圖4.8所示。圖4.8網上訂餐系統實體類類圖業務邏輯類是建立在實體類之上的,包含了系統業務邏輯的操作。系統業務邏輯類如圖4.9所示。圖4.9網上訂餐系統系統業務邏輯類類圖4.3 數據庫設計數據庫設計是軟件開發的頁一個重要的步驟,整個系統數據的處理都需要依賴后臺數據庫的支持,因此數據庫設計顯得尤為重要。4.3.1 數據庫概念模型設計 根據需求描述和軟件架構設計,管理員、用戶、用戶信息、菜單信息、特色菜信息、購物車訂單、菜品評論信息等都是模型層的實體b

36、ean。網上訂餐系統的e-r模型圖見圖4.10。圖4.10網上訂餐系統數據庫e-r圖4.3.2 數據庫表結構設計將網上訂餐系統e-r模型中的實體轉換為物理表,得到物理表結構如下:1.用戶信息表tab_user表4.1 用戶信息表結構主鍵標識字段名類型是否為空注釋pkidintn用戶idnumbervarchar(30)y用戶賬號passwordvarchar(20)y密碼phonenumbervarchar(20)y聯系電話registdatevarchar(15)y注冊日期registquestionvarchar(255)y賬號提問問題registanswervarchar(255)y賬號

37、回答答案2.菜單信息表tab_dish表4.2 菜單信息表結構主鍵標識字段名類型是否為空注釋pkid intn菜品編碼dishnamevarchar(50)y菜品名稱dishpicturevarchar(30)y菜品圖片dishkindvarchar(10)y菜品種類pricedoubley菜品價格memberpricedoubley菜品特價isvalidinty是否有效3.訂單信息表tab_order表4.3訂單信息表結構主鍵標識字段名類型是否為空注釋pkidintn訂單編號dishvarchar(50)y菜品名稱sumpricedoubley總價contactvarchar(20)y聯系電

38、話isvalidvarchar(10)y是否有效4.特價菜品信息表tab_special表4.4 特價菜品信息表結構主鍵標識字段名類型是否為空注釋pkidintn特價菜品編號dishnamevarchar(20)y特價菜品名稱dishpicturevarchar(50)y特價菜品圖片specialpricedoubley特價菜品價格5. 臨時訂單表tab_orderform_temp表4.5臨時訂單表結構主鍵標識字段名類型是否為空注釋pkidintn臨時訂單編號fkusernumbervarchar(50)y用戶賬號fkdishidinty菜品編號isspecialvarchar(20)y是否

39、為特價菜6.菜品評論信息表tab_comment表4.6表結構主鍵標識字段名類型是否為空注釋pkidintn評論編號dishidinty菜品編號commentvarchar(255)y評論內容datevarchar(50)y評論日期isspecialvarchar(20)y是否為特價菜4.4 開發環境的選擇4.4.1 系統開發工具網上訂餐系統主要采用myeclipse 8.5作為開發平臺。myeclipse是在eclipse的之上發展出來的,在myeclipse8.5中我們可以集成我們想要的環境,比如說tomcat服務器,oracle或者mysql數據庫等對我們的網站進行發布和數據庫的連接,提

40、升里工作效率。在myeclipse8.5包含了完整的編碼、調試、測試、和發布功能,支持ssh三大框架,jsp web前臺技術,sql,html等,在myeclipse中集成了許多功能強大啊的組件,web開發工具,ejb組件等;4.4.2 數據庫的選擇本次設計主要采用mysql5.5作為數據庫存儲系統,mysql相對于oracle這樣的大型數據庫而言,具有小巧靈活,存儲效率高的特點適用于中小型網站的數據存儲管理,他的代碼是開源的,并且便于安裝,系統特性:1. 支持多線程,充分利用cpu資源。2. 優化的sql查詢算法,有效地提高查詢速度。3. 提供用于管理、檢查、優化數據庫操作的管理工具。4.4

41、.3 系統網絡架構設計本網上訂餐系統采用傳統的b/s結構,系統架構圖見圖4.11。圖4.11 系統網絡架構圖cpu內存硬盤空間顯示模式最低配置celeron1.7g256m40g800*600推薦配置pentium 4 3.0g512m80g1024*768第五章 編碼5.1 概述開發工具及源程序代碼1.開發工具設計通篇采用myeclipse8.5作為開發工具,它支持各種開源產品,在性能方面無可挑剔。通過此開發工具我們可以在數據庫、應用服務器(如tomcat)的存儲數據和發布網站方面提高工作效率。2.編程語言設計主要采用java面向對象語言作為開發語言,java是一種跨平臺的面向對象的開發語言

42、,是由sun公司推出的,它包括java標準版,java企業版和java迷你版。java語言不但可移植性強,相對于其他語言來說,他的面向對象特點給開發者帶來了極大的便利,它內置的jdk為程序員提供了很大的方便,另外java虛擬機功能也是十分強大,所以作為一個java程序員,我感到十分的榮幸。5.2 源程序習慣說明程序的編碼習慣主要是類的定義、方法的命名、變量的命名及注釋的編寫等,盡量做到可讀性強,增強代碼的通俗性和易懂性,使得代碼修改和程序維護相對簡單。1.變量命名以下規則包含變量規范。int level;/indentation levelint size;/ size of the tabl

43、e不允許寫成如下的變量定義:int level,size;不允許在同一行定義不同變量:初始化:局部變量定義的同時必須進行初始化,如果無法確認變量的初始值,則置為null,例如:object current = null;void mymethod()int in = 0;/在方法體開頭定義if(condition)int in2 = 0;/在”if”語句開頭定義for(int i = 0;i<max;i+).避免局部變量覆蓋全局變量。比如,不要在內部語句塊定義和外部變量同名的變量:int count;mymythod()if(condition)int count;/避免!.類和接口的命

44、名:當編寫java類和接口定義時,下列規則必須遵守:開括弧必須在定義語句之后的同一行,作為定義語句的一部分;閉括弧應該單獨一行,位置和類或接口定義語句保持左對齊。有一種特殊情況,當”和”之間沒有任何語句時,”必須緊跟在”之后;方法之間必須以空行分隔。class sample extends objectint ivar1;int ivar2;sample(int i ,int j)ivar1 = i;ivar2 = j;int emptymethod(). 2.對象命名包的命名:包的名字應該是全部由小寫字母組成。原則上按照其完成的業務功能進行命名,要求系統需求開發時就要劃分業務模塊。class

45、的命名:如果類名是單獨成詞的話開頭字母應該大寫,例如:student;如果class的名字是復合名詞,必須每個組成單詞的開頭大寫而其他字母都小寫,例如:inputstream;接口interface的命名:與class的命名規則相同。method的命名:當方法名為復合單詞時,開始的單詞用小寫字母開頭,從第2單詞起用大寫的字母作開始的單詞,例如:findid;只有動詞時,全部用小寫,變量的命名:變量的定義同方法相同,單獨成詞首字母小寫,復合詞第二個單詞首字母大寫,例如:charat;static final修飾的變量的為常量全部大寫,并且注釋完整含義;變量名盡可能簡短明了。數組的命名:數組作為c

46、ore java的主要內容有三種定義方式:byte buffer;而不是:byte buffer;常數的命名:全部用大寫字母表示,有復合單詞構成的情況,使用下劃線(_)隔開,例如:public static final byte max_value=255。5.3 源程序代碼根據以上說明,現列舉部分代碼來說明編碼規范。1.修改菜單方法加載驅動類,獲取數據庫連接,通過statement對象傳送sql語句,執行sql語句,根據菜單編號進行修改。public void updatedish(int id,string dishname,string dishpicture,string dishki

47、nd,double price,double memberprice) try class.forname("com.mysql.jdbc.driver");/加載驅動類connection conn = drivermanager.getconnection("jdbc:mysql:/127.0.0.1:3306/ordering","root","12346");/獲取數據庫連接statement stmt = conn.createstatement();/創建statement對象string sql =

48、"update tab_dish set dishname='"+dishname+"',dishpicture='"+dishpicture+"',dishkind='"+dishkind+"',price='"+price+"',memberprice='"+memberprice+"' where id='"+id+"'"/根據菜品編號對菜品信息進行更改s

49、tmt.execute(sql);/執行查詢 catch (classnotfoundexception e) e.printstacktrace(); catch (sqlexception e) e.printstacktrace();2.用戶登錄功能為例,給出部分程序源代碼。連接數據庫,查詢用戶信息表,根據用戶是否注冊成為會員進行相應操作,如果用戶已注冊,則可直接登錄;如果用戶未注冊,則可進入非會員通道,登錄系統。public class loginmethod public boolean loginmethod(string number,string password) boole

50、an flag = false;try class.forname("com.mysql.jdbc.driver");/加載驅動類connection conn = drivermanager.getconnection("jdbc:mysql:/127.0.0.1:3306/ordering","root","12346");/獲得數據庫連接statement stmt = conn.createstatement();string sql = "select count(*) from tab_use

51、r where number='"+number+"' and password='"+password+"'"/根據id和密碼查詢resultset rs = stmt.executequery(sql);rs.next();if(rs.getint(1) > 0) /判斷此用戶是否注冊flag = true; elseflag = false; catch (classnotfoundexception e) e.printstacktrace(); catch (sqlexception e) e.p

52、rintstacktrace();return flag;public user getuser(string number) user user = new user();try /*連接數據庫,查詢用戶表,獲得用戶信息*/class.forname("com.mysql.jdbc.driver");connection conn = drivermanager.getconnection("jdbc:mysql:/127.0.0.1:3307/ordering","root","admin");statemen

53、t stmt = conn.createstatement();resultset rs = stmt.executequery("select * from tab_user where number='"+number+"'");while(rs.next() user.setid(rs.getint("id");user.setnumber(number);user.setphonenumber(rs.getstring("phonenumber"); catch (classnotfoundexception e) e.printstacktrace(); catch (sqlexception e) e.printstacktrace();return user;詳細的源程序代詳見附

溫馨提示

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

評論

0/150

提交評論