【《基于JSP的網上訂餐系統(tǒng)的設計與實現(xiàn)》9000字】_第1頁
【《基于JSP的網上訂餐系統(tǒng)的設計與實現(xiàn)》9000字】_第2頁
【《基于JSP的網上訂餐系統(tǒng)的設計與實現(xiàn)》9000字】_第3頁
【《基于JSP的網上訂餐系統(tǒng)的設計與實現(xiàn)》9000字】_第4頁
【《基于JSP的網上訂餐系統(tǒng)的設計與實現(xiàn)》9000字】_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第I頁基于JSP的網上訂餐系統(tǒng)的設計與實現(xiàn)摘要隨著計算機科學技術的快速發(fā)展,電子商務的發(fā)展,影響各行各業(yè)的發(fā)展。近年來,人們生活速度的加快,網上訂餐已經成為人們日常生活中越來越熱枕的方式。通過網上訂餐,人們不僅可以實現(xiàn)在線選餐、送貨上門的服務,而且也可以避免浪費大量的時間。網上訂餐是繼網上購物以來又一新型的電子商務形式。通過網上訂餐的形式,可以快速在線訂購自己喜歡的美食,方便、快捷。本文從用戶的需求出發(fā),結合電子商務行業(yè)系統(tǒng)的發(fā)展特點,先了解了網上訂餐背景,解決了菜品的發(fā)布、菜單選擇以及總體的核算、菜品分類等問題。然后,介紹了與這篇文章相關的系統(tǒng)開發(fā)技術,利用當下主流框架SSM,并用功能強大的MySQL支持數(shù)據(jù)庫。關鍵詞:網上訂餐,Java,MySQL目錄1緒論 11.1開發(fā)背景與意義 11.2研究現(xiàn)狀 11.3論文內容及結構 12系統(tǒng)開發(fā)技術介紹 32.1開發(fā)技術介紹 32.1.1Java簡介 32.2.2JSP簡介 32.2.1SSM的介紹 33系統(tǒng)分析 63.1系統(tǒng)可行性分析 63.2系統(tǒng)需求分析 73.3系統(tǒng)需求分析 73.4系統(tǒng)非功能性需求分析 84系統(tǒng)設計 104.1系統(tǒng)架構設計 104.2系統(tǒng)的總體構思 104.3數(shù)據(jù)庫設計 104.3.1概念模型設計 114.3.2數(shù)據(jù)庫表設計 135系統(tǒng)實現(xiàn) 165.1用戶注冊 165.2用戶登錄 165.3菜品展示 185.4菜品搜索 185.5菜品詳情展示 205.6生成訂單 215.7用戶留言 235.8管理員登陸 235.9用戶管理 255.10分類管理 265.11貨物管理 275.12訂單管理 285.13用戶的反饋管理 296系統(tǒng)測試 296.1系統(tǒng)測試 296.2系統(tǒng)維護 306.3測試目的 306.4測試實例 316.5測試結果 317結束語 32參考文獻 34附錄 351緒論1.1開發(fā)背景與意義本章主要對網上訂餐系統(tǒng)進行詳細的描述,較為完整地介紹了該系統(tǒng)的開發(fā)產生的條件,意義以及現(xiàn)在面臨的情況。近年來,隨著人們生活步伐的加快,越來越多的人們都會選擇網上訂餐,因此網上訂餐已經越來越受人們的歡迎。通過網上訂餐的方式,人們不僅可以通過電腦、手機等選擇自己想要選擇的食品,而且可以避免浪費大量的時間。就目前而言,像“美團”、“餓了么”等這些網上訂餐的平臺,擁有了很大的好評度。所以這次的畢業(yè)設計我的選題是“網上訂餐系統(tǒng)”,該系統(tǒng)的開發(fā)是與時俱進順應當今社會的潮流和趨勢,能夠滿足人們日常的需求。1.2研究現(xiàn)狀黃信洋指出伴隨著我們現(xiàn)代高科技的快速發(fā)展,計算機的應用在當代的生活中日益廣泛,已經逐漸深入人們的生活,網絡技術與各個服務行業(yè)的連接日漸加強,各種方便的軟件逐個被開發(fā)應用到現(xiàn)實生活中,在這樣的大前提下,各個服務行業(yè)的前景也被無限放大[1]。楊彤蕾指出隨著計算機和網絡的日趨發(fā)展,網上店鋪如雨后春筍般出現(xiàn),就連沃爾瑪,金拱門這一類老品牌的商家都開拓了自己的網上購物渠道,有調查表明:無論是中國還是西方國家,越來越的用戶已經習慣于網絡購物,人們的消費平臺逐漸開始向虛擬世界轉移,而網上訂餐是其中重要的一環(huán),發(fā)展網絡訂餐平臺已經成為了新的時代的新的需求[2]。1.3論文內容及結構本論文一共由六章組成,下面是對于各部分的描述:(1)緒論該節(jié)主要從對網上訂餐系統(tǒng)的產生的條件、實際的意義、還有以及系統(tǒng)的發(fā)展狀況進行的總結與敘述,同時我們也在系統(tǒng)的應用方面著手進行闡述。(2)系統(tǒng)的具體分析想要進行系統(tǒng)的具體分析,首先我們要先從用戶的需求分析出手,然后進行可行性分析、角色劃分、角色功能分析等。(3)系統(tǒng)設計我們針對系統(tǒng)的結構以及數(shù)據(jù)庫的方面入手,然后設計和實現(xiàn)出我們要做的網上訂餐系統(tǒng),我們還會用圖片等形式向大家展示出來,方便讀閱。(4)系統(tǒng)的實現(xiàn)開發(fā)出的系統(tǒng)的主要界面進行展示。(5)系統(tǒng)測試此章節(jié)是我們讓所作出的程序進入最后的測試階段,通過具體的測試發(fā)現(xiàn)問題,然后用來更新完善我們的系統(tǒng)。我們會針對不同的模塊設計出相應的測試用例,從而做到對系統(tǒng)的查漏補缺。(6)結束語該部分是對設計系統(tǒng)的過程中遇到的問題和解決方法的總結,對未來性的期望。2系統(tǒng)開發(fā)技術介紹2.1開發(fā)技術介紹2.1.1Java簡介Java是一款目前流行性很強的開發(fā)語言,無論在手機方面還是互聯(lián)網方面,Java都應用廣泛。這一款語言和C++很像,但Java摒棄了C++中很少使用的一些特征,繼續(xù)保持C++語言受人們喜歡的一些優(yōu)點:快速、安全。2.2.2JSP簡介JSP這一技術的引入,主要原因是為了彌補servlet不方便展示信息的缺點,但它在本質上來說,也還是一個servlet。利用JSP能夠使得開發(fā)出的程序具有動態(tài)、高性能的特點。在運行安裝tomcat,tomcat免費而且開源,所以利用JSP開發(fā)的程序費用方面不用考慮。除了這一點,JSP還有很多優(yōu)勢,這也是為什么選用JSP來開發(fā)本本系統(tǒng)的原因。(1)ASP有專用語言的限制,而JSP沒有,可用Java編寫,同時還有很強的可移植性能。(2)JSP還能對很多網頁格式進行支持。(3)在JSP程序開發(fā)中使用了Java,所以說,也有了Java的所有好處,包括編寫一次就能處處都使用、安全性能高等。2.2.1SSM的介紹Spring是一個輕量式、低侵入式的框架。這個框架可以減少開發(fā)的復雜程度,同時在去除此框架后,我們只需要更改一些配置信息就可以了,大大方便了我們的開發(fā)。SpringMVC模塊響應圖如圖2.1所示。圖2.1SpringMVC模塊響應圖Mybatis的三層功能架構:(1)基礎支持層:通過負責數(shù)據(jù)庫連接、配置加載、緩存處理和事務管理這些部分來為表層提供支持。(2)數(shù)據(jù)處理層:SQL語句的生成,并對其進行處理。(3)API接口層:給我們的開發(fā)提供了大量API接口,并和其他層共同對數(shù)據(jù)庫進行操作。下面是三層功能架構圖,如圖2-2所示。圖2.2MyBatis三層功能架構圖

