【基于Web點餐系統的設計與實現19000字(論文)】_第1頁
【基于Web點餐系統的設計與實現19000字(論文)】_第2頁
【基于Web點餐系統的設計與實現19000字(論文)】_第3頁
【基于Web點餐系統的設計與實現19000字(論文)】_第4頁
【基于Web點餐系統的設計與實現19000字(論文)】_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

I第1章系統概述1.1系統開發背景近年來隨著5G互聯網網絡的到來,隨著當代我國信息科學和技術及其經濟的飛速發展,信息化工程建設不斷深入和推進,信息技術被廣泛運用,信息網絡快速普及,網絡上的信息技術也獲得了巨大而又迅猛的發展。隨著當前我國社會和環境的發生巨大變化,經濟迅猛發展,生活方式也在很大程度上發生了重大的改變。但是對于線下的點餐系統我們只有在一些客流量比較大的酒店才真正能夠在線下看見,對于一些小餐廳或者飯館來說仍然是采用傳統的手工記錄方式來進行點餐,正是基于這種網絡環境本次研究所設計的課程題目就是“基于Web點餐系統的設計與實現”,所以該系統主要適用于小餐館和餐廳,最多在一百桌以內這樣規模的餐廳,這種系統主要是安裝在終端客戶機上,用戶進入餐廳后再客戶機上根據操作流程進行點餐下單,如果遇到老年人或者不會操作的,相應的服務員會幫助其點餐下單,下單付款成功,直接在所在餐桌等候就可以了。那么這種點餐方式區別于傳統的電話點餐、線下門店手工點餐。傳統點餐模式中存在的問題是難以計算、不易查找、不易更改、容易出錯、效率低下、管理混亂等缺點。為了克服傳統點餐的缺點,提高點餐效率,適應當前點餐形式的發展,我們采用先進的線下點餐系統彌補傳統點餐方式的不足,提高點餐效率,減少點餐錯誤率,精簡餐廳點餐的流程,而且這種小系統開發成本低,人們易于接受,容易向廣大客戶推廣。這種小系統可以讓顧客的點餐更加便捷,有利于提高餐廳的營業額,減少人工成本。這次畢業設計“基于Web點餐系統的設計與實現”主要是運用自己所學的知識來解決現實的實際問題。Web點餐系統中主要包含了兩個主要的用戶角色,顧客和店家。該管理系統極大額地簡化了管理流程,使得對餐廳管理變得更加高效快捷,極大的改善了工作人員的工作環境,提高了餐廳管理者和工作人員的工作效率,為顧客和消費者提供了更加友好的服務和用戶體驗。現在的人們開始尋求一種更加便利快捷舒適的生活方式。計算機互聯網絡是進一步提高人們物質生活水平的重要工具,從它的誕生以后,人們對于網絡的普遍依賴和接受程度也就越來越高,網絡的普及給人們帶來了新的消費途徑和方式,例如網上就出現了很多銷售網站,娛樂網站等線上消費形式,所以這個點餐系統也就孕育而生,這個點餐系統正是基于一種B/S架構的系統模式,上手簡單,操作便捷。該項目在系統的穩定性、可靠度以及整個項目的延伸性上都占有很大的市場優勢。此外,對一些與Java密切相關的技術也進行了深入的研究,設計并制定和實現了該軟件,并為將來很多可能需要做的其他工作奠定了有效而堅實的基礎。1.2開發環境與主要技術1.2.1技術選擇點餐系統它作為一種銷售類的管理系統,實用性較強,滿足用戶對業務上的需求,便宜餐廳對點餐數據的分析統計,從它的整體頁面結構上來看一定要有自己的特點,頁面要美觀簡潔,突顯出自己餐廳的特色和風格。只有這樣才能夠吸引住顧客的眼球,使得顧客們滿足該系統的業務功能需求,更好地為客戶實施更人性化的服務。本項目采用的運行環境是Jdk1.8、后臺服務器Tomcat9、數據庫MySQL1.5和軟件開發平臺Eclipse。項目使用的技術主要包括前臺css、Javascript、JQuery、Bootstrap等技術,后臺主要使用的的Jsp、Servlet、JDBC等技術。俗話說的好“兵馬未動,糧草先行”所以首先對項目開發的環境、技術、需求分析做個簡要的說明。而本次畢業的設計的任務是,構建一個“基于Web點餐系統的設計與實現”,實現點餐系統首先在Eclipse環境下創建一個動態的Web項目工程,然后按照需求分析一步一步來進行項目的編寫,其主要的開發環境如表1-1所示。本次的系統環境安裝過程不再此贅述,具體的詳細安裝過程可以去網上查找。表1-1開發環境需求名稱開發平臺硬件平臺電腦開發工具Eclipse開發語言Java操作系統MicrosoftWindows2010JDK版本JDK1.8數據庫MySQL后臺服務器ApacheTomcat9.01.2.2技術簡介Java作為一種基于企業計算機的網絡編程應用語言,現在己經逐步發展出并成為所有internet中最廣泛流行、也是最為具有重要國際影響力的一種網絡編程應用語言。Java[1]最大的技術優勢之處之一就是面向對象,它最大的主要技術優勢之處之一就是具有代碼的超高可持續擴展性和后期維護管理能力,這也大大促進了企業應用程序設計代碼更加健壯。B/S(Browser/Server),即瀏覽器和服務器架構。其優點在于B/S是一種瘦客戶機架構,客戶端軟件僅需安裝瀏覽器,且對客戶端硬件配置要求較低、標準統一、維護相對簡單、無需開發客戶端軟件,所有優先選用B/S[2]架構。Javascript是一種常見于Web編程中用來解釋和執行腳本類編程的語言。它主要是嵌入html代碼中,由瀏覽器進行逐步解釋和執行。它通過響應各種事件,如鍵盤按鍵、鼠標拖拽、手指觸摸等,來與外界交互,從而實現各種功能。由于它擁有如此眾多的優勢,使得它在很多的項目前臺中被用到。JSP全稱為JavaServerPages,是一種動態網頁開發技術,主要用于實現JavaWeb應用程序的用戶界面部分。JSP可以在不同的網頁中傳遞控制信息和共享信息,因此JSP具有更強的功能,且更適合復雜的需要可重用部件的應用。JSP[3]可以移植到其他的操作系統和Web服務器。MySQ[4]是一個開源免費的關系型數據庫而且它擁有適應性好、運行和反應速度快、使用的可靠性高等優點,一般也被大量的小型項目使用。Eclipse也是自由和開源,它是基于Java的資源開發服務平臺。就其本身來說,它目前只能認為是一種可以用來通過一個插件框架組成的服務方式,用來幫助構建一個基于開發者的環境和插件組成的一組新服務。也是我們使用java作為項目開發的首選。這個畢業項目是為了能夠在設計和實現上達到最初的想法和要求。完整的系統具有系統的一些優點:高安全性,良好的可移植性,較高的跨產品平臺,出色的可伸縮性,還可以具有分布式結構。因此,在項目中使用了上面介紹的B/S結構系統,而我設計和實現的點餐系統則正式基于Java編程語言的B/S設計模式。本系統使用的是B/S架構和MVC結構。所以只需要一臺本地的計算機和瀏覽器就可以使用該項目系統。用戶可以通過瀏覽器作為我們的客戶端和點餐系統之間進行鏈接,用戶也可以使用瀏覽器向我們發送請求,然后通過系統的業務邏輯進行數據處理,然后通過MVC相應的層進行相應的增、刪、改、查等數據操作。由于這些技術有如此多的優點,而且這些技術也是我們學過的,所以本次項目開發優先使用這些技術。1.2.3國內現狀隨著我們在世界上的影響力越來越大,伴隨著5G智能時代的到來,網絡技術在生活中的作用越來越大。由于計算機在國外發展的時間較早而且速度很快,計算機技術很成熟,我國在計算機上起步較晚,對于智能點餐系統只能夠在我們大型的餐廳才能夠看見,在小型的餐廳很少看見。一個主要的原因是點餐系統的開發成本很大對于一些小的餐廳來說負擔不起,也難以維護,而且對于一些小的飯店來說沒有過多的關注。但是隨著我國經濟的迅猛發展,人們對智能設備的依賴越高,而且隨著計算機技術成熟發展,小型系統的開發成本相對減少,而且易于維護,易于推廣。1.2.4進度為了使我們能夠直觀表明一個任務方案是在何種情況下進行的,以及根據實際的進展和計劃所要求做出相應的對照情況而制作任務進度甘特圖如圖1-1任務進度。圖1-1任務進度1.2.5本論文結構安排第1章主要是系統概論,主要對點餐系統的研究背景、開發技術和開發環境進行簡介、結合國內外目前現狀論述點餐系統開發的必要性。第2章主要是對點餐系統的需求分析和總體設計進行介紹。第3章主要是數據庫設計與實現,主要對數據庫的結構設計和每張數據庫表的邏輯設計進行說明和論述。第4章主要是系統詳細設計與實現,主要對點餐系統的前臺和后臺哥哥功能模塊進行簡要的概述和說明。第5章主要是系統測試,對開發過程中的每個功能模塊每個開發階段都要進行系統測試,保證功能模塊能夠正常進行。第6章主要是對本次的畢業設計進行總結,得出想應的心得體會。

