版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
I第1章系統(tǒng)概述1.1系統(tǒng)開(kāi)發(fā)背景近年來(lái)隨著5G互聯(lián)網(wǎng)網(wǎng)絡(luò)的到來(lái),隨著當(dāng)代我國(guó)信息科學(xué)和技術(shù)及其經(jīng)濟(jì)的飛速發(fā)展,信息化工程建設(shè)不斷深入和推進(jìn),信息技術(shù)被廣泛運(yùn)用,信息網(wǎng)絡(luò)快速普及,網(wǎng)絡(luò)上的信息技術(shù)也獲得了巨大而又迅猛的發(fā)展。隨著當(dāng)前我國(guó)社會(huì)和環(huán)境的發(fā)生巨大變化,經(jīng)濟(jì)迅猛發(fā)展,生活方式也在很大程度上發(fā)生了重大的改變。但是對(duì)于線下的點(diǎn)餐系統(tǒng)我們只有在一些客流量比較大的酒店才真正能夠在線下看見(jiàn),對(duì)于一些小餐廳或者飯館來(lái)說(shuō)仍然是采用傳統(tǒng)的手工記錄方式來(lái)進(jìn)行點(diǎn)餐,正是基于這種網(wǎng)絡(luò)環(huán)境本次研究所設(shè)計(jì)的課程題目就是“基于Web點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”,所以該系統(tǒng)主要適用于小餐館和餐廳,最多在一百桌以內(nèi)這樣規(guī)模的餐廳,這種系統(tǒng)主要是安裝在終端客戶機(jī)上,用戶進(jìn)入餐廳后再客戶機(jī)上根據(jù)操作流程進(jìn)行點(diǎn)餐下單,如果遇到老年人或者不會(huì)操作的,相應(yīng)的服務(wù)員會(huì)幫助其點(diǎn)餐下單,下單付款成功,直接在所在餐桌等候就可以了。那么這種點(diǎn)餐方式區(qū)別于傳統(tǒng)的電話點(diǎn)餐、線下門(mén)店手工點(diǎn)餐。傳統(tǒng)點(diǎn)餐模式中存在的問(wèn)題是難以計(jì)算、不易查找、不易更改、容易出錯(cuò)、效率低下、管理混亂等缺點(diǎn)。為了克服傳統(tǒng)點(diǎn)餐的缺點(diǎn),提高點(diǎn)餐效率,適應(yīng)當(dāng)前點(diǎn)餐形式的發(fā)展,我們采用先進(jìn)的線下點(diǎn)餐系統(tǒng)彌補(bǔ)傳統(tǒng)點(diǎn)餐方式的不足,提高點(diǎn)餐效率,減少點(diǎn)餐錯(cuò)誤率,精簡(jiǎn)餐廳點(diǎn)餐的流程,而且這種小系統(tǒng)開(kāi)發(fā)成本低,人們易于接受,容易向廣大客戶推廣。這種小系統(tǒng)可以讓顧客的點(diǎn)餐更加便捷,有利于提高餐廳的營(yíng)業(yè)額,減少人工成本。這次畢業(yè)設(shè)計(jì)“基于Web點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”主要是運(yùn)用自己所學(xué)的知識(shí)來(lái)解決現(xiàn)實(shí)的實(shí)際問(wèn)題。Web點(diǎn)餐系統(tǒng)中主要包含了兩個(gè)主要的用戶角色,顧客和店家。該管理系統(tǒng)極大額地簡(jiǎn)化了管理流程,使得對(duì)餐廳管理變得更加高效快捷,極大的改善了工作人員的工作環(huán)境,提高了餐廳管理者和工作人員的工作效率,為顧客和消費(fèi)者提供了更加友好的服務(wù)和用戶體驗(yàn)。現(xiàn)在的人們開(kāi)始尋求一種更加便利快捷舒適的生活方式。計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)是進(jìn)一步提高人們物質(zhì)生活水平的重要工具,從它的誕生以后,人們對(duì)于網(wǎng)絡(luò)的普遍依賴和接受程度也就越來(lái)越高,網(wǎng)絡(luò)的普及給人們帶來(lái)了新的消費(fèi)途徑和方式,例如網(wǎng)上就出現(xiàn)了很多銷售網(wǎng)站,娛樂(lè)網(wǎng)站等線上消費(fèi)形式,所以這個(gè)點(diǎn)餐系統(tǒng)也就孕育而生,這個(gè)點(diǎn)餐系統(tǒng)正是基于一種B/S架構(gòu)的系統(tǒng)模式,上手簡(jiǎn)單,操作便捷。該項(xiàng)目在系統(tǒng)的穩(wěn)定性、可靠度以及整個(gè)項(xiàng)目的延伸性上都占有很大的市場(chǎng)優(yōu)勢(shì)。此外,對(duì)一些與Java密切相關(guān)的技術(shù)也進(jìn)行了深入的研究,設(shè)計(jì)并制定和實(shí)現(xiàn)了該軟件,并為將來(lái)很多可能需要做的其他工作奠定了有效而堅(jiān)實(shí)的基礎(chǔ)。1.2開(kāi)發(fā)環(huán)境與主要技術(shù)1.2.1技術(shù)選擇點(diǎn)餐系統(tǒng)它作為一種銷售類的管理系統(tǒng),實(shí)用性較強(qiáng),滿足用戶對(duì)業(yè)務(wù)上的需求,便宜餐廳對(duì)點(diǎn)餐數(shù)據(jù)的分析統(tǒng)計(jì),從它的整體頁(yè)面結(jié)構(gòu)上來(lái)看一定要有自己的特點(diǎn),頁(yè)面要美觀簡(jiǎn)潔,突顯出自己餐廳的特色和風(fēng)格。只有這樣才能夠吸引住顧客的眼球,使得顧客們滿足該系統(tǒng)的業(yè)務(wù)功能需求,更好地為客戶實(shí)施更人性化的服務(wù)。本項(xiàng)目采用的運(yùn)行環(huán)境是Jdk1.8、后臺(tái)服務(wù)器Tomcat9、數(shù)據(jù)庫(kù)MySQL1.5和軟件開(kāi)發(fā)平臺(tái)Eclipse。項(xiàng)目使用的技術(shù)主要包括前臺(tái)css、Javascript、JQuery、Bootstrap等技術(shù),后臺(tái)主要使用的的Jsp、Servlet、JDBC等技術(shù)。俗話說(shuō)的好“兵馬未動(dòng),糧草先行”所以首先對(duì)項(xiàng)目開(kāi)發(fā)的環(huán)境、技術(shù)、需求分析做個(gè)簡(jiǎn)要的說(shuō)明。而本次畢業(yè)的設(shè)計(jì)的任務(wù)是,構(gòu)建一個(gè)“基于Web點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)”,實(shí)現(xiàn)點(diǎn)餐系統(tǒng)首先在Eclipse環(huán)境下創(chuàng)建一個(gè)動(dòng)態(tài)的Web項(xiàng)目工程,然后按照需求分析一步一步來(lái)進(jìn)行項(xiàng)目的編寫(xiě),其主要的開(kāi)發(fā)環(huán)境如表1-1所示。本次的系統(tǒng)環(huán)境安裝過(guò)程不再此贅述,具體的詳細(xì)安裝過(guò)程可以去網(wǎng)上查找。表1-1開(kāi)發(fā)環(huán)境需求名稱開(kāi)發(fā)平臺(tái)硬件平臺(tái)電腦開(kāi)發(fā)工具Eclipse開(kāi)發(fā)語(yǔ)言Java操作系統(tǒng)MicrosoftWindows2010JDK版本JDK1.8數(shù)據(jù)庫(kù)MySQL后臺(tái)服務(wù)器ApacheTomcat9.01.2.2技術(shù)簡(jiǎn)介Java作為一種基于企業(yè)計(jì)算機(jī)的網(wǎng)絡(luò)編程應(yīng)用語(yǔ)言,現(xiàn)在己經(jīng)逐步發(fā)展出并成為所有internet中最廣泛流行、也是最為具有重要國(guó)際影響力的一種網(wǎng)絡(luò)編程應(yīng)用語(yǔ)言。Java[1]最大的技術(shù)優(yōu)勢(shì)之處之一就是面向?qū)ο螅畲蟮闹饕夹g(shù)優(yōu)勢(shì)之處之一就是具有代碼的超高可持續(xù)擴(kuò)展性和后期維護(hù)管理能力,這也大大促進(jìn)了企業(yè)應(yīng)用程序設(shè)計(jì)代碼更加健壯。B/S(Browser/Server),即瀏覽器和服務(wù)器架構(gòu)。其優(yōu)點(diǎn)在于B/S是一種瘦客戶機(jī)架構(gòu),客戶端軟件僅需安裝瀏覽器,且對(duì)客戶端硬件配置要求較低、標(biāo)準(zhǔn)統(tǒng)一、維護(hù)相對(duì)簡(jiǎn)單、無(wú)需開(kāi)發(fā)客戶端軟件,所有優(yōu)先選用B/S[2]架構(gòu)。Javascript是一種常見(jiàn)于Web編程中用來(lái)解釋和執(zhí)行腳本類編程的語(yǔ)言。它主要是嵌入html代碼中,由瀏覽器進(jìn)行逐步解釋和執(zhí)行。它通過(guò)響應(yīng)各種事件,如鍵盤(pán)按鍵、鼠標(biāo)拖拽、手指觸摸等,來(lái)與外界交互,從而實(shí)現(xiàn)各種功能。由于它擁有如此眾多的優(yōu)勢(shì),使得它在很多的項(xiàng)目前臺(tái)中被用到。JSP全稱為JavaServerPages,是一種動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù),主要用于實(shí)現(xiàn)JavaWeb應(yīng)用程序的用戶界面部分。JSP可以在不同的網(wǎng)頁(yè)中傳遞控制信息和共享信息,因此JSP具有更強(qiáng)的功能,且更適合復(fù)雜的需要可重用部件的應(yīng)用。JSP[3]可以移植到其他的操作系統(tǒng)和Web服務(wù)器。MySQ[4]是一個(gè)開(kāi)源免費(fèi)的關(guān)系型數(shù)據(jù)庫(kù)而且它擁有適應(yīng)性好、運(yùn)行和反應(yīng)速度快、使用的可靠性高等優(yōu)點(diǎn),一般也被大量的小型項(xiàng)目使用。Eclipse也是自由和開(kāi)源,它是基于Java的資源開(kāi)發(fā)服務(wù)平臺(tái)。就其本身來(lái)說(shuō),它目前只能認(rèn)為是一種可以用來(lái)通過(guò)一個(gè)插件框架組成的服務(wù)方式,用來(lái)幫助構(gòu)建一個(gè)基于開(kāi)發(fā)者的環(huán)境和插件組成的一組新服務(wù)。也是我們使用java作為項(xiàng)目開(kāi)發(fā)的首選。這個(gè)畢業(yè)項(xiàng)目是為了能夠在設(shè)計(jì)和實(shí)現(xiàn)上達(dá)到最初的想法和要求。完整的系統(tǒng)具有系統(tǒng)的一些優(yōu)點(diǎn):高安全性,良好的可移植性,較高的跨產(chǎn)品平臺(tái),出色的可伸縮性,還可以具有分布式結(jié)構(gòu)。因此,在項(xiàng)目中使用了上面介紹的B/S結(jié)構(gòu)系統(tǒng),而我設(shè)計(jì)和實(shí)現(xiàn)的點(diǎn)餐系統(tǒng)則正式基于Java編程語(yǔ)言的B/S設(shè)計(jì)模式。本系統(tǒng)使用的是B/S架構(gòu)和MVC結(jié)構(gòu)。所以只需要一臺(tái)本地的計(jì)算機(jī)和瀏覽器就可以使用該項(xiàng)目系統(tǒng)。用戶可以通過(guò)瀏覽器作為我們的客戶端和點(diǎn)餐系統(tǒng)之間進(jìn)行鏈接,用戶也可以使用瀏覽器向我們發(fā)送請(qǐng)求,然后通過(guò)系統(tǒng)的業(yè)務(wù)邏輯進(jìn)行數(shù)據(jù)處理,然后通過(guò)MVC相應(yīng)的層進(jìn)行相應(yīng)的增、刪、改、查等數(shù)據(jù)操作。由于這些技術(shù)有如此多的優(yōu)點(diǎn),而且這些技術(shù)也是我們學(xué)過(guò)的,所以本次項(xiàng)目開(kāi)發(fā)優(yōu)先使用這些技術(shù)。1.2.3國(guó)內(nèi)現(xiàn)狀隨著我們?cè)谑澜缟系挠绊懥υ絹?lái)越大,伴隨著5G智能時(shí)代的到來(lái),網(wǎng)絡(luò)技術(shù)在生活中的作用越來(lái)越大。由于計(jì)算機(jī)在國(guó)外發(fā)展的時(shí)間較早而且速度很快,計(jì)算機(jī)技術(shù)很成熟,我國(guó)在計(jì)算機(jī)上起步較晚,對(duì)于智能點(diǎn)餐系統(tǒng)只能夠在我們大型的餐廳才能夠看見(jiàn),在小型的餐廳很少看見(jiàn)。一個(gè)主要的原因是點(diǎn)餐系統(tǒng)的開(kāi)發(fā)成本很大對(duì)于一些小的餐廳來(lái)說(shuō)負(fù)擔(dān)不起,也難以維護(hù),而且對(duì)于一些小的飯店來(lái)說(shuō)沒(méi)有過(guò)多的關(guān)注。但是隨著我國(guó)經(jīng)濟(jì)的迅猛發(fā)展,人們對(duì)智能設(shè)備的依賴越高,而且隨著計(jì)算機(jī)技術(shù)成熟發(fā)展,小型系統(tǒng)的開(kāi)發(fā)成本相對(duì)減少,而且易于維護(hù),易于推廣。1.2.4進(jìn)度為了使我們能夠直觀表明一個(gè)任務(wù)方案是在何種情況下進(jìn)行的,以及根據(jù)實(shí)際的進(jìn)展和計(jì)劃所要求做出相應(yīng)的對(duì)照情況而制作任務(wù)進(jìn)度甘特圖如圖1-1任務(wù)進(jìn)度。圖1-1任務(wù)進(jìn)度1.2.5本論文結(jié)構(gòu)安排第1章主要是系統(tǒng)概論,主要對(duì)點(diǎn)餐系統(tǒng)的研究背景、開(kāi)發(fā)技術(shù)和開(kāi)發(fā)環(huán)境進(jìn)行簡(jiǎn)介、結(jié)合國(guó)內(nèi)外目前現(xiàn)狀論述點(diǎn)餐系統(tǒng)開(kāi)發(fā)的必要性。第2章主要是對(duì)點(diǎn)餐系統(tǒng)的需求分析和總體設(shè)計(jì)進(jìn)行介紹。第3章主要是數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn),主要對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)和每張數(shù)據(jù)庫(kù)表的邏輯設(shè)計(jì)進(jìn)行說(shuō)明和論述。第4章主要是系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn),主要對(duì)點(diǎn)餐系統(tǒng)的前臺(tái)和后臺(tái)哥哥功能模塊進(jìn)行簡(jiǎn)要的概述和說(shuō)明。第5章主要是系統(tǒng)測(cè)試,對(duì)開(kāi)發(fā)過(guò)程中的每個(gè)功能模塊每個(gè)開(kāi)發(fā)階段都要進(jìn)行系統(tǒng)測(cè)試,保證功能模塊能夠正常進(jìn)行。第6章主要是對(duì)本次的畢業(yè)設(shè)計(jì)進(jìn)行總結(jié),得出想應(yīng)的心得體會(huì)。
第2章系統(tǒng)需求分析及總體設(shè)計(jì)2.1需求分析根據(jù)軟件工程[5]的需求分析介紹,我們對(duì)于軟件一般設(shè)計(jì)和開(kāi)發(fā)流程的來(lái)看,進(jìn)行軟件設(shè)計(jì)和開(kāi)發(fā)的第一步便是對(duì)其進(jìn)行市場(chǎng)和應(yīng)用的需求分析。通過(guò)對(duì)軟件需要的分析來(lái)了解用戶的真正需要這樣對(duì)軟件后續(xù)開(kāi)發(fā)大有裨益,俗話說(shuō)“磨刀不誤砍柴工”,先要進(jìn)行系統(tǒng)的頂層設(shè)計(jì),總體規(guī)劃,精準(zhǔn)把握用戶的真是需求。一個(gè)完善優(yōu)良的項(xiàng)目體系在軟件開(kāi)發(fā)之初必須要準(zhǔn)備充足的材料,進(jìn)行整個(gè)項(xiàng)目需求分析。只有在這個(gè)階段完成一個(gè)清晰、詳盡的需求分析,我們才可以在后期的設(shè)計(jì)和編碼中更好地實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。本系統(tǒng)主要開(kāi)發(fā)出來(lái)用于小規(guī)模的餐廳,約50桌餐桌以內(nèi)這樣的一個(gè)規(guī)模,系統(tǒng)完成后將系統(tǒng)安裝在一個(gè)終端上放在一個(gè)餐廳入口的地方,如果客人想要就餐的話,直接在終端上進(jìn)行操作,先選擇未使用的餐桌進(jìn)行占位,占位成功后進(jìn)入菜單列表選擇自己喜歡的菜系和菜品加入自己所在賬戶的購(gòu)物車車,下單付款,付款成功后顧客直接在餐桌前等候,等候后廚訂單處理,處理完成后,服務(wù)員將把你點(diǎn)好的菜直接上到你的面前。對(duì)于一些不會(huì)操作終端的人群,餐廳將提供人工為其服務(wù),使人們能夠感受到家的溫暖。2.2可行性研究分析在進(jìn)行軟件開(kāi)發(fā)的前期,對(duì)一個(gè)軟件項(xiàng)目管理系統(tǒng)的整體設(shè)計(jì)和規(guī)劃實(shí)施情況進(jìn)行了大量可行性的調(diào)查分析,這些都無(wú)疑是其在進(jìn)行軟件開(kāi)發(fā)的全整個(gè)過(guò)程中必須注意做到不可忽視的一項(xiàng)工作。從多種不同角度和維度基礎(chǔ)上來(lái)分析,進(jìn)行一個(gè)項(xiàng)目的實(shí)際可行性研究分析,能夠幫助我們把整個(gè)項(xiàng)目的情況分析得更加透徹具體。(1)技術(shù)可行性分析在目前大多數(shù)公司中我們所使用得到的項(xiàng)目管理軟件開(kāi)發(fā)的工具都是eclipse,例如我們平時(shí)做的課程設(shè)計(jì)時(shí)所使用的工具就是eclipse,因此在這次的點(diǎn)餐管理系統(tǒng)中也使用eclipse這個(gè)軟件開(kāi)發(fā)的工具,因?yàn)槲覀儗?duì)其工作環(huán)境也是比較熟悉的。Java作為當(dāng)下最廣泛流行和被關(guān)注的計(jì)算機(jī)編程語(yǔ)言,歷久彌新,而且簡(jiǎn)單方便,靈活運(yùn)用,是此次設(shè)計(jì)和開(kāi)發(fā)該系統(tǒng)的不二之選。(2)經(jīng)濟(jì)的可行性分析點(diǎn)餐系統(tǒng)前期的開(kāi)發(fā)成本低,在系統(tǒng)設(shè)計(jì)編碼工作全部完成之后,用戶只需要在自己客戶端上安裝瀏覽器,只需要正常上網(wǎng)即可,用戶可以通過(guò)瀏覽器輕松完成對(duì)系統(tǒng)的訪問(wèn)和管理,經(jīng)濟(jì)實(shí)惠、成本較低、易于操作容易上手,非常的人性化。2.3系統(tǒng)設(shè)計(jì)概述系統(tǒng)的總體設(shè)計(jì)在項(xiàng)目的實(shí)際開(kāi)發(fā)中的顯得尤為重要,也是必不可少的一個(gè)環(huán)節(jié)。這要求設(shè)計(jì)人員對(duì)項(xiàng)目管理系統(tǒng)要做到了然于心,并且建立該系統(tǒng)的具體應(yīng)用到實(shí)際地點(diǎn)的執(zhí)行解決方案,使其能夠得到完全的實(shí)現(xiàn),完成最初的目標(biāo)以及最終的要求。在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),主要的工作是了解學(xué)習(xí)所涉及的知識(shí)、技術(shù)。為了讓整個(gè)項(xiàng)目獲得成功不僅需要仔細(xì)的分析,而且還需要有嚴(yán)密的邏輯設(shè)計(jì),使整個(gè)系統(tǒng)完整。那么為了能夠更好地進(jìn)行系統(tǒng)設(shè)計(jì)項(xiàng)目就必須要充分理解系統(tǒng)設(shè)計(jì)的基本原則,其主要包括易用性原則、提高用戶的服務(wù)和體驗(yàn)原則、研究開(kāi)發(fā)階段的原則、遵循服務(wù)全面嚴(yán)格的原則、保證其數(shù)據(jù)信息的完整性,減少其數(shù)據(jù)差錯(cuò)原則、規(guī)范化的經(jīng)營(yíng)原則。在最初設(shè)計(jì)階段中,系統(tǒng)主要負(fù)責(zé)人要完成各種用戶需求調(diào)研從而滿足客戶的的業(yè)務(wù)需求。2.4系統(tǒng)功能分析點(diǎn)餐系統(tǒng)前臺(tái)功能模塊結(jié)構(gòu)如圖2-1所示。圖2.SEQ圖1.\*ARABIC1系統(tǒng)前臺(tái)功能結(jié)構(gòu)圖為了提高餐廳的點(diǎn)餐效率,為顧客提供便捷舒適的服務(wù),我們需要完善各個(gè)基礎(chǔ)功能模塊,而且系統(tǒng)各個(gè)界面要整潔大方。本系統(tǒng)主要包括前臺(tái)和后臺(tái)兩個(gè)部分。前臺(tái)部分主要包含7個(gè)模塊,分別為餐桌使用狀態(tài)展示模塊、菜品菜系查詢功能模塊、購(gòu)物車功能模塊、訂單查詢功能模塊、登錄退出功能模塊、注冊(cè)功能模塊、信息反饋功能模塊。后臺(tái)部分主要包含5個(gè)模塊內(nèi)容,分別是餐桌管理功能模塊、菜系管理功能模塊、菜品管理功能模塊、訂單管理功能模塊、信息反饋功能模塊。當(dāng)管理員登錄后臺(tái)數(shù)據(jù)頁(yè)面的時(shí)候,可以清楚看到后臺(tái)的5個(gè)功能模塊,管理員可以對(duì)餐桌信息、菜系信息、菜品的信息、信息反饋等信息進(jìn)行操作,通過(guò)對(duì)這些信息的管理,餐廳可以為顧客提供更好的服務(wù)。當(dāng)顧客進(jìn)入餐廳進(jìn)行點(diǎn)餐的時(shí)候,顧客或者點(diǎn)餐員進(jìn)行點(diǎn)餐,他們可以進(jìn)入點(diǎn)餐系統(tǒng)前臺(tái),可以看到點(diǎn)餐系統(tǒng)的整體界面結(jié)構(gòu),新顧客(點(diǎn)餐員)需要進(jìn)入系統(tǒng)的客戶端進(jìn)行系統(tǒng)的注冊(cè),如果已經(jīng)注冊(cè)了的可以直接通過(guò)已有的賬戶、密碼進(jìn)行登錄,登錄后可以進(jìn)行餐桌預(yù)定占座、菜品的搜索、點(diǎn)餐、訂餐、支付等操作。管理員對(duì)應(yīng)的模塊,管理員在系統(tǒng)后臺(tái)登錄成功后可以對(duì)整個(gè)餐廳相對(duì)應(yīng)的模塊進(jìn)行管理,比如餐桌、菜系菜品、信息反饋等操作,完成管理員對(duì)顧客的服務(wù)操作。后臺(tái)功能模塊結(jié)構(gòu)如圖2-2所示。圖2-2系統(tǒng)功能后臺(tái)結(jié)構(gòu)圖2.5點(diǎn)餐系統(tǒng)流程介紹如果想要對(duì)訂餐管理系統(tǒng)實(shí)施相關(guān)的操作,管理員必須將自己的基礎(chǔ)信息直接手動(dòng)注冊(cè)到自己的數(shù)據(jù)庫(kù)中,并且在登錄到訂餐管理系統(tǒng)的客戶端后臺(tái)進(jìn)行管理。如果在登錄的時(shí)候出現(xiàn)發(fā)生異常,登錄失敗等情況,系統(tǒng)將會(huì)提醒管理員仔細(xì)核對(duì)自己的身份和密碼信息,核對(duì)后再次重新登錄。在登錄成功后,就可以使用我們的訂餐信息管理系統(tǒng),后臺(tái)模塊對(duì)整個(gè)訂餐信息管理系統(tǒng)實(shí)施正確、有效地信息化管理。管理員可以對(duì)訂單,菜系菜品、餐桌、會(huì)員等信息進(jìn)行修改、添加、刪除等操作。訂餐管理系統(tǒng)的一些基本概況,都是可以在系統(tǒng)中的任意模塊來(lái)進(jìn)行查看、分析,以及對(duì)其做出及時(shí)的適當(dāng)相應(yīng)調(diào)整。系統(tǒng)的前臺(tái)業(yè)務(wù)處理流程圖顯示如圖2-3所示。否否否成功查看我的訂單結(jié)束菜品購(gòu)買查看菜品加入購(gòu)物車結(jié)賬生成訂單錯(cuò)誤提示下單繼續(xù)購(gòu)物是否登陸驗(yàn)證登錄首頁(yè)用戶登陸個(gè)人首頁(yè)輸入用戶名、密碼驗(yàn)證查看餐桌狀態(tài)查看我的訂單修改密碼用戶注冊(cè)系統(tǒng)首頁(yè)錯(cuò)誤提示填寫(xiě)注冊(cè)信息注冊(cè)開(kāi)始登陸系統(tǒng)首頁(yè)成功成功失敗是失敗是失敗圖2-3前臺(tái)業(yè)務(wù)流程圖2.6軟件模型2.6.1用例圖本系統(tǒng)的主要用例包括顧客、管理員、第三方支付平臺(tái)三個(gè)用例。細(xì)分到每個(gè)大的用例后,每個(gè)大的用例又包括多個(gè)小的用例,例如用戶包括6個(gè)小的用例它們分別是餐桌使用狀態(tài)、菜單內(nèi)容、購(gòu)物車、支付、訂單、信息反饋。餐桌使用狀態(tài)的用例主要包括使用和未使用狀態(tài),菜單內(nèi)容用例包括菜品和菜系兩個(gè)內(nèi)容,支付用例包括成功和失敗兩個(gè)狀態(tài),訂單用例包括桌號(hào)、訂單編碼、訂單時(shí)間和訂單的狀態(tài)。如果是新用戶登錄本系統(tǒng)需要注冊(cè)個(gè)人信息并且信息要符合規(guī)定的規(guī)則,如果是老用戶直接使用已有的賬戶和密碼直接登錄,當(dāng)用戶登錄成功后可以直接看見(jiàn)餐桌的使用狀態(tài),如果用戶點(diǎn)擊全部那么餐桌就會(huì)將全部的餐桌信息顯示出來(lái),用戶可以搜索未使用狀態(tài)下的餐桌,然后用戶可以點(diǎn)擊未使用的餐桌號(hào)進(jìn)行占位處理,如果用戶占位成功后可以在菜單列表選擇自己喜歡的食物加入到購(gòu)物車中,等選購(gòu)食物結(jié)束后用戶可以點(diǎn)擊支付按鈕進(jìn)行支付,支付成功后用戶只需耐心等待后廚對(duì)菜單的處理即可。管理員對(duì)系統(tǒng)后臺(tái)管理的功能用例主要包括餐桌管理、菜系管理、菜品管理、訂單管理、信息反饋等5個(gè)用例。餐桌管理包含添加餐桌和刪除餐桌,菜系主要包括添加、更新、刪除用例。菜品管理主要包括添加、更新、刪除、搜索用例。訂單管理主要包括下單的時(shí)間、訂單編碼、訂單份數(shù)用例。信息反饋主要包括姓名、時(shí)間、反饋信息用例。述此過(guò)程的用例圖如圖2-4和圖2-5所示。圖2-4管理員用例圖圖2-5顧客用例圖2.6.2活動(dòng)圖用戶活動(dòng)圖主要是顧客登錄系統(tǒng)前臺(tái)所進(jìn)行的一系列活動(dòng)。如果用戶沒(méi)有注冊(cè)系統(tǒng),用戶只能進(jìn)入系統(tǒng),瀏覽系統(tǒng)的信息頁(yè)面不能夠?qū)ο到y(tǒng)的各個(gè)菜品進(jìn)行購(gòu)買或者進(jìn)行相應(yīng)的功能操作。如果用戶想購(gòu)買菜品,用戶必須登錄該系統(tǒng),登錄系統(tǒng)成功后就可以進(jìn)行菜品添加、下單、訂單信息查看、餐桌選定等操作,具體的詳細(xì)信息如下圖2-6用戶活動(dòng)圖所示。管理員活動(dòng)圖能夠清晰的看見(jiàn)管理員登錄系統(tǒng)后臺(tái)所進(jìn)行的各種活動(dòng),管理員如果沒(méi)有成功登錄系統(tǒng)是無(wú)法進(jìn)行相關(guān)的操作的,只有當(dāng)管理員成功登錄了系統(tǒng)后臺(tái)后才能夠進(jìn)行相關(guān)操作。管理員登錄成功后管理員可以對(duì)餐桌管理、菜系管理、菜品管理、訂單管理、信息反饋查看等操作,管理員也可以對(duì)這些操作進(jìn)行增加、刪除、修改。這5個(gè)模塊是平級(jí)關(guān)系沒(méi)有依賴關(guān)系。具體的活動(dòng)流程如下圖2-7管理員活動(dòng)圖所示。圖2-6用戶活動(dòng)圖圖2-7管理員活動(dòng)圖2.6.3順序圖順序圖展現(xiàn)的主要是信息的時(shí)間交互順序。如圖2-8所示為“注冊(cè)”的順序圖,顧客或管理員首次登錄需要進(jìn)行用戶注冊(cè),當(dāng)用戶注冊(cè)完信息后按提交按鈕提交到數(shù)據(jù)庫(kù)db_hotel中的user用戶數(shù)據(jù)庫(kù)表中保存用戶信息,然后頁(yè)面將會(huì)顯示注冊(cè)成功的消息,這樣注冊(cè)過(guò)程就完成了。圖2-8注冊(cè)順序圖
第3章數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)3.1數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)點(diǎn)餐系統(tǒng)主要使用的是當(dāng)前最為流行的關(guān)系型數(shù)據(jù)庫(kù)MySQL,MySQL它是一個(gè)免費(fèi)的開(kāi)源的數(shù)據(jù)庫(kù),在小系統(tǒng)的開(kāi)發(fā)過(guò)程中非常的流行受歡迎而且使用的范圍非常廣。根據(jù)以上各節(jié)對(duì)其所做的分析和設(shè)計(jì),規(guī)劃本系統(tǒng)中使用到的數(shù)據(jù)庫(kù)實(shí)體,對(duì)于系統(tǒng)所需要保存各類信息我們都要單獨(dú)的建立一張數(shù)據(jù)表,采用外鍵連接。3.1.1數(shù)據(jù)庫(kù)表概要說(shuō)明點(diǎn)餐系統(tǒng)主要包括了7張數(shù)據(jù)庫(kù)表,它們分別是餐廳菜系類型數(shù)據(jù)表food_type,菜品信息數(shù)據(jù)表food,用戶管理員注冊(cè)數(shù)據(jù)表user,訂單數(shù)據(jù)表order,訂單詳情信息數(shù)據(jù)表order_detail,餐桌信息表dinner_table,信息反饋表suggestion。其中菜品信息數(shù)據(jù)表主要是用來(lái)保存餐廳所推出的所有菜品信息,菜系類型表主要用來(lái)保存餐廳里面所推出的菜系,包括菜系和菜品所對(duì)應(yīng)的關(guān)系。用戶管理員注冊(cè)表主要用來(lái)保存用戶和管理員的注冊(cè)信息。訂單數(shù)據(jù)表主要用來(lái)保存所對(duì)應(yīng)用戶所有的訂單信息。餐桌信息表主要用來(lái)保存餐桌信息。信息反饋表主要是用來(lái)保存顧客對(duì)餐廳所反映的一些信息。用戶以上7張數(shù)據(jù)表,將會(huì)在以下幾節(jié)進(jìn)行詳細(xì)的描述其表結(jié)構(gòu)。3.1.2數(shù)據(jù)庫(kù)概念設(shè)計(jì)根據(jù)以上各節(jié)對(duì)點(diǎn)餐系統(tǒng)所做的需求分析和系統(tǒng)結(jié)構(gòu)設(shè)計(jì),現(xiàn)在設(shè)計(jì)本系統(tǒng)中使用的數(shù)據(jù)庫(kù)實(shí)體它們分別為管理員實(shí)體、菜系實(shí)體、菜品詳細(xì)信息實(shí)體、用戶注冊(cè)詳細(xì)信息實(shí)體、訂單實(shí)體、訂單明細(xì)實(shí)體、餐桌信息實(shí)體、信息反饋實(shí)體。下面分別介紹幾個(gè)關(guān)鍵實(shí)體的E-R圖。(1)管理員實(shí)體管理員實(shí)體的信息主要包括姓名、密碼、郵箱、電話、用戶創(chuàng)建的時(shí)間、用戶存在的狀態(tài)。管理員只能夠在數(shù)據(jù)庫(kù)中進(jìn)行手動(dòng)添加不能直接在系統(tǒng)上進(jìn)行注冊(cè),管理員可以對(duì)用戶進(jìn)行添加等操作。其E-R結(jié)構(gòu)圖如圖3-1所示。圖3-1管理員的E-R圖(2)菜系類別實(shí)體菜系類別的實(shí)體主要包括編號(hào)、菜系的類型名稱、菜系創(chuàng)建時(shí)間、菜系類型更新時(shí)以及創(chuàng)建的存在狀態(tài),其中菜系存在的狀態(tài)用1表示未刪除狀態(tài),用0表示已刪除狀態(tài)。其E-R圖如圖3-2所示。圖3-2菜系類別的E-R圖(3)菜品信息實(shí)體菜品的信息實(shí)體主要包括編號(hào)、菜名、菜系類型的id、價(jià)格、折扣、備注、菜的圖片、菜品創(chuàng)建的時(shí)間、菜品信息更新時(shí)間、菜品存在的狀態(tài)。其中菜品存在的狀態(tài)用0表示未刪除狀態(tài),用1表示已刪除狀態(tài)。其E-R圖如圖3-3所示。圖3-3菜品信息的E-R圖(4)訂單信息實(shí)體訂單信息實(shí)體主要包括訂單編號(hào)、訂單所屬的餐桌、總價(jià)、付款狀態(tài)、下單時(shí)間、付款時(shí)間、。其中付款狀態(tài)用0表示已下單未付款,用1表示已付款。其中的存在的狀態(tài)用0表示未刪除狀態(tài),用1表示已刪除狀態(tài)。其E-R圖如圖3-4所示。圖3-4訂單信息的E-R圖(5)訂單詳細(xì)信息實(shí)體訂單詳細(xì)的實(shí)體主要包括所屬訂單的id、菜品的id、購(gòu)買數(shù)量、存在狀態(tài)。其中存在狀態(tài)用0表示未刪除狀態(tài),用1表示已刪除狀態(tài)。其E-R圖如圖3-5所示。圖3-5訂單詳細(xì)信息的E-R圖(6)餐桌信息實(shí)體餐桌信息實(shí)體主要包括餐桌的名稱、餐桌的使用狀態(tài)、餐桌占用、餐桌創(chuàng)建的時(shí)間、餐桌信息的修改時(shí)間、餐桌存在狀態(tài)。,其中餐桌的使用狀態(tài)用0表示未使用,用1表示正在使用。餐桌存在狀態(tài)用0表示未刪除狀態(tài),用1表示已刪除狀態(tài)。其E-R圖如圖3-6所示。圖3-6餐桌信息的E-R圖(7)信息反饋實(shí)體信息反饋實(shí)體主要包括反饋者的姓名、時(shí)間、郵箱、電話、反饋信息。其E-R圖如圖3-7所示。圖3-7信息反饋的E-R圖3.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)的數(shù)據(jù)庫(kù)采用MySQL數(shù)據(jù)庫(kù),系統(tǒng)數(shù)據(jù)庫(kù)名稱為db_hotel,本數(shù)據(jù)庫(kù)共包含7張數(shù)據(jù)庫(kù)表,以下給出主要數(shù)據(jù)表的結(jié)構(gòu)。(1)菜品類型數(shù)據(jù)表food_type菜品類型數(shù)據(jù)表,主要是用于保存當(dāng)前訂餐系統(tǒng)的菜品類型及相關(guān)的數(shù)據(jù),數(shù)據(jù)類型可以根據(jù)餐廳的需求來(lái)進(jìn)行設(shè)置,管理員可以對(duì)數(shù)據(jù)表其進(jìn)行增加、刪除、以及修改等操作管理,如表3-1所示。表3-1food_type的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度主鍵否描述Idint11是idtype_namevarchar20否菜品類型名create_datedatetime否菜品類型創(chuàng)建時(shí)間update_datedatetime否菜品類型更新時(shí)間disabledint11否未刪1已刪菜品信息數(shù)據(jù)表主要是用來(lái)保存菜品的基本信息、價(jià)格、菜名、描述等,該表的結(jié)構(gòu)如表3-2所示。表3-2food的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度主鍵否備注idint11是IDfood_namevarchar20否菜名foodType_idint11否菜品類型idpricedouble否價(jià)錢discountdouble否折扣remarkvarchar200否備注imgvarchar100否菜的圖片create_datedatetime否菜品創(chuàng)建時(shí)間update_datedatetime否更新時(shí)間disabledint11否0未刪1已刪(3)用戶信息數(shù)據(jù)表user用戶信息數(shù)據(jù)表,主要是用來(lái)用戶的基本信息,表里面的信息數(shù)據(jù)可以根據(jù)實(shí)際的需要來(lái)修改。表結(jié)構(gòu)如表3-3所示。表3-3user的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度主鍵否描述idint11是IDLOGIN_NAMEvarchar50否登錄名PASSWORDvarchar50否密碼EMAILvarchar50否郵箱PHONEvarchar20電話CREATE_DATEdatetime用戶創(chuàng)建時(shí)間DISABLEDint20正常1已刪除(4)訂單信息數(shù)據(jù)表order訂單信息數(shù)據(jù)表,主要記錄了顧客下單之后的相關(guān)信息情況,訂單表中的各種信息可以根據(jù)實(shí)際的需要來(lái)設(shè)置,但是一定要符合各種數(shù)據(jù)的規(guī)定。數(shù)據(jù)表的結(jié)構(gòu)如表3-4所示。表3-4order的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度主鍵否描述idint11是idorder_codevarchar255否訂單編碼table_idint11否訂單所屬餐桌total_Pricedouble否總價(jià)order_Statusint11否0已下單未付款1已付款order_Datedatetime否下單時(shí)間pay_datedatetime否付款時(shí)間disabledint11否0未刪1已刪update_datedate否最后更新時(shí)間(5)訂單詳情信息數(shù)據(jù)表order_detail訂餐詳細(xì)信息數(shù)據(jù)表,主要記錄了顧客訂餐下單的相關(guān)詳細(xì)信息。數(shù)據(jù)表的結(jié)構(gòu)如表3-5所示。表3-5order_detail的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度主鍵否備注idint11是idorderIdint11否所屬訂單idfood_idint11否菜品idbuyNumint11否夠買數(shù)量disabledint11否0正常1已刪除discountdouble否折扣(6)餐桌信息數(shù)據(jù)表dinner_table餐桌信息數(shù)據(jù)表,主要記錄了餐桌的詳細(xì)信息。數(shù)據(jù)表的結(jié)構(gòu)如表3-6所示。表3-6dinner_table的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度主鍵否備注idint11是idtable_Namevarchar20否餐桌名稱table_statusint11否0未使用1正在使用begin_use_datedatetime否餐桌開(kāi)始占用時(shí)間create_datedatetime否餐桌的創(chuàng)建時(shí)間update_datedatetime否餐桌信息的修改的時(shí)間disabledvarchar11否1為刪除(7)信息反饋數(shù)據(jù)表suggestion信息反饋數(shù)據(jù)表,主要是記錄顧客對(duì)餐廳不好的信息反饋意見(jiàn),對(duì)餐廳的整改和提供人性化服務(wù)有很大的幫助。數(shù)據(jù)表的結(jié)構(gòu)如圖3-7所示。表3-7Suggestion的結(jié)構(gòu)字段名數(shù)據(jù)類型長(zhǎng)度主鍵是否備注IDInt11否NameVarchar20否姓名Datetimestamp否信息反饋時(shí)間Emailtext電子郵件phonevarchar11聯(lián)系電話Suggestiontext反饋的信息3.3數(shù)據(jù)庫(kù)表之間的關(guān)系設(shè)計(jì)圖3-8展示了數(shù)據(jù)庫(kù)內(nèi)各個(gè)數(shù)據(jù)庫(kù)表之間的關(guān)系,反映了系統(tǒng)表各個(gè)實(shí)體之間的關(guān)系。圖3-8數(shù)據(jù)庫(kù)內(nèi)各表的關(guān)系3.4連接數(shù)據(jù)庫(kù)我們?cè)贓clipse環(huán)境下創(chuàng)建動(dòng)態(tài)的Web項(xiàng)目工程后,為了與數(shù)據(jù)庫(kù)連接,我們需要準(zhǔn)備一些相關(guān)的配置文件例如c3p0配置文件、JDBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)和jstl相關(guān)的jar包。想關(guān)的jar包直接去網(wǎng)上下載,然后導(dǎo)入配置文件依賴的jar包,然后我們需要在項(xiàng)目工程下的src文件夾下新建一個(gè)c3p0-config.xml數(shù)據(jù)庫(kù)連接池配置文件,并在配置文件中寫(xiě)下數(shù)據(jù)庫(kù)連接池代碼,配置文件代碼如下所示。<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>為了能夠在以后的項(xiàng)目中使用到數(shù)據(jù)庫(kù)連接,而且不用重復(fù)寫(xiě)數(shù)據(jù)庫(kù)連接代碼,我們?cè)趯?shí)體包util文件下一個(gè)數(shù)據(jù)庫(kù)連接工廠工具類,以后直接拿來(lái)使用就行,不用重復(fù)寫(xiě),數(shù)據(jù)庫(kù)連接工廠工具類的代碼如下所示。publicclassConnectionFactory{ //自動(dòng)讀取c3p0-config.xml privatestaticDataSourcedataSource=newComboPooledDataSource(); //獲取連接 publicstaticConnectiongetConnection(){ try{ returndataSource.getConnection(); }catch(SQLExceptione){ e.printStackTrace(); } returnnull; }Publicstaticvoidclose(Connectionconn,PreparedStatementpreparedStatement,ResultSetresultSet){ try{ //釋放資源,根據(jù)先開(kāi)后放的規(guī)則 if(resultSet!=null)resultSet.close(); if(preparedStatement!=null)preparedStatement.close(); if(conn!=null)conn.close(); }catch(SQLExceptione){ e.printStackTrace(); } }}
第4章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1前臺(tái)部分4.1.1系統(tǒng)架構(gòu)設(shè)計(jì)該系統(tǒng)前臺(tái)部分主要是由顧客或點(diǎn)餐員使用,主要內(nèi)容包括登錄/注冊(cè)、餐桌查找、菜品查找、菜系查找、購(gòu)物車、訂單查看等。(1)功能模塊簡(jiǎn)介登錄/注冊(cè):如果是顧客或者點(diǎn)餐員沒(méi)有登錄或者注冊(cè)該系統(tǒng),那只能夠?qū)ο到y(tǒng)頁(yè)面的信息進(jìn)行瀏覽,無(wú)法進(jìn)行相關(guān)操作。如果是新用戶的話必須先注冊(cè)用戶信息,注冊(cè)完畢后才能夠登錄進(jìn)系統(tǒng)進(jìn)行相關(guān)操作,如果是老用戶的話直接使用正確的信息進(jìn)行登錄然后信息相關(guān)操作。餐桌狀態(tài)/餐桌查找:在首頁(yè)搜索欄上的下拉框里面包含了餐桌的使用或未使用的兩種狀態(tài),用戶可以通過(guò)選擇其中一種狀態(tài)查看想應(yīng)中的餐桌。菜系/菜品查找:通過(guò)自己的喜愛(ài)可以查找出自己喜歡菜系和菜品。購(gòu)物車:用戶可以將自己喜歡的菜系里面的菜品添加到用戶購(gòu)物車?yán)锩妫员阆聠巍S唵尾榭矗河脩艨梢愿鶕?jù)自己點(diǎn)餐的狀態(tài)查看自己已經(jīng)下單的詳細(xì)內(nèi)容。(2)前臺(tái)所有頁(yè)面文件組成如圖4-1所示。圖4-1前臺(tái)頁(yè)面文件組成圖下面以列表形式給出前臺(tái)頁(yè)面各部分的說(shuō)明信息,如表4-1所示。表4-1前臺(tái)頁(yè)面說(shuō)明序號(hào)名稱備注對(duì)應(yīng)文件1顧客注冊(cè)為新用戶提供注冊(cè)入口register.jsp2顧客/服務(wù)員登錄為已經(jīng)注冊(cè)了的或者老顧客提供登錄入口login.jsp3首頁(yè)主要用于展示餐桌及餐桌的使用狀態(tài)index.jsp4菜單列表用于顯示所有菜系菜品信息menuList.jsp5占位后菜單用于已占用餐桌的菜系菜品信息顯示menu.jsp6訂單信息顯示所有的菜單信息orderList.jsp7指定菜單信息顯示指定信息顯示orderItem.jsp8信息反饋主要用于顧客信息反饋offers.jsp9幫助信息為新用戶提供幫助指引help.jsp10后臺(tái)入口系統(tǒng)后臺(tái)登錄入口Sys/index.jsp11公共文件引用主要用于所有公共文件的引用common.jsp4.1.2前臺(tái)模塊首頁(yè)點(diǎn)餐系統(tǒng)的首頁(yè)就像一個(gè)人的臉面一樣,是展現(xiàn)個(gè)人魅力的一個(gè)重要環(huán)節(jié),所以首頁(yè)的項(xiàng)目設(shè)計(jì)也是至關(guān)重要的,一個(gè)首頁(yè)界面的設(shè)計(jì)對(duì)于系統(tǒng)的推廣和使用舒適度都很重要,我們首頁(yè)主要采用紅色元素為主調(diào)色,搭配著白色,這樣能給人一種愉悅感。首頁(yè)的導(dǎo)航欄中的各種導(dǎo)航信息可以讓用戶第一時(shí)間獲取相應(yīng)的信息,導(dǎo)航欄中主要包括菜單、我的菜單、聯(lián)系我們、關(guān)于我們、登錄、注冊(cè)、后臺(tái)入口以及購(gòu)物車等信息。只要項(xiàng)目一運(yùn)行系統(tǒng)默認(rèn)的頁(yè)面就是首頁(yè)index.jsp,首頁(yè)的主要功能包括一個(gè)搜索框和一個(gè)下拉選擇框,下拉選擇框包括全部、未使用、已使用三種餐桌選擇信息。下拉框select標(biāo)簽下包括三個(gè)option選項(xiàng)值分別為全部、未使用、已使用。如果用戶點(diǎn)擊select標(biāo)簽下的三個(gè)選項(xiàng)值中任意一個(gè)時(shí),頁(yè)面加載就會(huì)將狀態(tài)值傳給js下的function()函數(shù),如果option的value值等于用戶選擇的,那么餐桌狀態(tài)tableStatus就會(huì)被選中,通過(guò)select標(biāo)簽屬性onchange調(diào)用js函數(shù)functiondataChange(obj),然后頁(yè)面跳轉(zhuǎn)就會(huì)將值傳給接入層IndexServlet.java里面的service方法下request.setAttribute("tableStatus",tableStatus)來(lái)保存餐桌狀態(tài)信息。如果用戶在form表單輸入框中輸入想要選擇的餐桌,點(diǎn)擊【提交】按鈕觸發(fā)action屬性跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面,然后里面的input標(biāo)簽信息通過(guò)name屬性傳遞給接入層IndexServlet.java里面,然后在接入層的service方法里面使用request.getParameter()接收name參數(shù)值,然后調(diào)用服務(wù)層service再調(diào)用持久層dao里面的findDinnerTables()方法并將相關(guān)信息返回給接入層,最后通過(guò)request.setAttribute("tableStatus",tableStatus)l來(lái)保存后臺(tái)取出來(lái)的餐桌狀態(tài)信息,然后傳給前臺(tái)頁(yè)面。餐桌信息主要顯示在搜索框下面,餐桌顯示框主要采用的是一個(gè)div元素,顯示出來(lái)的是一種藍(lán)色邊框白底的一個(gè)矩形框,搜索框在后臺(tái)和餐桌查找進(jìn)行了代碼綁定,在前臺(tái)jsp頁(yè)面用c標(biāo)簽接收接入層IndexServlet.java傳遞回的餐桌信息,使用c標(biāo)簽里面的forEach函數(shù)語(yǔ)句綁定進(jìn)行顯示。綜上來(lái)看首頁(yè)能夠讓用戶簡(jiǎn)單、快速的上手,很容易滿足用戶自身的需求,所以前臺(tái)客戶端首頁(yè)的運(yùn)行效果圖如圖4-2和圖4-3所示。圖4-2前臺(tái)首頁(yè)運(yùn)行效果圖1圖4-3前臺(tái)首頁(yè)運(yùn)行效果圖24.1.3前臺(tái)用戶登錄管理在系統(tǒng)的前臺(tái)首頁(yè)的頂部右側(cè)灰色導(dǎo)航欄出提供了登錄入口,通過(guò)點(diǎn)擊【登錄】按鈕,觸發(fā)form表單里面的action屬性發(fā)送請(qǐng)求跳轉(zhuǎn)到登錄頁(yè)面login.jsp。當(dāng)用戶點(diǎn)擊登錄按鈕是就會(huì)觸發(fā)form表單的onsubmit事件,這時(shí)就會(huì)調(diào)用js的functionsubmitTable()功能函數(shù),判斷用戶是否輸入用戶名和密碼,如其中一個(gè)未輸入,則不需要提交表單中的內(nèi)容到數(shù)據(jù)庫(kù)。如果符合要求使用document.getElementById("loginform").submit()提交表單,將信息傳送到接入層LoginServlet.java里面的service方法中使用request.getParameter()接收表單里面name屬性值。然后判斷傳入的密碼和賬戶再調(diào)用服務(wù)層,服務(wù)層再調(diào)用持久層里面的findByLoginNameAndPass()方法,查詢數(shù)據(jù)庫(kù)里面的賬戶和密碼,將查詢的信息返回到接入層。如果輸入的賬戶密碼和數(shù)據(jù)庫(kù)查詢的信息一致登錄成功。如果是新用戶就需要先注冊(cè),用戶可以點(diǎn)擊表單末尾【現(xiàn)在注冊(cè)】鏈接,頁(yè)面直接跳轉(zhuǎn)到注冊(cè)頁(yè)面進(jìn)行個(gè)人信息注冊(cè)。系統(tǒng)默認(rèn)登錄后顯示的頁(yè)面是首頁(yè)index.jsp,如果當(dāng)前用戶輸入的用戶信息錯(cuò)誤,系統(tǒng)會(huì)通過(guò)login.jsp中的javascript的submitTable()函數(shù)進(jìn)行信息判斷并且提示相應(yīng)的錯(cuò)誤信息。登錄密碼的時(shí)候,點(diǎn)擊記住密碼,系統(tǒng)默認(rèn)記住的時(shí)間是7天內(nèi),數(shù)據(jù)將會(huì)保存在Cook中,以后直接點(diǎn)擊登錄就可以了,用戶的登錄部分界面如圖4-4所示。圖4-4用戶登錄頁(yè)面用戶登錄界面的表單設(shè)計(jì)的主要是通過(guò)搜集用戶輸入到表單的信息并且通過(guò)JavaScript的自定義函數(shù)submitTable()來(lái)判斷驗(yàn)證用戶登錄的信息是否正確。用戶登錄界面表單設(shè)計(jì)的重要元素如下表4-2所示。表4-2用戶登錄頁(yè)面重要表單元素名稱元素類型含義重要屬性form1form表單action="${pageContext.request.contextPath}/app/login.do"inputtext用戶名size="20"inputpassword密碼Size="20"inputcheckbox記住密碼value="reme"inputsubmit提交onclick="submitTable()"value="登錄"用戶進(jìn)行登錄之后就可以進(jìn)行點(diǎn)餐,搜索等相應(yīng)功能的操作了。用戶登錄的程序流程圖如圖4-4所示。圖4-4用戶登錄程序流程圖4.1.4前臺(tái)用戶注冊(cè)及記住密碼功能用戶注冊(cè)的導(dǎo)航鏈接主要是位于系統(tǒng)首頁(yè)右上方灰色導(dǎo)航欄處,如果是新用戶需要點(diǎn)擊【注冊(cè)】按鈕觸發(fā)相應(yīng)的事件,頁(yè)面就會(huì)跳轉(zhuǎn)到注冊(cè)頁(yè)面register.jsp,用戶就可以在輸入框中輸入相應(yīng)的信息,如果用戶想要按【注冊(cè)】按鈕,需要將同意條款的checkbox的單選框選上,選上后就可以點(diǎn)擊注冊(cè)按鈕了。當(dāng)用戶向輸入框輸入數(shù)據(jù)后調(diào)用js中的functionformOnblur(id)函數(shù)通過(guò)輸入框的id獲取當(dāng)前需要校驗(yàn)的輸入框的值,然后通過(guò)$.ajax同步請(qǐng)求發(fā)送請(qǐng)求到后臺(tái)數(shù)據(jù)庫(kù)中,校驗(yàn)登錄名是否已經(jīng)在數(shù)據(jù)庫(kù)存在,如果存在就不能夠重復(fù)注冊(cè),用戶需要重新輸入用戶名。輸入框輸入的值通過(guò)id傳入到函數(shù)functionformOnblur(id)中進(jìn)行格式校驗(yàn),如何不符合規(guī)定的格式,輸入框?qū)?huì)出現(xiàn)相應(yīng)的提示信息。如果所有的輸入信息符合要求后,選擇上同意條款的checkbox單選框,然后用戶直接點(diǎn)擊【注冊(cè)】按鈕,直接觸發(fā)注冊(cè)提交按鈕的onclick事件,然后調(diào)用js的functiononRegister()函數(shù),獲取所有輸入框的ID,遍歷所有輸入框的ID,如果輸入框的格式符合要求就提交表單document.getElementById("registerform").submit()返回給form表單,然后form表單的action屬性發(fā)送請(qǐng)求處理類給接入層RegisterServlet.java里面的service()方法,然后方法里面通過(guò)request.getParameter()接收前臺(tái)輸入框里面的name值,然后通過(guò)if語(yǔ)句判斷登錄名等各種信息是否在數(shù)據(jù)庫(kù)中存在。如果不存在就將注冊(cè)信息通過(guò)調(diào)用服務(wù)層service,服務(wù)層再調(diào)用持久層UserDaoImpl.java中里面的save()方法,將所有的注冊(cè)信息保存在數(shù)據(jù)庫(kù)中,如果注冊(cè)成功后信息返回到接入層,接入層通過(guò)request.getRequestDispatcher("/WEB-INF/jsp/sys/login.jsp").forward(request,response)語(yǔ)句直接跳轉(zhuǎn)到登錄頁(yè)面進(jìn)行登錄。如果注冊(cè)失敗后信息返回到接入層,接入層通過(guò)request.getRequestDispatcher("/WEB-INF/jsp/sys/register.jsp").forward(request,response)語(yǔ)句再次定位到注冊(cè)頁(yè)面,用戶信息需要重新注冊(cè)。用戶頁(yè)面注冊(cè)效果圖如圖4-11所示。圖4-11用戶注冊(cè)頁(yè)面圖4.1.5前臺(tái)用戶訂餐管理功能點(diǎn)餐系統(tǒng)作為用戶的客戶端的主要功能就是為用戶提供人性化服務(wù),滿足用戶的基本需求。用戶注冊(cè)成功后進(jìn)入首頁(yè)index.jsp后,如果用戶想進(jìn)行訂餐,可以在主界面的搜索框內(nèi)選擇未使用的餐桌,然后在未使用的餐桌里任選一個(gè)餐桌,獲取餐桌的id和餐桌名,頁(yè)面跳轉(zhuǎn)到menu.jsp中,點(diǎn)擊餐桌后頁(yè)面發(fā)送請(qǐng)求處理類給接入層MenuServlet.java的service方法,通過(guò)request.getParameter方式獲取餐桌的id的參數(shù)值,然后新建個(gè)服務(wù)層對(duì)象,調(diào)用服務(wù)層服務(wù)層調(diào)用持久層,通過(guò)餐桌的id在數(shù)據(jù)表dinner_table里面查詢餐桌,將查詢到的餐桌信息返回到接入層用request.setAttribute("dinnerTable",dinnerTable)接收數(shù)據(jù)庫(kù)查詢出來(lái)的餐桌數(shù)據(jù)。然后新建一個(gè)訂單的對(duì)象,判斷該餐桌是否有未付款的訂單,如有則跳轉(zhuǎn)到訂單詳情頁(yè)面去付款,如沒(méi)有則跳轉(zhuǎn)到正常的點(diǎn)餐頁(yè)面。然后在新建一個(gè)List<FoodType>對(duì)象集合,查詢所有未刪除的菜系名字,默認(rèn)查詢所有菜系中第一個(gè)未刪除菜系的菜品。然后在新建一個(gè)菜品的對(duì)象集合List<Food>調(diào)用服務(wù)層,服務(wù)層調(diào)用持久層中findByFoodTypeId()方法,在food表中根據(jù)菜系ID查詢未刪除的菜品。然后將信息返回到前臺(tái)菜單頁(yè)面menu.jsp。菜單左側(cè)導(dǎo)航欄是菜系,右側(cè)是菜系id所對(duì)應(yīng)的菜品信息。如果用戶想要點(diǎn)餐就先要占位,我們需要在menu.jsp的餐桌購(gòu)物車下點(diǎn)擊【占位】按鈕,觸發(fā)點(diǎn)擊事件onclick="orderDinner(${dinnerTable.id},0)調(diào)用js函數(shù)functionorderDinner(dinnerTableId,tableStatus)頁(yè)面重定向到后臺(tái)DinnerTableServlet.java通過(guò)servce()方法調(diào)用服務(wù)層持久層,通過(guò)持久層中update()方法更改餐桌的狀態(tài)變?yōu)?,更改成功后,占位成功。將更改的狀態(tài)返回到前臺(tái)menu.jsp中。然后用戶可以選擇自己喜歡的菜品,如果用戶想要將自己喜歡的菜品添加到購(gòu)物車中,用戶直接將鼠標(biāo)放在菜品上面,點(diǎn)擊【購(gòu)物車】按鈕,就會(huì)觸發(fā)購(gòu)物車的點(diǎn)擊事件onclick,點(diǎn)擊事件調(diào)用js的functionaddShopCar((foodId)函數(shù),將菜品添加到購(gòu)物車中,通過(guò)HttpSessionsession=request.getSession()用于左邊餐桌的購(gòu)物車展示,用Map<Integer,Integer>shopCar=(Map<Integer,Integer>)session.getAttribute(id)表示餐桌的id獲取其購(gòu)物車,購(gòu)物車key為商品id,value為購(gòu)買數(shù)量。然后拿到當(dāng)前餐桌購(gòu)物車中所有的菜品id,購(gòu)買數(shù)量和購(gòu)物車中所有的商品總金額。然后將后臺(tái)取出來(lái)的菜系數(shù)據(jù)、菜品數(shù)據(jù)、商品數(shù)量及金額數(shù)據(jù)保存在request中,頁(yè)面通過(guò)request.getRequestDispatcher("/WEB-INF/jsp/app/menu.jsp").forward(request,response)傳到左側(cè)的餐桌購(gòu)物車中,所有的信息將顯示在頁(yè)面上。當(dāng)用戶選購(gòu)?fù)瓴似泛螅脩艨梢渣c(diǎn)擊【下單】和【取消占位】按鈕,如果用戶點(diǎn)擊【下單】按鈕,觸發(fā)點(diǎn)擊事件頁(yè)面跳轉(zhuǎn)到訂單詳情頁(yè)面orderList.jsp進(jìn)行付款,付款后成功后用戶就可以在餐桌前等候服務(wù)員將菜上到桌上。用戶不想要就餐或者不想占這張餐桌,用戶可以直接點(diǎn)擊【取消占位】按鈕即可。訂餐頁(yè)面如圖4-5,點(diǎn)餐的程序流程圖如圖4-6所示。圖4-5用戶訂餐頁(yè)面圖圖4-6訂餐程序流程圖4.1.6前臺(tái)菜單查看功能用戶登錄系統(tǒng)后,如果不想占座點(diǎn)餐,只想查看菜單,這時(shí)用戶可以直接點(diǎn)擊導(dǎo)航欄中的【菜單】按鈕,此時(shí)觸發(fā)按鈕事件,發(fā)送請(qǐng)求類頁(yè)面會(huì)直接跳轉(zhuǎn)到接入層menuList.java里面的service方法里面,用request.getParameter(foodTypeId)接收前臺(tái)傳過(guò)來(lái)的菜系id,再新建一個(gè)查找菜系的<FoodType>類型的list對(duì)象集合和一個(gè)菜品List<Food>對(duì)象集合,然后在調(diào)用服務(wù)層,服務(wù)層調(diào)用持久層中的findAll()和findByFoodTypeId()方法然后查出未刪除的菜系id及id所對(duì)應(yīng)的未刪除的菜品信息,并將信息返回到接入層用request.setAttribute("foodTypes",foodTypes)request.setAttribute("foods",foods)保存數(shù)據(jù)庫(kù)里面查找出的菜系和菜品的信息,通過(guò)request.getRequestDispatcher("/WEB-INF/jsp/app/menuList.jsp").forward(request,response)將后臺(tái)數(shù)據(jù)傳送給前臺(tái)menuList.jsp頁(yè)面,前臺(tái)左側(cè)的菜系導(dǎo)航欄采用C標(biāo)簽<c:forEachitems="${foodTypes}"var="foodType">遍歷出后臺(tái)未刪除的菜系,并將信息顯示出來(lái)。右側(cè)菜單信息使用C標(biāo)簽<c:forEachitems="${foods}">顯示出菜系相關(guān)聯(lián)的菜品信。右側(cè)菜品采用jQuery中的特效顯示菜品詳細(xì)信息,當(dāng)鼠標(biāo)沒(méi)有放在菜品頁(yè)面上時(shí),頁(yè)面直接顯示的是菜品信息,當(dāng)鼠標(biāo)放在菜品圖片上是,頁(yè)面翻轉(zhuǎn)顯示菜品信息介紹和菜品金額以及加入購(gòu)物車的按鈕。前臺(tái)菜單查看如圖4-7所示。圖4-7菜單列表4.1.7前臺(tái)訂單查看頁(yè)面如果用戶想要查看自己的訂單,他可以點(diǎn)擊【我的訂單】按鈕查看,頁(yè)面發(fā)送請(qǐng)求到接入層OrderServlet.jsp里,在接入層OrderServlet.jsp里面service()方法中定義一個(gè)List類型的訂單對(duì)象查詢所有的訂單信息,通過(guò)接入層的信息請(qǐng)求調(diào)用服務(wù)層,服務(wù)層在調(diào)用持久層,持久層通過(guò)sql語(yǔ)句查詢所有的訂單信息,然后返回傳到接入層中,接入層然后在返回給orderList.jsp前端的訂單列表頁(yè)面。訂列表單信息主要包括桌號(hào)、訂單編號(hào)、下單時(shí)間、支付狀態(tài)和點(diǎn)菜的份數(shù)。頁(yè)面顯示所有的訂單信息,其部分效果如圖4-8。圖4-8訂單列表4.1.8信息反饋如果用戶對(duì)餐廳一些不好的地方需要向餐廳進(jìn)行反饋,用戶可以直接點(diǎn)擊導(dǎo)航欄上的【聯(lián)系我們】的鏈接頁(yè)面發(fā)送請(qǐng)求直接跳轉(zhuǎn)到fankui.jsp信息反饋?lái)?yè)面,然后用戶就可以直接在表單上填入想應(yīng)的信息直接點(diǎn)擊【提交】按鈕就可以了如圖4-9所示。圖4-9信息反饋4.2后臺(tái)部分后臺(tái)管理客戶端主要是由指定的管理員來(lái)使用的,后臺(tái)管理部分主要包含對(duì)餐廳的一些有效的數(shù)據(jù)進(jìn)行管理,提高工作效率,后臺(tái)主要包括餐桌信息管理、菜系信息管理、會(huì)員信息管理、菜品信息管理、訂單信息管理、信息反饋管理等。1、后臺(tái)主要功能模塊介紹餐桌信息管理:主要是餐廳的餐桌信息進(jìn)行管理,主要包括餐桌的添加、指定餐桌的搜索和相關(guān)餐桌的刪除。菜系信息管理:主要包括對(duì)相關(guān)菜系的添加、刪除、搜索和菜系信息的更新。會(huì)員信息管理:主要查看相關(guān)用戶的基本信息。訂單信息管理:查看和刪除顧客下單的訂單詳細(xì)信息,但不能夠修改顧客的訂單信息。菜品信息管理:主要對(duì)相關(guān)菜系的菜品進(jìn)行詳細(xì)信息的添加、更新刪除相關(guān)菜品信息,而且還可以搜索指定的菜品。2、后臺(tái)文件結(jié)構(gòu)系統(tǒng)后臺(tái)主要包括20個(gè)相關(guān)文件,其相關(guān)文件的結(jié)構(gòu),如圖4-10所示。圖4-10后臺(tái)文件結(jié)構(gòu)圖4.2.1后臺(tái)用戶登錄,注冊(cè)功能在系統(tǒng)的前端的導(dǎo)航欄中為管理員提供了后臺(tái)進(jìn)入按鈕,點(diǎn)擊【進(jìn)入】頁(yè)面發(fā)送請(qǐng)求跳轉(zhuǎn)到login.jsp頁(yè)面,管理員通過(guò)后臺(tái)的管理能夠?qū)崟r(shí)的對(duì)整個(gè)餐廳服務(wù)做出管理,這樣餐廳能夠提高效率,而且可以讓用戶享受更好的體驗(yàn),后臺(tái)的登錄和注冊(cè)的機(jī)制和前臺(tái)的登錄注冊(cè)機(jī)制是一樣的,所有在這里不多的贅述,后臺(tái)登錄頁(yè)面效果如圖4-12所示,后臺(tái)頁(yè)面效果如圖4-13所示。圖4-11后臺(tái)登錄頁(yè)面效果圖圖4-12后臺(tái)注冊(cè)頁(yè)面效果圖4.2.2后臺(tái)餐桌管理作為訂餐系統(tǒng)后臺(tái),如果管理員想要對(duì)餐桌進(jìn)行管理直接點(diǎn)擊左側(cè)的導(dǎo)航欄【餐桌管理】按鈕,頁(yè)面發(fā)送請(qǐng)求給接入層DinnerTableServlet.Java里面的service()方法,通過(guò)語(yǔ)句request.getRequestDispatcher("/WEB-INF/jsp/sys/dinnerTableList.jsp").forward(request,response)頁(yè)面跳轉(zhuǎn)到dinnerTableList.jsp頁(yè)面,將餐桌未刪除的餐桌信息顯示出來(lái)。如果用戶想要直接搜索具體的餐桌,可以直接在輸入框中輸入餐桌名稱,通過(guò)后臺(tái)處理在數(shù)據(jù)表dinner_table中查詢出餐桌信息,并返回到前臺(tái)頁(yè)面。如果用戶想要搜索刪除、未刪除、使用、未使用的餐桌,管理員可以在下拉選擇框select里面進(jìn)行選擇,通過(guò)select的onchange事件調(diào)用js相應(yīng)的函數(shù),然后通過(guò)相應(yīng)標(biāo)簽的name屬性將值傳到后臺(tái)接入層用request.getParameter()接收值。然后通過(guò)相應(yīng)語(yǔ)句調(diào)用持久層在數(shù)據(jù)表dinner_table中將信息查找出來(lái),返回給前臺(tái)頁(yè)面。如果用戶想要?jiǎng)h除餐桌數(shù)據(jù)直接點(diǎn)擊餐桌后面的【刪除】按鈕即可。前臺(tái)的數(shù)據(jù)主要通過(guò)C標(biāo)簽的forEach將后臺(tái)傳過(guò)來(lái)的數(shù)據(jù)集合循環(huán)的展示在頁(yè)面上。餐桌管理頁(yè)面效果圖如圖4-13所示。如果管理員想要添加餐桌,直接點(diǎn)擊左上方的【添加】按鈕,頁(yè)面發(fā)送請(qǐng)求處理跳轉(zhuǎn)到dinnerTableAdd.jsp頁(yè)面,用戶可以在輸入框輸入想要添加的餐桌信息,當(dāng)用戶點(diǎn)擊【添加】按鈕時(shí)觸發(fā)onclick事件,調(diào)用js里面的functionaddSubmit()函數(shù)通過(guò)ajax判斷輸入的輸入是否在數(shù)據(jù)庫(kù)里面存在,如果存在將會(huì)出現(xiàn)已存在的提示信息,否則將輸入的信息直接插入到數(shù)據(jù)庫(kù)表中,餐桌信息添加成功。餐桌添加頁(yè)面效果圖如圖4-14所示。圖4-13餐桌管理頁(yè)面效果圖圖4-14餐桌添加頁(yè)面效果圖4.2.3后臺(tái)菜系管理管理員進(jìn)入后臺(tái)想要對(duì)菜系進(jìn)行管理,直接點(diǎn)擊左側(cè)導(dǎo)航欄中的【菜系管理】按鈕,按鈕觸發(fā)事件頁(yè)面發(fā)送請(qǐng)求跳轉(zhuǎn)到foodTypeList.jsp菜系管理頁(yè)面,整個(gè)頁(yè)面默認(rèn)顯示全部未刪除的菜系信息。如果用戶想要查看已刪除或者未刪除的菜系,直接點(diǎn)擊下拉框進(jìn)行選擇搜索。如果用戶想要添加菜系,直接點(diǎn)擊【添加】按鈕頁(yè)面,后臺(tái)發(fā)送請(qǐng)求頁(yè)面直接跳轉(zhuǎn)到foodTypeAdd.jsp菜系添加頁(yè)面,管理員可以直接在該頁(yè)面添加自己想要添加的菜系名稱。如果用戶想要?jiǎng)h除某個(gè)菜系,直接在該菜系名后點(diǎn)擊【刪除】按鈕,如果用戶想要更改菜系信息,直接點(diǎn)擊該菜系名后面的【更新】按鈕頁(yè)面直接跳轉(zhuǎn)到foodTypeUpdate.jsp信息更新頁(yè)面。菜系管理頁(yè)面效果圖如圖4-15所示,菜系添加頁(yè)面效果圖如圖4-16所示。圖4-15菜系管理頁(yè)面效果圖圖4-16菜系添加頁(yè)面效果圖4.2.4后臺(tái)菜品管理管理員成功登錄系統(tǒng)后可以查看后臺(tái)顯示的所有信息,管理員對(duì)菜品實(shí)現(xiàn)管理,首先需要點(diǎn)擊左側(cè)的導(dǎo)航欄的按鈕【菜品管理】頁(yè)面發(fā)送請(qǐng)求給接入層跳轉(zhuǎn)到foodList.jsp頁(yè)面,頁(yè)面將顯示所有的菜品詳細(xì)信息,里面數(shù)據(jù)傳遞的原理上節(jié)以及陳述過(guò)了,在此不多贅述。管理員如果想要查看具體的菜品直接在搜索框輸入點(diǎn)擊【搜索】按鈕即可,也可以通過(guò)下拉框分別查看各種菜系下的菜品信息,如果列表中沒(méi)有菜品信息列表將出現(xiàn)提示信息“滿足當(dāng)前條件的菜品沒(méi)有找到”。如果管理員想要增加某菜系的菜品,直接點(diǎn)擊【添加】按鈕,頁(yè)面發(fā)送請(qǐng)求直接跳轉(zhuǎn)到菜品添加foodAdd.jsp頁(yè)面,此時(shí)管理員可以添加菜系類型、菜名、價(jià)格、圖片、折扣以及備注信息,其中菜系、菜名、價(jià)格、圖片是必填項(xiàng),通過(guò)這些信息展示就可以方便用戶點(diǎn)餐,其中同一菜系的菜品不可重復(fù)添加,重復(fù)添加將會(huì)出現(xiàn)提示信息,添加不成功。列表頁(yè)面每個(gè)菜品信息對(duì)應(yīng)的有兩個(gè)操作按鈕分別為更新和刪除,如果管理員想要下架某種菜品直接點(diǎn)擊【刪除】按鈕即可,如果管理員想要對(duì)菜品的信息進(jìn)行修改點(diǎn)擊【更新】按鈕即可,頁(yè)面就會(huì)跳轉(zhuǎn)到foodUpdate.jsp頁(yè)面。菜品列表效果如圖4-17所示,添加菜品頁(yè)面效果如圖4-18所示。圖4-17菜品列表效果圖圖4-18添加菜品頁(yè)面效果圖4.2.5訂單管理管理員如果想要對(duì)訂單信息查看和了解,直接點(diǎn)擊主界面左側(cè)的導(dǎo)航欄【訂單管理】按鈕頁(yè)面直接跳轉(zhuǎn)到orderList.jsp訂單列表頁(yè)面,列表將顯示所有餐桌的訂單詳細(xì)信息如圖4-19所示。如果用戶想要搜索具體的某一餐桌的訂單信息,自己點(diǎn)擊左上角的下拉框。如果顧客想要再次添加菜品且未付款,直接點(diǎn)擊訂單下的加菜按鈕頁(yè)面就會(huì)跳轉(zhuǎn)到orderAddFood.jsp訂單加菜頁(yè)面,選擇想要添加的菜品即可如圖4-20所示。如果用戶想要打印菜單,管理員直接點(diǎn)擊菜單打印頁(yè)面直接跳轉(zhuǎn)到printOrder.jsp打印頁(yè)面。管理員通過(guò)對(duì)訂單列表的信息分析,就可以分析顧客喜歡的菜品和菜系,從而有針對(duì)性的提供顧客服務(wù)水平,提高服務(wù)質(zhì)量。通知也可以對(duì)訂單背后的各種信息進(jìn)行分析,實(shí)行獎(jiǎng)勵(lì)制度,提高工作效率。圖6-19銷售訂單管理頁(yè)面效果圖圖4-20訂單加菜圖4.2.6信息反饋如果管理員想要查看顧客對(duì)餐廳的反饋信息,管理員直接點(diǎn)擊左側(cè)的導(dǎo)航欄【信息反饋】按鈕頁(yè)面直接跳轉(zhuǎn)到suggestion.jsp信息反饋?lái)?yè)面,整個(gè)頁(yè)面顯示已存在反饋者的信息列表如圖4-21所示。如果管理員想要查看具體的信息直接查看反饋者后面查看的按鈕進(jìn)行查看如圖4-22所示。管理員可以根據(jù)反饋者反饋的具體信息進(jìn)行整理,然后對(duì)餐廳提出具體的整改建議,從而提高餐廳的效益和服務(wù)水平,讓顧客在更加舒適的環(huán)境中進(jìn)行就餐享受。圖4-21銷售訂單管理頁(yè)面效果圖圖4-22管理員查看信息圖4.2.7用戶管理管理員進(jìn)入后臺(tái)管理系統(tǒng)之后如果想要對(duì)用戶管理,直接點(diǎn)擊左側(cè)導(dǎo)航欄中的【用戶管理】按鈕頁(yè)面跳轉(zhuǎn)到userList.jsp用戶管理列表頁(yè)面如圖4-23所示,如果用戶想要對(duì)某一個(gè)信息信息搜索,可以直接在左上角處進(jìn)行想應(yīng)信息的輸入搜索。如果管理員想要添加用戶信息,直接點(diǎn)擊【添加】按鈕頁(yè)面直接跳轉(zhuǎn)到userAdd.jsp用戶添加頁(yè)面如圖4-24所示。如果用戶想要對(duì)想要用戶進(jìn)行刪除和信息更新,管理員可以直接點(diǎn)擊所在用戶信息后面的【更新】和【刪除】按鈕進(jìn)行相應(yīng)的操作實(shí)現(xiàn)相應(yīng)的功能。圖4-23用戶管理列表圖圖4-24新用戶添加圖
第5章系統(tǒng)測(cè)試經(jīng)過(guò)大學(xué)五年的學(xué)習(xí)我們可以清楚地知道軟件編碼結(jié)束后,需要對(duì)其軟件項(xiàng)目進(jìn)行系統(tǒng)的測(cè)試,因?yàn)檫@是保證軟件質(zhì)量和用戶使用人性化的一個(gè)重要的手段,也是對(duì)其進(jìn)行一個(gè)綜合測(cè)試和評(píng)分的一個(gè)原則。系統(tǒng)測(cè)試的主要目的是用最少的時(shí)間和人力找出系統(tǒng)中潛在存在的各種錯(cuò)誤,以便達(dá)到客戶的預(yù)期需求。5.1測(cè)試原則本項(xiàng)目采用的測(cè)試原則主要是盡早的、不斷的軟件測(cè)試原則。這種的測(cè)試原則主要是貫穿整個(gè)系統(tǒng)的開(kāi)發(fā)階段,把每個(gè)功能模塊看做是一個(gè)獨(dú)立的開(kāi)發(fā)階段,所以為了減少時(shí)間和人力成本,我們需要在軟件開(kāi)發(fā)的每個(gè)階段和每個(gè)獨(dú)立的功能模塊進(jìn)行不斷的運(yùn)行測(cè)試,一實(shí)現(xiàn)每個(gè)功能模塊的成功運(yùn)行,從而提高系統(tǒng)的可靠性和質(zhì)量。5.2測(cè)試進(jìn)度在系統(tǒng)測(cè)試的過(guò)程中,我們需要制定好嚴(yán)格意義上的測(cè)試時(shí)間進(jìn)度表,寫(xiě)好測(cè)試結(jié)果,確保測(cè)試結(jié)果和預(yù)期效果相符合。減少系統(tǒng)開(kāi)發(fā)的時(shí)間成本。寫(xiě)好測(cè)試的數(shù)據(jù)以及案例,并對(duì)測(cè)試數(shù)據(jù)進(jìn)行設(shè)計(jì)邏輯的處理,得出期望結(jié)果。具體的時(shí)間測(cè)試進(jìn)度表如表5-1所示。表5-1測(cè)試進(jìn)度時(shí)間表測(cè)試活動(dòng)系統(tǒng)測(cè)試時(shí)間調(diào)試結(jié)果前臺(tái)首頁(yè)2021.4.12正常用戶登錄注冊(cè)2021.4.19正常用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆江蘇省南通市通州區(qū)金沙中學(xué)高三下學(xué)期調(diào)研測(cè)試歷史試題(含答案)
- 2026年初中歷史綜合題專項(xiàng)訓(xùn)練試卷
- 教師個(gè)人年度思想工作總結(jié)2026(3篇)
- 醫(yī)療廢物基礎(chǔ)考試題及答案
- 法醫(yī)DNA專業(yè)試題及答案分享
- 五年級(jí)下冊(cè)數(shù)學(xué)北師大含答案 體積單位2
- 分級(jí)照護(hù)專項(xiàng)試題與對(duì)應(yīng)答案
- 臨時(shí)設(shè)施施工設(shè)計(jì)方案
- 2026中國(guó)新能源汽車行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃合理研究報(bào)告
- 2026中國(guó)數(shù)碼相機(jī)行業(yè)現(xiàn)狀分析供需趨勢(shì)調(diào)研及投資發(fā)展評(píng)估策劃報(bào)告
- 制漿造紙工藝課件
- 三級(jí)醫(yī)院耳鼻喉科運(yùn)行管理規(guī)范
- 民用建筑方案設(shè)計(jì)工作量比例
- 2025數(shù)據(jù)基礎(chǔ)設(shè)施參考架構(gòu)
- 審計(jì)合同補(bǔ)充協(xié)議范本
- 危險(xiǎn)性較大的分部分項(xiàng)工程專項(xiàng)施工方案嚴(yán)重缺陷清單(試行)
- 超導(dǎo)材料制備與特性-深度研究
- 胎盤(pán)、死嬰、死胎處理管理制度及處置流程
- 食品加工安全生產(chǎn)管理制度
- 2024年江西省中考英語(yǔ)試卷試題真題及答案詳解(精校打印)
- 電工管理制度電工管理制度辦法
評(píng)論
0/150
提交評(píng)論