3系統(tǒng)分析我們針對我們所對系統(tǒng)設計的功能做出相應的可行性的分析以及對客戶的需求分析。主要分析了我們這個系統(tǒng)中所實現(xiàn)的一些功能和對這個項目完成后能達到什么樣子的效果的展望。3.1系統(tǒng)可行性分析系統(tǒng)可行性分析工作就是對系統(tǒng)進行分析的全過程中必須要做的一個操作。它在進行系統(tǒng)設計與開發(fā)前的第一個環(huán)節(jié)。這個連接不僅僅是為了完成一個系統(tǒng),而是通過簡單的數(shù)據(jù)分析流程來對其進行可以及深入地研究。從任務開始,系統(tǒng)的設計是可行的,并且還可以將設計的系統(tǒng)直接放置在穩(wěn)定的服務器上。以下會從以下三個方面來入手。技術可行性在Java+MySQL的基礎上,然后通過知識的積累學習,學習和掌握spring框架。經過我們的分析和考慮,通過一定的研究和分析可以解決上述難點和問題。經濟可持續(xù)性研究我們所設計的這個系統(tǒng)的經濟效益是相對可觀的,我們在對項目的編寫、運維成本進行估計后,最后認為該系統(tǒng)在經濟上是可行的。拓展可行原則系統(tǒng)在開發(fā)中要考慮后期的維護,對于拓展性方面,代碼是否可以進行拓展和文本復用,隨著人們需求的不斷提高,系統(tǒng)也要結合實際進行不斷升級,保證系統(tǒng)拓展后可以正常使用,數(shù)據(jù)可以存儲大量信息。操作者如果需要添加、修改和刪除功能,如果系統(tǒng)拓展差的話,系統(tǒng)可能會奔潰,導致不必要的麻煩的產生,所有我們在開發(fā)前期就應該想到系統(tǒng)的拓展性能,必須能夠達到要求[11]。3.2系統(tǒng)需求分析網上訂餐系統(tǒng)市場的潛力巨大,改變傳統(tǒng)管理方式勢在必行,推出可行的系統(tǒng)也很緊迫。用戶的具體功能如下:用戶注冊:游客可以在注冊頁面注冊賬號。用戶登錄:輸入已經擁有的賬號進入。陳列菜品:使用者可以在我們的系統(tǒng)首頁面看到我們所陳列的美食。菜品搜索:我們的用戶可以根據(jù)自己中意的口味對菜品進行搜尋,從而找到適合自己的口味,方便了選擇困難癥的人群。商品詳情的查看:使用者可以在挑選商品的過程中對每個商品的細節(jié)進行觀看。生成訂單:我們的客戶在選擇好商品后下單,我們的系統(tǒng)要對此筆訂單開具證明(自動生成)并展現(xiàn)在用戶的頁面中。發(fā)布留言:用戶可以對管理員進行留言,有助于管理員更好的管理網站。下面是為了滿足管理員需求而需要實現(xiàn)的具體功能:(1)登錄功能:管理者可以通過登錄指令進入到網上訂餐系統(tǒng)的后臺界面。(2)管理功能:我們這個系統(tǒng)的管理功能分為四小塊兒:①對使用此網站的用戶的管理:管理者可通過后臺對用戶的信息進行增刪改查操作;②對網站中的商品進行有效的分類:使用者可以通過后臺管理系統(tǒng)對相同類型的菜品進行分類,同時直接出現(xiàn)在用戶的首頁中;③對商品的管理:管理者可以在后臺系統(tǒng)中對商品進行相應的操作,同時出現(xiàn)在用戶的首頁中;④對訂單的管理;⑤對用戶留言的管理。3.3系統(tǒng)需求分析用戶用例圖圖如圖3.1所示。圖3.1用戶用例圖管理員用例圖如圖3.2所示。圖3.2管理員用例圖3.4系統(tǒng)非功能性需求分析系統(tǒng)非功能分析是對除了功能結構以外的信息進行分析,一個系統(tǒng)設計很多方面,我們需要保證所有信息都完善、確保穩(wěn)定,能夠正常運行。1.數(shù)據(jù)安全可靠無亂碼。數(shù)據(jù)在系統(tǒng)中表演著至關重要的角色,它的完整與否與我們系統(tǒng)運行好壞休戚相關!大概意思是我們建立的數(shù)據(jù)庫中的所有信息都可以進行前端展示,并且要保證數(shù)據(jù)安全可靠無亂碼。2.設計的頁面讓用戶賞心悅目。由于我們設計的系統(tǒng)要進可能的適和廣大人群,那么我們所設計的頁面要讓用戶既有體驗又能一目了然,從而方便使用的人進行購買。3.邏輯性。系統(tǒng)邏輯不能出現(xiàn)錯誤,第一步到第二部再到第三部,必須符合正常邏輯思維。4系統(tǒng)設計4.1系統(tǒng)架構設計在設計該系統(tǒng)的架構時,我們考慮到方便用戶更好的開發(fā)系統(tǒng)以及系統(tǒng)所具有的一些局限性,最終我們決定采用B/S。4.2系統(tǒng)的總體構思俗話說的好,在做一件事情前我們要先想一想我們要怎么做、如何去做。這也就告訴我們構思的重要作用。在系統(tǒng)設計之前,我們要先對系統(tǒng)的設計做出總體的布局,這樣才能讓我們的系統(tǒng)更加具有邏輯,并且方便我們在后期對系統(tǒng)的維護。本次的設計我們將網站分為用戶和管理者(后臺)兩個相應的功能;其中用戶這個部分的功能包括用戶的登錄、注冊、菜品展示、搜索、菜品詳情展示、生成訂單、發(fā)布留言這七個小塊兒;后臺(管理員)這個部分的功能板塊兒,我們設置了登入、操作(訂單詳情、菜品、用戶發(fā)布的留言)功能,這樣的構思我們是遵守方便客戶的原則來設計的,這樣的設計構思可以給用戶很不錯的體驗。功能結構圖如圖4.1所示。圖4.1系統(tǒng)功能結構圖4.3數(shù)據(jù)庫設計4.3.1概念模型設計數(shù)據(jù)庫在程序的設計中扮演了極為重要的角色,它將系統(tǒng)涉及的數(shù)據(jù)全部容納其中,在數(shù)據(jù)庫設計時,為了能夠明確思路,一般都是先構建實體E-R圖,在構建實體E-R圖時采取先確定好我們所需要的實體,從而再規(guī)劃實體屬性的方法。(1)管理員實體如圖4.2所示。圖4.2管理員實體圖(2)商品分類實體如圖4.3所示。圖4.3商品分實體圖(3)訂單實體如圖4.4所示。圖4.4訂單實體圖(4)商品實體如圖4.5所示。圖4.5商品實體圖(5)用戶實體如圖4.6所示。圖4.6用戶實體圖4.3.2數(shù)據(jù)庫表設計數(shù)據(jù)庫表的設計是我們通過系統(tǒng)分析所選擇的DBMS模型來進行后臺數(shù)據(jù)的存儲,數(shù)據(jù)庫是系統(tǒng)后臺的核心,數(shù)據(jù)庫就相當于一個寄存東西的堆棧,在我們需要的時候進入堆棧中去取東西。建立的數(shù)據(jù)庫如下。(1)客戶表如表4.7所示。表4.7客戶表列名數(shù)據(jù)類型長度備注uidint11IDusernamevarchar255用戶名passwordint255密碼(2)商品分類表如表4.8所示。表4.8商品分類表序號列名數(shù)據(jù)類型長度備注1idint11ID2c-namevarchar255商品分類名(3)訂單表如表4.9所示。表4.9訂單表序號列名數(shù)據(jù)類型長度備注1oidint11ID2moneyvarchar255金額3receiveinfovarchar255地址4phoNumvarchar255電話5Order_timevarchar255時間(4)商品表:商品表如表4.10所示。表4.10商品表序號列名數(shù)據(jù)類型長度備注1pidint11ID2pnamevarchar255商品名3Market_pricevarchar255優(yōu)惠價格4Shop_pricevarchar255商店標價5imagevarchar255商品圖路徑6pdescevarchar255商品詳情7pdatevarchar255上架時間(5)用戶表:課程表如表4.11所示。表4.11用戶表序號列名數(shù)據(jù)類型長度備注1uidint11ID2usernamevarchar255用戶昵稱3passwordvarchar255密碼4namevarchar255用戶姓名5emailvarchar255郵箱6phoneint255電話7addrvarchar255地址