第2章系統需求分析及總體設計2.1需求分析根據軟件工程[5]的需求分析介紹,我們對于軟件一般設計和開發流程的來看,進行軟件設計和開發的第一步便是對其進行市場和應用的需求分析。通過對軟件需要的分析來了解用戶的真正需要這樣對軟件后續開發大有裨益,俗話說“磨刀不誤砍柴工”,先要進行系統的頂層設計,總體規劃,精準把握用戶的真是需求。一個完善優良的項目體系在軟件開發之初必須要準備充足的材料,進行整個項目需求分析。只有在這個階段完成一個清晰、詳盡的需求分析,我們才可以在后期的設計和編碼中更好地實現整個系統的功能。本系統主要開發出來用于小規模的餐廳,約50桌餐桌以內這樣的一個規模,系統完成后將系統安裝在一個終端上放在一個餐廳入口的地方,如果客人想要就餐的話,直接在終端上進行操作,先選擇未使用的餐桌進行占位,占位成功后進入菜單列表選擇自己喜歡的菜系和菜品加入自己所在賬戶的購物車車,下單付款,付款成功后顧客直接在餐桌前等候,等候后廚訂單處理,處理完成后,服務員將把你點好的菜直接上到你的面前。對于一些不會操作終端的人群,餐廳將提供人工為其服務,使人們能夠感受到家的溫暖。2.2可行性研究分析在進行軟件開發的前期,對一個軟件項目管理系統的整體設計和規劃實施情況進行了大量可行性的調查分析,這些都無疑是其在進行軟件開發的全整個過程中必須注意做到不可忽視的一項工作。從多種不同角度和維度基礎上來分析,進行一個項目的實際可行性研究分析,能夠幫助我們把整個項目的情況分析得更加透徹具體。(1)技術可行性分析在目前大多數公司中我們所使用得到的項目管理軟件開發的工具都是eclipse,例如我們平時做的課程設計時所使用的工具就是eclipse,因此在這次的點餐管理系統中也使用eclipse這個軟件開發的工具,因為我們對其工作環境也是比較熟悉的。Java作為當下最廣泛流行和被關注的計算機編程語言,歷久彌新,而且簡單方便,靈活運用,是此次設計和開發該系統的不二之選。(2)經濟的可行性分析點餐系統前期的開發成本低,在系統設計編碼工作全部完成之后,用戶只需要在自己客戶端上安裝瀏覽器,只需要正常上網即可,用戶可以通過瀏覽器輕松完成對系統的訪問和管理,經濟實惠、成本較低、易于操作容易上手,非常的人性化。2.3系統設計概述系統的總體設計在項目的實際開發中的顯得尤為重要,也是必不可少的一個環節。這要求設計人員對項目管理系統要做到了然于心,并且建立該系統的具體應用到實際地點的執行解決方案,使其能夠得到完全的實現,完成最初的目標以及最終的要求。在進行系統設計時,主要的工作是了解學習所涉及的知識、技術。為了讓整個項目獲得成功不僅需要仔細的分析,而且還需要有嚴密的邏輯設計,使整個系統完整。那么為了能夠更好地進行系統設計項目就必須要充分理解系統設計的基本原則,其主要包括易用性原則、提高用戶的服務和體驗原則、研究開發階段的原則、遵循服務全面嚴格的原則、保證其數據信息的完整性,減少其數據差錯原則、規范化的經營原則。在最初設計階段中,系統主要負責人要完成各種用戶需求調研從而滿足客戶的的業務需求。2.4系統功能分析點餐系統前臺功能模塊結構如圖2-1所示。圖2.SEQ圖1.\*ARABIC1系統前臺功能結構圖為了提高餐廳的點餐效率,為顧客提供便捷舒適的服務,我們需要完善各個基礎功能模塊,而且系統各個界面要整潔大方。本系統主要包括前臺和后臺兩個部分。前臺部分主要包含7個模塊,分別為餐桌使用狀態展示模塊、菜品菜系查詢功能模塊、購物車功能模塊、訂單查詢功能模塊、登錄退出功能模塊、注冊功能模塊、信息反饋功能模塊。后臺部分主要包含5個模塊內容,分別是餐桌管理功能模塊、菜系管理功能模塊、菜品管理功能模塊、訂單管理功能模塊、信息反饋功能模塊。當管理員登錄后臺數據頁面的時候,可以清楚看到后臺的5個功能模塊,管理員可以對餐桌信息、菜系信息、菜品的信息、信息反饋等信息進行操作,通過對這些信息的管理,餐廳可以為顧客提供更好的服務。當顧客進入餐廳進行點餐的時候,顧客或者點餐員進行點餐,他們可以進入點餐系統前臺,可以看到點餐系統的整體界面結構,新顧客(點餐員)需要進入系統的客戶端進行系統的注冊,如果已經注冊了的可以直接通過已有的賬戶、密碼進行登錄,登錄后可以進行餐桌預定占座、菜品的搜索、點餐、訂餐、支付等操作。管理員對應的模塊,管理員在系統后臺登錄成功后可以對整個餐廳相對應的模塊進行管理,比如餐桌、菜系菜品、信息反饋等操作,完成管理員對顧客的服務操作。后臺功能模塊結構如圖2-2所示。圖2-2系統功能后臺結構圖2.5點餐系統流程介紹如果想要對訂餐管理系統實施相關的操作,管理員必須將自己的基礎信息直接手動注冊到自己的數據庫中,并且在登錄到訂餐管理系統的客戶端后臺進行管理。如果在登錄的時候出現發生異常,登錄失敗等情況,系統將會提醒管理員仔細核對自己的身份和密碼信息,核對后再次重新登錄。在登錄成功后,就可以使用我們的訂餐信息管理系統,后臺模塊對整個訂餐信息管理系統實施正確、有效地信息化管理。管理員可以對訂單,菜系菜品、餐桌、會員等信息進行修改、添加、刪除等操作。訂餐管理系統的一些基本概況,都是可以在系統中的任意模塊來進行查看、分析,以及對其做出及時的適當相應調整。系統的前臺業務處理流程圖顯示如圖2-3所示。否否否成功查看我的訂單結束菜品購買查看菜品加入購物車結賬生成訂單錯誤提示下單繼續購物是否登陸驗證登錄首頁用戶登陸個人首頁輸入用戶名、密碼驗證查看餐桌狀態查看我的訂單修改密碼用戶注冊系統首頁錯誤提示填寫注冊信息注冊開始登陸系統首頁成功成功失敗是失敗是失敗圖2-3前臺業務流程圖2.6軟件模型2.6.1用例圖本系統的主要用例包括顧客、管理員、第三方支付平臺三個用例。細分到每個大的用例后,每個大的用例又包括多個小的用例,例如用戶包括6個小的用例它們分別是餐桌使用狀態、菜單內容、購物車、支付、訂單、信息反饋。餐桌使用狀態的用例主要包括使用和未使用狀態,菜單內容用例包括菜品和菜系兩個內容,支付用例包括成功和失敗兩個狀態,訂單用例包括桌號、訂單編碼、訂單時間和訂單的狀態。如果是新用戶登錄本系統需要注冊個人信息并且信息要符合規定的規則,如果是老用戶直接使用已有的賬戶和密碼直接登錄,當用戶登錄成功后可以直接看見餐桌的使用狀態,如果用戶點擊全部那么餐桌就會將全部的餐桌信息顯示出來,用戶可以搜索未使用狀態下的餐桌,然后用戶可以點擊未使用的餐桌號進行占位處理,如果用戶占位成功后可以在菜單列表選擇自己喜歡的食物加入到購物車中,等選購食物結束后用戶可以點擊支付按鈕進行支付,支付成功后用戶只需耐心等待后廚對菜單的處理即可。管理員對系統后臺管理的功能用例主要包括餐桌管理、菜系管理、菜品管理、訂單管理、信息反饋等5個用例。餐桌管理包含添加餐桌和刪除餐桌,菜系主要包括添加、更新、刪除用例。菜品管理主要包括添加、更新、刪除、搜索用例。訂單管理主要包括下單的時間、訂單編碼、訂單份數用例。信息反饋主要包括姓名、時間、反饋信息用例。述此過程的用例圖如圖2-4和圖2-5所示。圖2-4管理員用例圖圖2-5顧客用例圖2.6.2活動圖用戶活動圖主要是顧客登錄系統前臺所進行的一系列活動。如果用戶沒有注冊系統,用戶只能進入系統,瀏覽系統的信息頁面不能夠對系統的各個菜品進行購買或者進行相應的功能操作。如果用戶想購買菜品,用戶必須登錄該系統,登錄系統成功后就可以進行菜品添加、下單、訂單信息查看、餐桌選定等操作,具體的詳細信息如下圖2-6用戶活動圖所示。管理員活動圖能夠清晰的看見管理員登錄系統后臺所進行的各種活動,管理員如果沒有成功登錄系統是無法進行相關的操作的,只有當管理員成功登錄了系統后臺后才能夠進行相關操作。管理員登錄成功后管理員可以對餐桌管理、菜系管理、菜品管理、訂單管理、信息反饋查看等操作,管理員也可以對這些操作進行增加、刪除、修改。這5個模塊是平級關系沒有依賴關系。具體的活動流程如下圖2-7管理員活動圖所示。圖2-6用戶活動圖圖2-7管理員活動圖2.6.3順序圖順序圖展現的主要是信息的時間交互順序。如圖2-8所示為“注冊”的順序圖,顧客或管理員首次登錄需要進行用戶注冊,當用戶注冊完信息后按提交按鈕提交到數據庫db_hotel中的user用戶數據庫表中保存用戶信息,然后頁面將會顯示注冊成功的消息,這樣注冊過程就完成了。圖2-8注冊順序圖