5系統(tǒng)實現(xiàn)該網上訂餐系統(tǒng)各模塊的具體功能實現(xiàn)如下。5.1用戶注冊游客可以在此頁面進行賬號注冊,便于系統(tǒng)管理員更好的管理系統(tǒng),游客注冊之后具有標識性,用戶注冊頁面如圖5.1所示。圖5.1用戶注冊圖5.2用戶登錄如圖5.2所示。圖5.2用戶登錄界面核心代碼:request.getSession().setAttribute("loginUser",loginUser);request.getSession().removeAttribute("message");return"redirect:index.action";5.3菜品展示用戶登錄成功后,可以在網站首頁看到各種各樣的菜品,其具體功能如圖5.3所示。圖5.3菜品展示頁面5.4菜品搜索用戶在系統(tǒng)搜索框中可以直接對菜品進行準確搜索,可以有效的減少用戶的選品時間,其界面圖如圖5.4所示。圖5.4搜索界面搜索功能關鍵代碼:List<Product>srList=productService.searchProduct(condition);model.addAttribute("srList",srList);5.5菜品詳情展示用戶在選擇商品時,我們?yōu)榱丝梢宰層脩舴判馁徺I的,我們設置了這個菜品詳情展示欄,用戶可以在點擊后看到商品的介紹、評價等信息如圖5-5所示。圖5.5菜品展示界面菜品展示關鍵代碼:publicStringproductFindByPid(@RequestParamintpid,Modelmodel)throwsException{ Productproduct=prodcutSductFindByPid(pid); model.addAttribute("product",product); return"product"; }5.6生成訂單在這個頁面上,我們可以實現(xiàn)以下功能:用戶點擊購買之后,系統(tǒng)自動生成訂單并展現(xiàn)在用戶的頁面中。其效果圖如圖5.6所示。圖5.6訂單生成界面核心代碼:for(Entry<Integer,CartItem>entry:cartItems.entrySet()){CartItemcartItem=entry.getValue(); Orderitemorderitem=newOrderitem(); orderitem.setProduct(cartItem.getProduct()); orderitem.setCount(cartItem.getCount()); orderitem.setPid(cartItem.getProduct().getPid()); orderitem.setSubtotal(cartItem.getSubtotle()); orderitem.setOid(orders.getOid()); orders.getOiList().add(orderitem); orderService.toOrderItem(orderitem); } cart.clearCart(); request.getSession().setAttribute("orders",orders); return"order";5.7用戶留言用戶可以登錄,并提出自己的意見反饋,有助于管理員更好的管理網站,其展示如圖5.7所示。圖5.7留言界面5.8管理員登陸用戶可以登錄,并提出自己的意見反饋,有助于管理員更好的管理網站,其展示如圖5.8所示。圖5.8管理員登陸界面管理員登錄關鍵代碼://admin/adminUser_login.action//adminUser_login管理員登錄 @RequestMapping("/admin/adminUser_login") publicStringadminUser_login(HttpServletRequestrequest,Modelmodel,@RequestParamStringusername,@RequestParamStringpassword)throwsException{ AdminuseradminuserLogin=userService.adminUser_login(username,password); System.out.println(username); System.out.println(password); if(adminuserLogin==null){ model.addAttribute("message","改用戶未被授予管理員身份!"); return"admin/index"; } request.getSession().setAttribute("adminuserLogin",adminuserLogin);// model.addAttribute("adminuserLogin",adminuserLogin); return"admin/home"; }5.9用戶管理管理員可以在系統(tǒng)中,對信息進行增刪改查操作,如圖5-10所示。圖5-10用戶管理界面用戶管理主要代碼如下:@RequestMapping("/admin/admin_findAll") publicStringadmin_findAll(Modelmodel,HttpServletRequestrequest)throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } List<User>userList=userService.admin_findAll(); model.addAttribute("userList",userList); return"admin/user/list"; } @RequestMapping("/admin/adminCategory_findAll") publicStringadminCategory_findAll(Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } List<Category>categoryList=categoryService.adminbFindCategory(); /*for(Categorycategory:categoryList){ System.out.println(category.getCname()); }*/ model.addAttribute("categoryList",categoryList); return"admin/category/list"; }5.10分類管理管理的人可以在后臺系統(tǒng)中對食物的種類進行分類,這樣的話就會大大方便用戶的選餐,節(jié)省用戶的時間,在管理員對商品進行分類后,顧客在登錄首頁會直接看到,也就像實時更新一樣。具體如圖5.11。圖5.11分類管理界面5.11貨物管理分出食品的類別從而方面客戶的查詢,同時還具有修改商品詳情的權限,方便商家更好的介紹自己的產品從而得到顧客的青睞,管理者也可自行的增刪商品,管理員進行的操作直接出現(xiàn)在用戶的首頁中。具體如圖5.12圖5.11商品管理界面流程圖如下:圖5.12商品管理流程圖5.12訂單管理訂單管理流程圖如下:圖5.13訂單管理流程圖在系統(tǒng)中的訂單管理模塊中,具體如圖5.14。5.14訂單管理界面5.13用戶的反饋管理在系統(tǒng)中的用戶反饋模塊,管理員可以對其進行操作。具體如圖5.15。5.15留言管理界面6系統(tǒng)測試在此,要對開發(fā)的系統(tǒng)進行測試這部分的工作了,這也意味著程序即將完成,但測試艱巨度還是很大的,測試費時費力,還相當重要,通過測試是為了發(fā)現(xiàn)問題,檢測程序。6.1系統(tǒng)測試(1)兼容性測試其測試的目的是保證其系統(tǒng)在瀏覽器中完成所有設計需求功能。(2)下載時間和容量(3)系統(tǒng)的人機工程(4)檢測鏈接(5)應用程序測試6.2系統(tǒng)維護在我們在對系統(tǒng)的每個部分進行測試后,所有的測試都完成了,系統(tǒng)可以正常的運行,我們在這個時候就要把我們的關注點放在系統(tǒng)后期的維護和升級中了。我們在對系統(tǒng)進行這個階段的操作的時候,我們可以把重心放到系統(tǒng)的核心問題上,比如說針對數(shù)據(jù)庫的升級和保護,我們的系統(tǒng)在面向客戶時,人群的占比小的話,我們通常會選擇小型的服務器,但當我們面對的業(yè)務范圍大的時候就會存在由于我們的服務器小而造成的停機的情況,這個時候我們就要考錄到對我們原先選擇的服務器進行升級了。同時操作系統(tǒng)也是我們的系統(tǒng)能夠穩(wěn)定運行的根本,因此我們也要加強對操作系統(tǒng)的重視(升級和維護)。6.3測試目的系統(tǒng)測試是系統(tǒng)的最后一部分,在系統(tǒng)開發(fā)過程中多多少少會出現(xiàn)錯誤,這些錯誤有可能會導致字段不現(xiàn)實或者系統(tǒng)啟動不了,一個小的錯誤需要我們耗費大量時間去解決,所有在系統(tǒng)開發(fā)過程中一定要盡量不必要的錯誤產生。一、功能測試:功能必須完善,所有頁面顯示的功能都可以進行操作,如果功能方面有所欠缺需要盡快完善,找出系統(tǒng)的bug,防止不必要的麻煩的產生。二、性能測試:確保系統(tǒng)的穩(wěn)定性,系統(tǒng)無論在什么環(huán)境、版本下都可以正常顯示,并且3秒內可以進行數(shù)據(jù)輸送和傳達,展示頁面信息三、安全測試:安全在各個場合都是放在第一位的東西,同樣的我們在安全測試中要保證賬號登錄要安全并且能讓用戶放心,所以我們要保證我們所設計的系統(tǒng)在使用的人登錄賬號時是安全可靠的,這樣可以避免用戶信息的泄露,讓用戶放心的系統(tǒng)才有希望成為好的系統(tǒng)。6.4測試實例針對系統(tǒng)的各個功能挨個的進行過細的檢測,檢查我們所設計的系統(tǒng)的功能是否達到我們所期望的。下面我們挨個測試與系統(tǒng)各部分相對應的功能。測試用例表如表6.1所示。表6.1測試用例測試用例方案輸入數(shù)據(jù)預期結果測試結果用戶登錄使用已存在的賬號和相匹配的密碼登錄網站賬號:kobe密碼:12345系統(tǒng)提示登錄成功,并跳轉至系統(tǒng)主頁與預期結果一致搜索用戶登錄網站進行川菜搜索點擊按鍵點擊后跳轉到川菜成功頁面與預期結果一致訂單管理管理員進到后臺管理移除訂單點擊按鈕點擊后成功把訂單移除與預期結果一致商品添加管理員進入后臺管理系統(tǒng)之后添加商品點擊添加按鍵,輸入西紅柿,9.9元等操作點擊后跳轉到成功添加商品并在用戶界面顯示與預期結果一致6.5測試結果該系統(tǒng)經過測試,可以滿足相關信息的管理要求。

7結束語本文對網上訂餐管理系統(tǒng)的相關方面進行了詳細的剖析,通過以上內容成功的實現(xiàn)了網上訂餐管理系統(tǒng)的設計與開發(fā)。本次畢業(yè)設計的開發(fā),遵循IT開發(fā)技術的原則,最終實現(xiàn)系統(tǒng)預期的期望結果。畢業(yè)設計是對我們在大學中學到的知識的實踐和應用。結果表明,經過測試,系統(tǒng)整體運行流暢,系統(tǒng)功能完善,系統(tǒng)整體構思明確,再運行過程中無重大問題產生,基本完成任務書和需求分析所要求達到的要求八個模塊的增加功能、刪除功能、修改功能、查詢功能都正常運行,符合設計基本理念,達到測試用例所寫出的測試場景和預期達到的目標,在運行操作中正常運行,所以系統(tǒng)設計成功。在這次的開發(fā)過程中,通過自身的學習和經歷我積累了一些經驗:系統(tǒng)分析在系統(tǒng)的設計開發(fā)中占據(jù)至關重要的地位,在我們開發(fā)前我們先要對系統(tǒng)的各個部分(需求、局限性、未來性)進行詳細的分析,對系統(tǒng)的設計情況進行大體的規(guī)劃,這就好比作畫之前我們要先決定我們要使用什么色彩,使用什么紙張一樣,紙張和色彩選擇的好壞決定了這幅畫的好壞。同理來說,一個系統(tǒng)的好壞也和我們在設計系統(tǒng)之前對系統(tǒng)的分析的好壞。在這次的畢業(yè)系統(tǒng)設計中,我們完成了系統(tǒng)的初步階段,但是還存在著很多不足的地方,不管如何這是我第一次設計的系統(tǒng),也是給大學四年呈上的答卷。在以后的工作中,我還會對該系統(tǒng)進行進一步的完善。參考文獻黃信洋.網上餐飲信息服務平臺設計與實現(xiàn)[D].電子科技大學,2019.楊彤蕾,李建.“互聯(lián)網+”背景下高校學生群體外賣訂餐現(xiàn)狀及問題研究——以西安某高校為例[J].價值工程,2018,37(25):33-35.聶維,張忠,劉小豫.網上訂餐系統(tǒng)的設計與開發(fā)[J].信息與電腦(理論版),2019,31(20):56-58.祝坤艷,楊藝,賈好朋.“互聯(lián)網+”校園網上訂餐的現(xiàn)狀和問題[J].現(xiàn)代營銷(下旬刊),2020(02):151-152.ZimmerMeghanC.,BeairdJacob,SteevesElizabethT.Anderson.WICParticipants’PerspectivesAboutOnlineOrderingandTechnologyintheWICProgram[J].JournalofNutritionEducationandBehavior,2020(prepublish).郝恬.針對雙用戶的訂餐系統(tǒng)設計研究[D].武漢理工大學,2019.聶維,張忠,劉小豫.網上訂餐系統(tǒng)的設計與開發(fā)[J].信息與電腦(理論版),2019,31(20):56-58.黃信洋.網上餐飲信息服務平臺設計與實現(xiàn)[D].電子科技大學,2019.王金朔,孫延輝.基于SSM和Java的網上訂餐系統(tǒng)設計[J].信息通信,2018(10):99-100.劉娟.基于ASP.NET的網上訂餐系統(tǒng)的分析與設計[J].數(shù)字技術應用,2018,36(09):156-157.張紫微.高校食堂訂餐系統(tǒng)的研究與分析[J].經濟研究導刊,2018(14):188-189.張蕾.網上訂餐系統(tǒng)的數(shù)據(jù)庫設計[J].工業(yè)技術與職業(yè)教育,2018,16(01):12-14.[13]胡朝友,張星晨,吳海珍,常章梅.基于Java和MySQL軟件的實驗室菌種管理系統(tǒng)設計與應用[J].中華臨床實驗室管理電子雜志,2020,8(01):41-47.[14]朱運喬.基于SpringBoot+SSM框架的Web應用系統(tǒng)搭建與實現(xiàn)[J].電腦編程技巧與維護,2019(10):23-25.