第3章數據庫設計與實現3.1數據庫的結構設計點餐系統主要使用的是當前最為流行的關系型數據庫MySQL,MySQL它是一個免費的開源的數據庫,在小系統的開發過程中非常的流行受歡迎而且使用的范圍非常廣。根據以上各節對其所做的分析和設計,規劃本系統中使用到的數據庫實體,對于系統所需要保存各類信息我們都要單獨的建立一張數據表,采用外鍵連接。3.1.1數據庫表概要說明點餐系統主要包括了7張數據庫表,它們分別是餐廳菜系類型數據表food_type,菜品信息數據表food,用戶管理員注冊數據表user,訂單數據表order,訂單詳情信息數據表order_detail,餐桌信息表dinner_table,信息反饋表suggestion。其中菜品信息數據表主要是用來保存餐廳所推出的所有菜品信息,菜系類型表主要用來保存餐廳里面所推出的菜系,包括菜系和菜品所對應的關系。用戶管理員注冊表主要用來保存用戶和管理員的注冊信息。訂單數據表主要用來保存所對應用戶所有的訂單信息。餐桌信息表主要用來保存餐桌信息。信息反饋表主要是用來保存顧客對餐廳所反映的一些信息。用戶以上7張數據表,將會在以下幾節進行詳細的描述其表結構。3.1.2數據庫概念設計根據以上各節對點餐系統所做的需求分析和系統結構設計,現在設計本系統中使用的數據庫實體它們分別為管理員實體、菜系實體、菜品詳細信息實體、用戶注冊詳細信息實體、訂單實體、訂單明細實體、餐桌信息實體、信息反饋實體。下面分別介紹幾個關鍵實體的E-R圖。(1)管理員實體管理員實體的信息主要包括姓名、密碼、郵箱、電話、用戶創建的時間、用戶存在的狀態。管理員只能夠在數據庫中進行手動添加不能直接在系統上進行注冊,管理員可以對用戶進行添加等操作。其E-R結構圖如圖3-1所示。圖3-1管理員的E-R圖(2)菜系類別實體菜系類別的實體主要包括編號、菜系的類型名稱、菜系創建時間、菜系類型更新時以及創建的存在狀態,其中菜系存在的狀態用1表示未刪除狀態,用0表示已刪除狀態。其E-R圖如圖3-2所示。圖3-2菜系類別的E-R圖(3)菜品信息實體菜品的信息實體主要包括編號、菜名、菜系類型的id、價格、折扣、備注、菜的圖片、菜品創建的時間、菜品信息更新時間、菜品存在的狀態。其中菜品存在的狀態用0表示未刪除狀態,用1表示已刪除狀態。其E-R圖如圖3-3所示。圖3-3菜品信息的E-R圖(4)訂單信息實體訂單信息實體主要包括訂單編號、訂單所屬的餐桌、總價、付款狀態、下單時間、付款時間、。其中付款狀態用0表示已下單未付款,用1表示已付款。其中的存在的狀態用0表示未刪除狀態,用1表示已刪除狀態。其E-R圖如圖3-4所示。圖3-4訂單信息的E-R圖(5)訂單詳細信息實體訂單詳細的實體主要包括所屬訂單的id、菜品的id、購買數量、存在狀態。其中存在狀態用0表示未刪除狀態,用1表示已刪除狀態。其E-R圖如圖3-5所示。圖3-5訂單詳細信息的E-R圖(6)餐桌信息實體餐桌信息實體主要包括餐桌的名稱、餐桌的使用狀態、餐桌占用、餐桌創建的時間、餐桌信息的修改時間、餐桌存在狀態。,其中餐桌的使用狀態用0表示未使用,用1表示正在使用。餐桌存在狀態用0表示未刪除狀態,用1表示已刪除狀態。其E-R圖如圖3-6所示。圖3-6餐桌信息的E-R圖(7)信息反饋實體信息反饋實體主要包括反饋者的姓名、時間、郵箱、電話、反饋信息。其E-R圖如圖3-7所示。圖3-7信息反饋的E-R圖3.2數據庫邏輯結構設計本系統的數據庫采用MySQL數據庫,系統數據庫名稱為db_hotel,本數據庫共包含7張數據庫表,以下給出主要數據表的結構。(1)菜品類型數據表food_type菜品類型數據表,主要是用于保存當前訂餐系統的菜品類型及相關的數據,數據類型可以根據餐廳的需求來進行設置,管理員可以對數據表其進行增加、刪除、以及修改等操作管理,如表3-1所示。表3-1food_type的結構字段名數據類型長度主鍵否描述Idint11是idtype_namevarchar20否菜品類型名create_datedatetime否菜品類型創建時間update_datedatetime否菜品類型更新時間disabledint11否未刪1已刪菜品信息數據表主要是用來保存菜品的基本信息、價格、菜名、描述等,該表的結構如表3-2所示。表3-2food的結構字段名數據類型長度主鍵否備注idint11是IDfood_namevarchar20否菜名foodType_idint11否菜品類型idpricedouble否價錢discountdouble否折扣remarkvarchar200否備注imgvarchar100否菜的圖片create_datedatetime否菜品創建時間update_datedatetime否更新時間disabledint11否0未刪1已刪(3)用戶信息數據表user用戶信息數據表,主要是用來用戶的基本信息,表里面的信息數據可以根據實際的需要來修改。表結構如表3-3所示。表3-3user的結構字段名數據類型長度主鍵否描述idint11是IDLOGIN_NAMEvarchar50否登錄名PASSWORDvarchar50否密碼EMAILvarchar50否郵箱PHONEvarchar20電話CREATE_DATEdatetime用戶創建時間DISABLEDint20正常1已刪除(4)訂單信息數據表order訂單信息數據表,主要記錄了顧客下單之后的相關信息情況,訂單表中的各種信息可以根據實際的需要來設置,但是一定要符合各種數據的規定。數據表的結構如表3-4所示。表3-4order的結構字段名數據類型長度主鍵否描述idint11是idorder_codevarchar255否訂單編碼table_idint11否訂單所屬餐桌total_Pricedouble否總價order_Statusint11否0已下單未付款1已付款order_Datedatetime否下單時間pay_datedatetime否付款時間disabledint11否0未刪1已刪update_datedate否最后更新時間(5)訂單詳情信息數據表order_detail訂餐詳細信息數據表,主要記錄了顧客訂餐下單的相關詳細信息。數據表的結構如表3-5所示。表3-5order_detail的結構字段名數據類型長度主鍵否備注idint11是idorderIdint11否所屬訂單idfood_idint11否菜品idbuyNumint11否夠買數量disabledint11否0正常1已刪除discountdouble否折扣(6)餐桌信息數據表dinner_table餐桌信息數據表,主要記錄了餐桌的詳細信息。數據表的結構如表3-6所示。表3-6dinner_table的結構字段名數據類型長度主鍵否備注idint11是idtable_Namevarchar20否餐桌名稱table_statusint11否0未使用1正在使用begin_use_datedatetime否餐桌開始占用時間create_datedatetime否餐桌的創建時間update_datedatetime否餐桌信息的修改的時間disabledvarchar11否1為刪除(7)信息反饋數據表suggestion信息反饋數據表,主要是記錄顧客對餐廳不好的信息反饋意見,對餐廳的整改和提供人性化服務有很大的幫助。數據表的結構如圖3-7所示。表3-7Suggestion的結構字段名數據類型長度主鍵是否備注IDInt11否NameVarchar20否姓名Datetimestamp否信息反饋時間Emailtext電子郵件phonevarchar11聯系電話Suggestiontext反饋的信息3.3數據庫表之間的關系設計圖3-8展示了數據庫內各個數據庫表之間的關系,反映了系統表各個實體之間的關系。圖3-8數據庫內各表的關系3.4連接數據庫我們在Eclipse環境下創建動態的Web項目工程后,為了與數據庫連接,我們需要準備一些相關的配置文件例如c3p0配置文件、JDBC數據庫驅動和jstl相關的jar包。想關的jar包直接去網上下載,然后導入配置文件依賴的jar包,然后我們需要在項目工程下的src文件夾下新建一個c3p0-config.xml數據庫連接池配置文件,并在配置文件中寫下數據庫連接池代碼,配置文件代碼如下所示。<c3p0-config><default-config><propertyname="driverClass">com.mysql.jdbc.Driver</property><propertyname="jdbcUrl"><![CDATA[jdbc:mysql://localhost:3306/hotel?useUnicode=true&characterEncoding=utf8]]></property><propertyname="user">root</property><propertyname="password">root</property><propertyname="initialPoolSize">5</property><propertyname="maxPoolSize">10</property></default-config></c3p0-config>為了能夠在以后的項目中使用到數據庫連接,而且不用重復寫數據庫連接代碼,我們在實體包util文件下一個數據庫連接工廠工具類,以后直接拿來使用就行,不用重復寫,數據庫連接工廠工具類的代碼如下所示。publicclassConnectionFactory{ //自動讀取c3p0-config.xml privatestaticDataSourcedataSource=newComboPooledDataSource(); //獲取連接 publicstaticConnectiongetConnection(){ try{ returndataSource.getConnection(); }catch(SQLExceptione){ e.printStackTrace(); } returnnull; }Publicstaticvoidclose(Connectionconn,PreparedStatementpreparedStatement,ResultSetresultSet){ try{ //釋放資源,根據先開后放的規則 if(resultSet!=null)resultSet.close(); if(preparedStatement!=null)preparedStatement.close(); if(conn!=null)conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } }}

第4章系統詳細設計與實現4.1前臺部分4.1.1系統架構設計該系統前臺部分主要是由顧客或點餐員使用,主要內容包括登錄/注冊、餐桌查找、菜品查找、菜系查找、購物車、訂單查看等。(1)功能模塊簡介登錄/注冊:如果是顧客或者點餐員沒有登錄或者注冊該系統,那只能夠對系統頁面的信息進行瀏覽,無法進行相關操作。如果是新用戶的話必須先注冊用戶信息,注冊完畢后才能夠登錄進系統進行相關操作,如果是老用戶的話直接使用正確的信息進行登錄然后信息相關操作。餐桌狀態/餐桌查找:在首頁搜索欄上的下拉框里面包含了餐桌的使用或未使用的兩種狀態,用戶可以通過選擇其中一種狀態查看想應中的餐桌。菜系/菜品查找:通過自己的喜愛可以查找出自己喜歡菜系和菜品。購物車:用戶可以將自己喜歡的菜系里面的菜品添加到用戶購物車里面,以便下單。訂單查看:用戶可以根據自己點餐的狀態查看自己已經下單的詳細內容。(2)前臺所有頁面文件組成如圖4-1所示。圖4-1前臺頁面文件組成圖下面以列表形式給出前臺頁面各部分的說明信息,如表4-1所示。表4-1前臺頁面說明序號名稱備注對應文件1顧客注冊為新用戶提供注冊入口register.jsp2顧客/服務員登錄為已經注冊了的或者老顧客提供登錄入口login.jsp3首頁主要用于展示餐桌及餐桌的使用狀態index.jsp4菜單列表用于顯示所有菜系菜品信息menuList.jsp5占位后菜單用于已占用餐桌的菜系菜品信息顯示menu.jsp6訂單信息顯示所有的菜單信息orderList.jsp7指定菜單信息顯示指定信息顯示orderItem.jsp8信息反饋主要用于顧客信息反饋offers.jsp9幫助信息為新用戶提供幫助指引help.jsp10后臺入口系統后臺登錄入口Sys/index.jsp11公共文件引用主要用于所有公共文件的引用common.jsp4.1.2前臺模塊首頁點餐系統的首頁就像一個人的臉面一樣,是展現個人魅力的一個重要環節,所以首頁的項目設計也是至關重要的,一個首頁界面的設計對于系統的推廣和使用舒適度都很重要,我們首頁主要采用紅色元素為主調色,搭配著白色,這樣能給人一種愉悅感。首頁的導航欄中的各種導航信息可以讓用戶第一時間獲取相應的信息,導航欄中主要包括菜單、我的菜單、聯系我們、關于我們、登錄、注冊、后臺入口以及購物車等信息。只要項目一運行系統默認的頁面就是首頁index.jsp,首頁的主要功能包括一個搜索框和一個下拉選擇框,下拉選擇框包括全部、未使用、已使用三種餐桌選擇信息。下拉框select標簽下包括三個option選項值分別為全部、未使用、已使用。如果用戶點擊select標簽下的三個選項值中任意一個時,頁面加載就會將狀態值傳給js下的function()函數,如果option的value值等于用戶選擇的,那么餐桌狀態tableStatus就會被選中,通過select標簽屬性onchange調用js函數functiondataChange(obj),然后頁面跳轉就會將值傳給接入層IndexServlet.java里面的service方法下request.setAttribute("tableStatus",tableStatus)來保存餐桌狀態信息。如果用戶在form表單輸入框中輸入想要選擇的餐桌,點擊【提交】按鈕觸發action屬性跳轉到對應頁面,然后里面的input標簽信息通過name屬性傳遞給接入層IndexServlet.java里面,然后在接入層的service方法里面使用request.getParameter()接收name參數值,然后調用服務層service再調用持久層dao里面的findDinnerTables()方法并將相關信息返回給接入層,最后通過request.setAttribute("tableStatus",tableStatus)l來保存后臺取出來的餐桌狀態信息,然后傳給前臺頁面。餐桌信息主要顯示在搜索框下面,餐桌顯示框主要采用的是一個div元素,顯示出來的是一種藍色邊框白底的一個矩形框,搜索框在后臺和餐桌查找進行了代碼綁定,在前臺jsp頁面用c標簽接收接入層IndexServlet.java傳遞回的餐桌信息,使用c標簽里面的forEach函數語句綁定進行顯示。綜上來看首頁能夠讓用戶簡單、快速的上手,很容易滿足用戶自身的需求,所以前臺客戶端首頁的運行效果圖如圖4-2和圖4-3所示。圖4-2前臺首頁運行效果圖1圖4-3前臺首頁運行效果圖24.1.3前臺用戶登錄管理在系統的前臺首頁的頂部右側灰色導航欄出提供了登錄入口,通過點擊【登錄】按鈕,觸發form表單里面的action屬性發送請求跳轉到登錄頁面login.jsp。當用戶點擊登錄按鈕是就會觸發form表單的onsubmit事件,這時就會調用js的functionsubmitTable()功能函數,判斷用戶是否輸入用戶名和密碼,如其中一個未輸入,則不需要提交表單中的內容到數據庫。如果符合要求使用document.getElementById("loginform").submit()提交表單,將信息傳送到接入層LoginServlet.java里面的service方法中使用request.getParameter()接收表單里面name屬性值。然后判斷傳入的密碼和賬戶再調用服務層,服務層再調用持久層里面的findByLoginNameAndPass()方法,查詢數據庫里面的賬戶和密碼,將查詢的信息返回到接入層。如果輸入的賬戶密碼和數據庫查詢的信息一致登錄成功。如果是新用戶就需要先注冊,用戶可以點擊表單末尾【現在注冊】鏈接,頁面直接跳轉到注冊頁面進行個人信息注冊。系統默認登錄后顯示的頁面是首頁index.jsp,如果當前用戶輸入的用戶信息錯誤,系統會通過login.jsp中的javascript的submitTable()函數進行信息判斷并且提示相應的錯誤信息。登錄密碼的時候,點擊記住密碼,系統默認記住的時間是7天內,數據將會保存在Cook中,以后直接點擊登錄就可以了,用戶的登錄部分界面如圖4-4所示。圖4-4用戶登錄頁面用戶登錄界面的表單設計的主要是通過搜集用戶輸入到表單的信息并且通過JavaScript的自定義函數submitTable()來判斷驗證用戶登錄的信息是否正確。用戶登錄界面表單設計的重要元素如下表4-2所示。表4-2用戶登錄頁面重要表單元素名稱元素類型含義重要屬性form1form表單action="${pageContext.request.contextPath}/app/login.do"inputtext用戶名size="20"inputpassword密碼Size="20"inputcheckbox記住密碼value="reme"inputsubmit提交onclick="submitTable()"value="登錄"用戶進行登錄之后就可以進行點餐,搜索等相應功能的操作了。用戶登錄的程序流程圖如圖4-4所示。圖4-4用戶登錄程序流程圖4.1.4前臺用戶注冊及記住密碼功能用戶注冊的導航鏈接主要是位于系統首頁右上方灰色導航欄處,如果是新用戶需要點擊【注冊】按鈕觸發相應的事件,頁面就會跳轉到注冊頁面register.jsp,用戶就可以在輸入框中輸入相應的信息,如果用戶想要按【注冊】按鈕,需要將同意條款的checkbox的單選框選上,選上后就可以點擊注冊按鈕了。當用戶向輸入框輸入數據后調用js中的functionformOnblur(id)函數通過輸入框的id獲取當前需要校驗的輸入框的值,然后通過$.ajax同步請求發送請求到后臺數據庫中,校驗登錄名是否已經在數據庫存在,如果存在就不能夠重復注冊,用戶需要重新輸入用戶名。輸入框輸入的值通過id傳入到函數functionformOnblur(id)中進行格式校驗,如何不符合規定的格式,輸入框將會出現相應的提示信息。如果所有的輸入信息符合要求后,選擇上同意條款的checkbox單選框,然后用戶直接點擊【注冊】按鈕,直接觸發注冊提交按鈕的onclick事件,然后調用js的functiononRegister()函數,獲取所有輸入框的ID,遍歷所有輸入框的ID,如果輸入框的格式符合要求就提交表單document.getElementById("registerform").submit()返回給form表單,然后form表單的action屬性發送請求處理類給接入層RegisterServlet.java里面的service()方法,然后方法里面通過request.getParameter()接收前臺輸入框里面的name值,然后通過if語句判斷登錄名等各種信息是否在數據庫中存在。如果不存在就將注冊信息通過調用服務層service,服務層再調用持久層UserDaoImpl.java中里面的save()方法,將所有的注冊信息保存在數據庫中,如果注冊成功后信息返回到接入層,接入層通過request.getRequestDispatcher("/WEB-INF/jsp/sys/login.jsp").forward(request,response)語句直接跳轉到登錄頁面進行登錄。如果注冊失敗后信息返回到接入層,接入層通過request.getRequestDispatcher("/WEB-INF/jsp/sys/register.jsp").forward(request,response)語句再次定位到注冊頁面,用戶信息需要重新注冊。用戶頁面注冊效果圖如圖4-11所示。圖4-11用戶注冊頁面圖4.1.5前臺用戶訂餐管理功能點餐系統作為用戶的客戶端的主要功能就是為用戶提供人性化服務,滿足用戶的基本需求。用戶注冊成功后進入首頁index.jsp后,如果用戶想進行訂餐,可以在主界面的搜索框內選擇未使用的餐桌,然后在未使用的餐桌里任選一個餐桌,獲取餐桌的id和餐桌名,頁面跳轉到menu.jsp中,點擊餐桌后頁面發送請求處理類給接入層MenuServlet.java的service方法,通過request.getParameter方式獲取餐桌的id的參數值,然后新建個服務層對象,調用服務層服務層調用持久層,通過餐桌的id在數據表dinner_table里面查詢餐桌,將查詢到的餐桌信息返回到接入層用request.setAttribute("dinnerTable",dinnerTable)接收數據庫查詢出來的餐桌數據。然后新建一個訂單的對象,判斷該餐桌是否有未付款的訂單,如有則跳轉到訂單詳情頁面去付款,如沒有則跳轉到正常的點餐頁面。然后在新建一個List<FoodType>對象集合,查詢所有未刪除的菜系名字,默認查詢所有菜系中第一個未刪除菜系的菜品。然后在新建一個菜品的對象集合List<Food>調用服務層,服務層調用持久層中findByFoodTypeId()方法,在food表中根據菜系ID查詢未刪除的菜品。然后將信息返回到前臺菜單頁面menu.jsp。菜單左側導航欄是菜系,右側是菜系id所對應的菜品信息。如果用戶想要點餐就先要占位,我們需要在menu.jsp的餐桌購物車下點擊【占位】按鈕,觸發點擊事件onclick="orderDinner(${dinnerTable.id},0)調用js函數functionorderDinner(dinnerTableId,tableStatus)頁面重定向到后臺DinnerTableServlet.java通過servce()方法調用服務層持久層,通過持久層中update()方法更改餐桌的狀態變為0,更改成功后,占位成功。將更改的狀態返回到前臺menu.jsp中。然后用戶可以選擇自己喜歡的菜品,如果用戶想要將自己喜歡的菜品添加到購物車中,用戶直接將鼠標放在菜品上面,點擊【購物車】按鈕,就會觸發購物車的點擊事件onclick,點擊事件調用js的functionaddShopCar((foodId)函數,將菜品添加到購物車中,通過HttpSessionsession=request.getSession()用于左邊餐桌的購物車展示,用Map<Integer,Integer>shopCar=(Map<Integer,Integer>)session.getAttribute(id)表示餐桌的id獲取其購物車,購物車key為商品id,value為購買數量。然后拿到當前餐桌購物車中所有的菜品id,購買數量和購物車中所有的商品總金額。然后將后臺取出來的菜系數據、菜品數據、商品數量及金額數據保存在request中,頁面通過request.getRequestDispatcher("/WEB-INF/jsp/app/menu.jsp").forward(request,response)傳到左側的餐桌購物車中,所有的信息將顯示在頁面上。當用戶選購完菜品后,用戶可以點擊【下單】和【取消占位】按鈕,如果用戶點擊【下單】按鈕,觸發點擊事件頁面跳轉到訂單詳情頁面orderList.jsp進行付款,付款后成功后用戶就可以在餐桌前等候服務員將菜上到桌上。用戶不想要就餐或者不想占這張餐桌,用戶可以直接點擊【取消占位】按鈕即可。訂餐頁面如圖4-5,點餐的程序流程圖如圖4-6所示。圖4-5用戶訂餐頁面圖圖4-6訂餐程序流程圖4.1.6前臺菜單查看功能用戶登錄系統后,如果不想占座點餐,只想查看菜單,這時用戶可以直接點擊導航欄中的【菜單】按鈕,此時觸發按鈕事件,發送請求類頁面會直接跳轉到接入層menuList.java里面的service方法里面,用request.getParameter(foodTypeId)接收前臺傳過來的菜系id,再新建一個查找菜系的<FoodType>類型的list對象集合和一個菜品List<Food>對象集合,然后在調用服務層,服務層調用持久層中的findAll()和findByFoodTypeId()方法然后查出未刪除的菜系id及id所對應的未刪除的菜品信息,并將信息返回到接入層用request.setAttribute("foodTypes",foodTypes)request.setAttribute("foods",foods)保存數據庫里面查找出的菜系和菜品的信息,通過request.getRequestDispatcher("/WEB-INF/jsp/app/menuList.jsp").forward(request,response)將后臺數據傳送給前臺menuList.jsp頁面,前臺左側的菜系導航欄采用C標簽<c:forEachitems="${foodTypes}"var="foodType">遍歷出后臺未刪除的菜系,并將信息顯示出來。右側菜單信息使用C標簽<c:forEachitems="${foods}">顯示出菜系相關聯的菜品信。右側菜品采用jQuery中的特效顯示菜品詳細信息,當鼠標沒有放在菜品頁面上時,頁面直接顯示的是菜品信息,當鼠標放在菜品圖片上是,頁面翻轉顯示菜品信息介紹和菜品金額以及加入購物車的按鈕。前臺菜單查看如圖4-7所示。圖4-7菜單列表4.1.7前臺訂單查看頁面如果用戶想要查看自己的訂單,他可以點擊【我的訂單】按鈕查看,頁面發送請求到接入層OrderServlet.jsp里,在接入層OrderServlet.jsp里面service()方法中定義一個List類型的訂單對象查詢所有的訂單信息,通過接入層的信息請求調用服務層,服務層在調用持久層,持久層通過sql語句查詢所有的訂單信息,然后返回傳到接入層中,接入層然后在返回給orderList.jsp前端的訂單列表頁面。訂列表單信息主要包括桌號、訂單編號、下單時間、支付狀態和點菜的份數。頁面顯示所有的訂單信息,其部分效果如圖4-8。圖4-8訂單列表4.1.8信息反饋如果用戶對餐廳一些不好的地方需要向餐廳進行反饋,用戶可以直接點擊導航欄上的【聯系我們】的鏈接頁面發送請求直接跳轉到fankui.jsp信息反饋頁面,然后用戶就可以直接在表單上填入想應的信息直接點擊【提交】按鈕就可以了如圖4-9所示。圖4-9信息反饋4.2后臺部分后臺管理客戶端主要是由指定的管理員來使用的,后臺管理部分主要包含對餐廳的一些有效的數據進行管理,提高工作效率,后臺主要包括餐桌信息管理、菜系信息管理、會員信息管理、菜品信息管理、訂單信息管理、信息反饋管理等。1、后臺主要功能模塊介紹餐桌信息管理:主要是餐廳的餐桌信息進行管理,主要包括餐桌的添加、指定餐桌的搜索和相關餐桌的刪除。菜系信息管理:主要包括對相關菜系的添加、刪除、搜索和菜系信息的更新。會員信息管理:主要查看相關用戶的基本信息。訂單信息管理:查看和刪除顧客下單的訂單詳細信息,但不能夠修改顧客的訂單信息。菜品信息管理:主要對相關菜系的菜品進行詳細信息的添加、更新刪除相關菜品信息,而且還可以搜索指定的菜品。2、后臺文件結構系統后臺主要包括20個相關文件,其相關文件的結構,如圖4-10所示。圖4-10后臺文件結構圖4.2.1后臺用戶登錄,注冊功能在系統的前端的導航欄中為管理員提供了后臺進入按鈕,點擊【進入】頁面發送請求跳轉到login.jsp頁面,管理員通過后臺的管理能夠實時的對整個餐廳服務做出管理,這樣餐廳能夠提高效率,而且可以讓用戶享受更好的體驗,后臺的登錄和注冊的機制和前臺的登錄注冊機制是一樣的,所有在這里不多的贅述,后臺登錄頁面效果如圖4-12所示,后臺頁面效果如圖4-13所示。圖4-11后臺登錄頁面效果圖圖4-12后臺注冊頁面效果圖4.2.2后臺餐桌管理作為訂餐系統后臺,如果管理員想要對餐桌進行管理直接點擊左側的導航欄【餐桌管理】按鈕,頁面發送請求給接入層DinnerTableServlet.Java里面的service()方法,通過語句request.getRequestDispatcher("/WEB-INF/jsp/sys/dinnerTableList.jsp").forward(request,response)頁面跳轉到dinnerTableList.jsp頁面,將餐桌未刪除的餐桌信息顯示出來。如果用戶想要直接搜索具體的餐桌,可以直接在輸入框中輸入餐桌名稱,通過后臺處理在數據表dinner_table中查詢出餐桌信息,并返回到前臺頁面。如果用戶想要搜索刪除、未刪除、使用、未使用的餐桌,管理員可以在下拉選擇框select里面進行選擇,通過select的onchange事件調用js相應的函數,然后通過相應標簽的name屬性將值傳到后臺接入層用request.getParameter()接收值。然后通過相應語句調用持久層在數據表dinner_table中將信息查找出來,返回給前臺頁面。如果用戶想要刪除餐桌數據直接點擊餐桌后面的【刪除】按鈕即可。前臺的數據主要通過C標簽的forEach將后臺傳過來的數據集合循環的展示在頁面上。餐桌管理頁面效果圖如圖4-13所示。如果管理員想要添加餐桌,直接點擊左上方的【添加】按鈕,頁面發送請求處理跳轉到dinnerTableAdd.jsp頁面,用戶可以在輸入框輸入想要添加的餐桌信息,當用戶點擊【添加】按鈕時觸發onclick事件,調用js里面的functionaddSubmit()函數通過ajax判斷輸入的輸入是否在數據庫里面存在,如果存在將會出現已存在的提示信息,否則將輸入的信息直接插入到數據庫表中,餐桌信息添加成功。餐桌添加頁面效果圖如圖4-14所示。圖4-13餐桌管理頁面效果圖圖4-14餐桌添加頁面效果圖4.2.3后臺菜系管理管理員進入后臺想要對菜系進行管理,直接點擊左側導航欄中的【菜系管理】按鈕,按鈕觸發事件頁面發送請求跳轉到foodTypeList.jsp菜系管理頁面,整個頁面默認顯示全部未刪除的菜系信息。如果用戶想要查看已刪除或者未刪除的菜系,直接點擊下拉框進行選擇搜索。如果用戶想要添加菜系,直接點擊【添加】按鈕頁面,后臺發送請求頁面直接跳轉到foodTypeAdd.jsp菜系添加頁面,管理員可以直接在該頁面添加自己想要添加的菜系名稱。如果用戶想要刪除某個菜系,直接在該菜系名后點擊【刪除】按鈕,如果用戶想要更改菜系信息,直接點擊該菜系名后面的【更新】按鈕頁面直接跳轉到foodTypeUpdate.jsp信息更新頁面。菜系管理頁面效果圖如圖4-15所示,菜系添加頁面效果圖如圖4-16所示。圖4-15菜系管理頁面效果圖圖4-16菜系添加頁面效果圖4.2.4后臺菜品管理管理員成功登錄系統后可以查看后臺顯示的所有信息,管理員對菜品實現管理,首先需要點擊左側的導航欄的按鈕【菜品管理】頁面發送請求給接入層跳轉到foodList.jsp頁面,頁面將顯示所有的菜品詳細信息,里面數據傳遞的原理上節以及陳述過了,在此不多贅述。管理員如果想要查看具體的菜品直接在搜索框輸入點擊【搜索】按鈕即可,也可以通過下拉框分別查看各種菜系下的菜品信息,如果列表中沒有菜品信息列表將出現提示信息“滿足當前條件的菜品沒有找到”。如果管理員想要增加某菜系的菜品,直接點擊【添加】按鈕,頁面發送請求直接跳轉到菜品添加foodAdd.jsp頁面,此時管理員可以添加菜系類型、菜名、價格、圖片、折扣以及備注信息,其中菜系、菜名、價格、圖片是必填項,通過這些信息展示就可以方便用戶點餐,其中同一菜系的菜品不可重復添加,重復添加將會出現提示信息,添加不成功。列表頁面每個菜品信息對應的有兩個操作按鈕分別為更新和刪除,如果管理員想要下架某種菜品直接點擊【刪除】按鈕即可,如果管理員想要對菜品的信息進行修改點擊【更新】按鈕即可,頁面就會跳轉到foodUpdate.jsp頁面。菜品列表效果如圖4-17所示,添加菜品頁面效果如圖4-18所示。圖4-17菜品列表效果圖圖4-18添加菜品頁面效果圖4.2.5訂單管理管理員如果想要對訂單信息查看和了解,直接點擊主界面左側的導航欄【訂單管理】按鈕頁面直接跳轉到orderList.jsp訂單列表頁面,列表將顯示所有餐桌的訂單詳細信息如圖4-19所示。如果用戶想要搜索具體的某一餐桌的訂單信息,自己點擊左上角的下拉框。如果顧客想要再次添加菜品且未付款,直接點擊訂單下的加菜按鈕頁面就會跳轉到orderAddFood.jsp訂單加菜頁面,選擇想要添加的菜品即可如圖4-20所示。如果用戶想要打印菜單,管理員直接點擊菜單打印頁面直接跳轉到printOrder.jsp打印頁面。管理員通過對訂單列表的信息分析,就可以分析顧客喜歡的菜品和菜系,從而有針對性的提供顧客服務水平,提高服務質量。通知也可以對訂單背后的各種信息進行分析,實行獎勵制度,提高工作效率。圖6-19銷售訂單管理頁面效果圖圖4-20訂單加菜圖4.2.6信息反饋如果管理員想要查看顧客對餐廳的反饋信息,管理員直接點擊左側的導航欄【信息反饋】按鈕頁面直接跳轉到suggestion.jsp信息反饋頁面,整個頁面顯示已存在反饋者的信息列表如圖4-21所示。如果管理員想要查看具體的信息直接查看反饋者后面查看的按鈕進行查看如圖4-22所示。管理員可以根據反饋者反饋的具體信息進行整理,然后對餐廳提出具體的整改建議,從而提高餐廳的效益和服務水平,讓顧客在更加舒適的環境中進行就餐享受。圖4-21銷售訂單管理頁面效果圖圖4-22管理員查看信息圖4.2.7用戶管理管理員進入后臺管理系統之后如果想要對用戶管理,直接點擊左側導航欄中的【用戶管理】按鈕頁面跳轉到userList.jsp用戶管理列表頁面如圖4-23所示,如果用戶想要對某一個信息信息搜索,可以直接在左上角處進行想應信息的輸入搜索。如果管理員想要添加用戶信息,直接點擊【添加】按鈕頁面直接跳轉到userAdd.jsp用戶添加頁面如圖4-24所示。如果用戶想要對想要用戶進行刪除和信息更新,管理員可以直接點擊所在用戶信息后面的【更新】和【刪除】按鈕進行相應的操作實現相應的功能。圖4-23用戶管理列表圖圖4-24新用戶添加圖

第5章系統測試經過大學五年的學習我們可以清楚地知道軟件編碼結束后,需要對其軟件項目進行系統的測試,因為這是保證軟件質量和用戶使用人性化的一個重要的手段,也是對其進行一個綜合測試和評分的一個原則。系統測試的主要目的是用最少的時間和人力找出系統中潛在存在的各種錯誤,以便達到客戶的預期需求。5.1測試原則本項目采用的測試原則主要是盡早的、不斷的軟件測試原則。這種的測試原則主要是貫穿整個系統的開發階段,把每個功能模塊看做是一個獨立的開發階段,所以為了減少時間和人力成本,我們需要在軟件開發的每個階段和每個獨立的功能模塊進行不斷的運行測試,一實現每個功能模塊的成功運行,從而提高系統的可靠性和質量。5.2測試進度在系統測試的過程中,我們需要制定好嚴格意義上的測試時間進度表,寫好測試結果,確保測試結果和預期效果相符合。減少系統開發的時間成本。寫好測試的數據以及案例,并對測試數據進行設計邏輯的處理,得出期望結果。具體的時間測試進度表如表5-1所示。表5-1測試進度時間表測試活動系統測試時間調試結果前臺首頁2021.4.12正常用戶登錄注冊2021.4.19正常用

溫馨提示

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

評論

0/150

提交評論