附錄用戶注冊核心代碼:@RequestMapping("/userRegist") publicStringuserRegist(Modelmodel,HttpServletRequestrequest, @ValidatedUseruser,BindingResultbindingResult, @RequestParamStringcheckImg)throwsException{ if(bindingResult.hasErrors()){ List<ObjectError>errors=bindingResult.getAllErrors(); List<String>list=newArrayList<>(); for(ObjectErrorobjectError:errors){ Stringstr=newString(objectError.getDefaultMessage() .getBytes("ISO-8859-1"),"gbk"); list.add(str); } model.addAttribute("errors",list); return"regist"; } //查看驗證碼 StringsessionCode=(String)request.getSession().getAttribute( "checkcode");// System.out.println("adadadad"+sessionCode); if(!sessionCode.equalsIgnoreCase(checkImg)){// model.addAttribute("message","驗證碼錯誤請重新注冊"); thrownewzdyException("驗證碼錯誤請重新注冊"); } //開始寫入數(shù)據(jù)庫 userService.saveUser(user); //model.addAttribute("message","注冊成功請去郵箱激活"); model.addAttribute("message","注冊成功請登錄"); return"ms

}用戶登錄關鍵代碼://用戶登錄 @RequestMapping("/userLogin") publicStringuserLogin(HttpServletRequestrequest, @RequestParamStringcheckImg,Useruser,Modelmodel) throwszdyException,Exception{ StringsessionCode=(String)request.getSession().getAttribute( "checkcode"); if(!sessionCode.equalsIgnoreCase(checkImg)){ //model.addAttribute("message","驗證碼輸入錯誤請重新注冊"); //thrownewzdyException("驗證碼輸入錯誤請重新注冊"); request.getSession().setAttribute("message","驗證碼輸入錯誤請重新注冊"); return"redirect:login.action"; } UserloginUser=userService.loginFindByUnameAndPwd(user.getUsername(), user.getPassword()); if(loginUser==null){ //model.addAttribute("message","密碼輸入錯誤請重新登陸"); request.getSession().setAttribute("message","密碼輸入錯誤請重新登陸"); //thrownewzdyException("密碼輸入錯誤請重新登陸"); return"redirect:login.action"; } request.getSession().setAttribute("loginUser",loginUser); request.getSession().removeAttribute("message"); return"redirect:index.action";

}菜品展示關鍵代碼:

@RequestMapping("/index") publicStringindex(Modelmodel,HttpServletRequestrequest)throwsException{ //查詢一級分類 List<Category>cList=categoryService.findCategory(); request.getSession().getServletContext().setAttribute("cList",cList);// model.addAttribute("cList",cList); //查詢熱門商品 List<Product>hList=productService.findHotProduct(); model.addAttribute("hList",hList); //查詢最新商品 List<Product>nList=productService.findNewProduct(); model.addAttribute("nList",nList); //滾動圖片專用,最多顯示3個商品 List<Product>sList; if(hList.size()>3) { sList=newArrayList<Product>(); sList.add(hList.get(0)); sList.add(hList.get(1)); sList.add(hList.get(2)); model.addAttribute("sList",sList); } else { model.addAttribute("sList",hList); } return"index"; }搜索功能關鍵代碼:@RequestMapping("/searchProduct") publicStringsearchProduct(@RequestParamStringcondition,Modelmodel,HttpServletRequestrequest)throwsException{ //查詢一級分類 List<Category>cList=categoryService.findCategory(); request.getSession().getServletContext().setAttribute("cList",cList); //查詢商品 List<Product>hList=productService.findHotProduct(); model.addAttribute("hList",hList); //搜索商品 List<Product>srList=productService.searchProduct(condition); model.addAttribute("srList",srList); //滾動圖片專用,最多顯示3個商品 List<Product>sList; if(hList.size()>3) { sList=newArrayList<Product>(); sList.add(hList.get(0)); sList.add(hList.get(1)); sList.add(hList.get(2)); model.addAttribute("sList",sList); } else { model.addAttribute("sList",hList); } return"searchProdu;}菜品展示關鍵代碼:@RequestMapping("/productFindByPid") publicStringproductFindByPid(@RequestParamintpid,Modelmodel)throwsException{ Productproduct=prodcutSductFindByPid(pid); model.addAttribute("product",product); return"product";}訂單生成關鍵代碼:@RequestMapping("/toOrder") publicStringtoOrder(HttpServletRequestrequest,Modelmodel)throwsException{ Ordersorders=newOrders(); Cartcart=(Cart)request.getSession().getAttribute("cart"); UserloginUser=(User)request.getSession().getAttribute("loginUser"); if(loginUser==null){ model.addAttribute("message","對不起您還沒有登錄"); return"msg"; }// 0表示沒有付款、1表示已付款即將發(fā)貨2表示確認收貨3表示交易成功 orders.setState(0); //orders.setOrderTime(newDate());java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("yyyy-MM-dd");Stringtoday=sdf.format(newDate());orders.setOrderTime(sdf.parse(today)); orders.setUid(loginUser.getUid()); orders.setMoney(cart.getTotale()); orderService.toOrder(orders); Map<Integer,CartItem>cartItems=cart.getCartItem(); for(Entry<Integer,CartItem>entry:cartItems.entrySet()){ CartItemcartItem=entry.getValue(); Orderitemorderitem=newOrderitem(); orderitem.setProduct(cartItem.getProduct()); orderitem.setCount(cartItem.getCount()); orderitem.setPid(cartItem.getProduct().getPid()); orderitem.setSubtotal(cartItem.getSubtotle()); orderitem.setOid(orders.getOid()); orders.getOiList().add(orderitem); orderService.toOrderItem(orderitem); } cart.clearCart(); request.getSession().setAttribute("orders",orders); return"order"; }

}留言模塊關鍵代碼:@RequestMapping("/saveMessage") publicStringsaveMessage(@RequestParamStringmessageinfo,HttpServletRequestrequest,Modelmodel)throwsException{ MessageMessage=newMessage(); UserloginUser=(User)request.getSession().getAttribute("loginUser"); if(loginUser==null){ model.addAttribute("message","對不起您還沒有登錄"); return"msg"; } java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Message.setMessage(messageinfo); Message.setUid(loginUser.getUid()); Message.setMessagedate(sdf.format(newDate())); messageService.insertMessage(Message); request.getSession().setAttribute("Message",Message); return"redirect:/messageList.action?page=1"; }}管理員登錄關鍵代碼://admin/adminUser_login.action//adminUser_login管理員登錄 @RequestMapping("/admin/adminUser_login") publicStringadminUser_login(HttpServletRequestrequest,Modelmodel,@RequestParamStringusername,@RequestParamStringpassword)throwsException{ AdminuseradminuserLogin=userService.adminUser_login(username,password); System.out.println(username); System.out.println(password); if(adminuserLogin==null){ model.addAttribute("message","改用戶未被授予管理員身份!"); return"admin/index"; } request.getSession().setAttribute("adminuserLogin",adminuserLogin);// model.addAttribute("adminuserLogin",adminuserLogin); return"admin/home"; }用戶管理主要代碼如下:@RequestMapping("/admin/admin_findAll") publicStringadmin_findAll(Modelmodel,HttpServletRequestrequest)throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } List<User>userList=userService.admin_findAll(); model.addAttribute("userList",userList); return"admin/user/list"; } @RequestMapping("/admin/adminCategory_findAll") publicStringadminCategory_findAll(Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } List<Category>categoryList=categoryService.adminbFindCategory(); /*for(Categorycategory:categoryList){ System.out.println(category.getCname()); }*/ model.addAttribute("categoryList",categoryList); return"admin/category/list"; }分類管理關鍵代碼:@RequestMapping("/admin/adminCategory_findAll") publicStringadminCategory_findAll(Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } List<Category>categoryList=categoryService.adminbFindCategory(); /*for(Categorycategory:categoryList){ System.out.println(category.getCname()); }*/ model.addAttribute("categoryList",categoryList); return"admin/category/list"; }商品管理核心代碼://admin的商品管理 @RequestMapping("/admin/adminProduct_findAllByPage") publicStringadminProduct_findAllByPage(@RequestParamintpage,Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } PageBean<Product>allProPageBean=productService.findAllProduct(page); model.addAttribute("allProPageBean",allProPageBean); return"admin/product/list"; } @RequestMapping("/admin/adminProduct_addPage") publicStringadminProduct_addPage(Modelmodel,HttpServletRequestrequest)throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } //查詢出所有的二級分類 List<Categorysecond>cslist=categorySecondService.findAll(); /*for(Categorysecondcategorysecond:cslist){ System.out.println(categorysecond.getCsname()); }*/ model.addAttribute("cslist",cslist); return"admin/product/add"; }訂單管理核心代碼:/**訂單管理模塊**/ @RequestMapping("/admin/adminOrder_findAllByPage") publicStringadminOrder_findAllByPage(@RequestParamintpage,Modelmodel,HttpServletRequestrequest) throwsException{ AdminuseradminuserLogin=(Adminuser)request.getSession().getAttribute("adminuserLogin"); if(adminuserLogin==null){ request.getSession().setAttribute("message","對不起您還沒有登錄");

溫馨提示

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

最新文檔

評論

0/150

提交評論