(附源码)springboot 中小学餐饮配送系统 毕业设计645661
springboot中小學餐飲配送系統
摘要
本論文系統地描繪了整個中小學餐飲配送系統的設計與實現,主要實現的功能有以下幾點:首頁、站點管理(管理員、普通用戶)內容管理(資訊列表、資訊分類)更多管理(餐品信息管理、分類管理、訂單管理)系統管理等功能,其具有簡單的接口,方便的應用,強大的互動,完全基于互聯網的特點。
現代社會的網絡和信息技術不斷提高,人們的生活水平達到一個新的水平。點餐成為一種人們習以為常的生活方式,一個充分利用碎片化時間,簡化點餐配送過程的程序,正是我們所需要的。這篇文章研究了基于springboot的中小學餐飲配送系統的開發和實現,從需求分析、總體設計到具體實現,最終完成了整個中小學餐飲配送系統。
關鍵詞:中小學餐飲配送,互聯網模式,數據庫
Springboot primary and secondary school catering distribution system
This paper systematically describes the design and implementation of the whole catering distribution system in primary and secondary schools. The main functions are as follows: home page, site management (administrators and ordinary users), content management (information list and information classification), more management (food information management, classification management and order management), system management and other functions. It has simple interface, convenient application and strong interaction, Completely based on the characteristics of the Internet.
With the continuous improvement of network and information technology in modern society, people's living standards have reached a new level. Ordering has become a way of life that people are used to. A program that makes full use of fragmented time and simplifies the ordering and distribution process is exactly what we need. This paper studies the development and implementation of primary and secondary school catering distribution system based on springboot, from demand analysis, overall design to specific implementation, and finally completes the whole primary and secondary school catering distribution system.
Key words:?Catering distribution in primary and secondary schools, Internet model, database
目 ?錄
第1章?緒???論
1.1課題背景
1.2 國內外發展現狀
1.3 開發工具及技術 3
1.4 研究內容 5
第2章 系統分析 7
2.1 可行性分析 7
2.2總體設計原則 7
2.3 系統需求分析 8
2.4 業務流程分析 8
第3章 系統設計 11
3.1 系統概要設計 11
3.2系統結構設計 11
3.3 數據庫設計 12
第4章系統實現
4.1系統功能模塊
4.2管理員功能模塊 22
4.3用戶功能模塊 24
第5章軟件測試
5.1軟件測試的重要性
5.2測試實例的研究與選擇
5.3測試環境與測試條件
5.4系統運行情況
5.5系統評價
第6章?總結 30
參考文獻: 31
致謝 33
1.1課題背景
在當今節奏飛快的時代,學院人員的餐飲問題往往需要快捷地解決。隨著計算機和4G網絡的飛速發展以及智能手機的普及,世界已經形成了“地球村”。互聯網的飛速發展為我們的生活帶來了便利,我們可以利用互聯網來完成點餐以及派餐的命令。中國互聯網用戶規模超過8億,互聯網普及率達到60%。在互聯網中,在線餐飲的交付已成為三種主要飲食方法之一,中國在線點餐派餐用戶繼續增長到4億,增長了20%,其中3.9億人通過手機點餐在線交付。目前,中國點餐餐行業的狀況已經穩定,發展的速度令人難以置信,但市場尚未飽和。當前我們需要深入研究優質用戶的需求,并最大限度地利用現有用戶的價值。
在當今社會,點餐派餐已成為餐廳必不可少的一部分,它的存在對于個人和商家而言非常重要。因此,外賣點餐派餐系統應能夠提供個人與商家之間的溝通渠道,并為個人用戶提供足夠的信息且為商家提供訂購信息。在智能手機流行之前,商人使用傳統的低效率手動方法來管理外賣。這種方法有很多缺點,例如保密性差,效率低下和數據冗余,而點餐派餐系統可以解決這些問題。與傳統電話訂購相比,外賣點餐派餐系統非常重要。對于餐飲業務,信息管理的實施大大提高了效率,提高了數據的準確性,減少了數據的時延,大大提高了速度,并節省了大量紙張成本。同時,點餐派餐數據還可以使業務績效更加直觀。對于個人消費者而言,瀏覽餐廳信息非常方便,并且消除了撥打電話等復雜的手段。同時,在線點餐派餐還可以促進消費者的消費。
1.2 國內外發展現狀
近年來,中國也涌現出了很多O2O的生活平臺,2013年市場規模已經達到了1717.2億元,到2017年的時候,O2O的市場規模將達到4545.1億元,增長率達到27.6%,其中網上訂餐的增長率將超過6%,而從市場格局來看也說明,中國的網絡外賣訂餐行業已經引來了高速發展的機遇期。然而中國的訂餐服務也是在歷經了電話訂餐、微博訂餐后進入了網上訂餐,當前我國經濟在快速發展。中國消費者邁進了數字化時代。對中國大多數行業來說,互聯網可以顯著提高勞動生產率,但大多數具體的好處酒店和餐廳卻尚未實現,更多地反映在與消費相關的層面。無論是菜品的豐富度,還是價格的競爭力,還是相對的便利性,消費者大量轉移到點餐派餐平臺已經大勢所趨。
事實上,國外的訂餐網址已經發展的相當成熟了。特別是美國的市場表現的尤為突出,這個突出主要體現在行業的數據以及運營的企業:從行業數據來看,2012年美國餐飲行業銷售收入規模達6363億美元,餐飲企業98萬家,其中外賣規模達670億美元;從運營企業來看,美國早在2000年以前就已經有外賣O2O企業的存在,而如今對于已經發展了快20年的美國,外賣訂餐O2O市場基本成熟,部分早期創辦的企業依舊保持著穩定的發展,同時一些關于創作、標新立異的企業也在不斷涌現。本文所設計的中小學餐飲配送系統就是在這種客觀條件下進行的,是一項利民利國的、非常有價值的工作。在菜系管理方面,傳統的管理方式顯然無法與中小學餐飲配送系統相比,中小學餐飲配送系統正發揮著越來越重要的作用。中小學餐飲配送系統的速度快、信息量大、安全、簡單都是傳統模式難以企及的優點,正在發揮著越來越重要的作用。在本文中的中小學餐飲配送系統是一個基于MySQL數據庫和JSP語言的。
1.3 開發工具及技術
本系統前端框架采用了比較流行的漸進式JavaScript框架Vue.js。使用Vue-Router和Vuex實現動態路由和全局狀態管理,Ajax實現前后端通信,Element UI組件庫使頁面快速成型。后端部分:采用springboot作為開發框架,同時集成MyBatis、Redis等相關技術。
1.3.1?MVVM模式
MVVM是Model-View-ViewModel的簡寫。它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態和行為抽象化,讓我們將視圖 UI 和業務邏輯分開。當然這些事 ViewModel 已經幫我們做了,它可以取出 Model 的數據同時幫忙處理 View 中由于需要展示內容而涉及的業務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構框架。它立足于原有MVP框架并且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。
1.3.2?B/S結構
B/S(Browser/Server)比前身架構更為省事的架構。它借助Web server完成數據的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達到“瘦身”效果, 不需要考慮不停裝軟件的問題。
1.3.3?MySQL
MMySQL數據庫是較為出名的關系形數據庫,它使用大量的二維表來進行存儲數據而不是把數據封裝存儲早同一個“倉庫”中,十分有利于提高速度和數據應用的靈活性。
中小企業網站開發商的首選數據庫一般也是MySQL。SQL語言是它的標準語言。由于該數據庫在體積、速度和運營成本方面的優勢,特別是開放源代碼的技術特點,因此深受開發者的喜愛。
1..3.4?Vue.js 主要功能
Vue.js是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發的設計。Vue 的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅動采用單文件組件和Vue生態系統支持的庫開發的復雜單頁應用。
Vue.js 的目標是通過盡可能簡單的 API 實現響應的數據綁定和組合的視圖組件。
Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時,Vue.js 也能驅動復雜的單頁應用。
1.3.5 ?Springboot框架介紹
Spring框架是Java平臺上的一種開源應用框架,提供具有控制反轉特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發提供了一系列的解決方案,比如利用控制反轉的核心特性,并通過依賴注入實現控制反轉來實現管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數據訪問,提供大量優秀的Web框架方便開發等等。Spring框架具有控制反轉(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現。Spring的事務管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,并且幾乎可以在Java平臺的任何環境中工作。Spring集成多種事務模板,系統可以通過事務模板、XML或Java注解進行事務配置,并且事務框架集成了消息傳遞和緩存等功能。Spring的數據訪問框架解決了開發人員在應用程序中使用數據庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數據對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數據訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數據訪問提供了靈活的抽象。Spring框架最初是沒有打算構建一個自己的WebMVC框架,其開發人員在開發過程中認為現有的StrutsWeb框架的呈現層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創建了SpringMVC。
1.3.6 JavaScript 運行模式:
JavaScript是一種屬于網絡的高級腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。
1.1是一種解釋性腳本語言(代碼不進行預編譯)。
1.2主要用來向HTML(標準通用標記語言下的一個應用)頁面添加交互行為。
1.3可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。
1.4跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。
1.5 JavaScript腳本語言同其他語言一樣,有它自身的基本數據類型,表達式和算術運算符及程序的基本程序框架。JavaScript提供了四種基本的數據類型和兩種特殊數據類型用來處理數據和文字。而變量提供存放信息的地方,表達式則可以完成較復雜的信息處理。
?1.3.7Vue.js 主要功能
Vue.js是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發的設計。Vue 的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅動采用單文件組件和Vue生態系統支持的庫開發的復雜單頁應用。
Vue.js 的目標是通過盡可能簡單的 API 實現響應的數據綁定和組合的視圖組件。
Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時,Vue.js 也能驅動復雜的單頁應用。
1.4研究內容
中小學餐飲配送系統的開發及實現,所需要的工作內容:
(1)首先是確定選題,確定好所要做的系統,并對系統的背景及現在面臨的一些問題等進行系統的初步確認。
(2)系統確認完成后,結合系統開發的需求進行確認系統開發所使用的技術,中小學餐飲配送系統的開發使用Springboot框架,數據庫進行平臺的搭建開發,確認好使用的技術進行技術分析,所使用的技術是否可以完成系統的實現。
(3)確定好系統使用的技術,進行在線確認系統所劃分的用戶角色,并且根據用戶角色劃分確定所要設計的功能模塊,對中小學餐飲配送系統的設計主要劃分別為管理員和用戶角色,并所使用的功能模塊也相應不同,但是系統的數據庫實現的內容是交互的,用戶可以隨時根據自己的需求進行課程信息,對于系統工作人員可以根據自己的分管內容進行在線信息的處理及操作,管理員獲取到所有用戶的詳細數據信息,并根據需求進行第一時間處理解決。
(4)系統的功能模塊確認完成后進行程序及界面的設計,設計完成后,并且通過測試來判斷程序是否完善,對于系統測試,需要不同的用戶進行不同的內容編輯及提交,及使用不同的測試方式找出程序中存在的漏洞,并對程序出現的漏洞問題進行在線解決處理,如果測試系統沒有任何問題時,可以將系統上傳進行正式操作使用。
系統分析
2.1?可行性分析
可行性分析的目的是確定一個系統是否有必要開發、確定系統是否能以最小的代價實現。其工作主要有三個方面,分別是技術、經濟和社會三方面的可行性。我會從這三個方面對中小學餐飲配送系統進行詳細的分析。
2.1.1技術可行性
該系統主要使用JAVA、MyEclipse和MySQL數據庫進行開發,Java易于學習和使用靈活。在校期間也接觸過MyEclipes和MySQL數據庫的課程,對此有一定的開發經驗,因此開發難度不高,所以從技術上來說是可行的。
2.1.2經濟可行性
本系統設計所選擇的開發工具和服務器都是免費的開源軟件,又或者是適合學生使用的免費版本,并不需要支付費用,而且由作者本人單獨完成,也不存在團隊費用,幾乎沒有經濟成本,具備經濟可行性。
2.1.3社會可行性
社會可行性主要包括法律和用戶兩個方面,下面將從這兩方面進行分析。
(1)法律因素
本系統是學習開發所制作的程序,并不用作商業用途,是在根據實際調研的結果結合現有的中小學餐飲配送系統后得出的,而且系統制作的全部過程都是在個人的工作電腦中完成的,使用的都是開源和免費的開發環境、分析軟件和數據庫,不存在侵權問題。
(2)用戶可行性
操作人員或者客戶只需要具備一定的windows電腦操作常識,不需要精通計算機技能。此外系統管理人員,只需要在windows常識之上再熟悉下使用Tomcat服務器的操作流程,只要掌握一定的計算機知識即可,在正式上線運營之前,僅需要對操作人員進行簡單的熟悉流程培訓即可。所以從用戶可行性上也是可行的。
2.2總體設計原則
一個系統要在開發和維護的過程中方便使用,必須采取一定的設計原則,其主要設計原則有:
簡單性:系統功能簡單易懂,只需要掌握基本的計算機操作能力即可使用。
針對性:針對特定的用戶,沒有多余的其他功能,使用戶可以專心使用。
實用性:能夠滿足用戶查看餐品信息等方面的需求。
一致性:設計風格、命名規范一致,整個系統的各個功能模塊色彩、擺放位置、功能等都是一致的。
先進性:本系統的代碼采用讀取數據的方式,方便后續開發、拓展。
2.3 系統需求分析
中小學餐飲配送系統需要滿足的需求有以下幾個:
1.信息獲取方便,用戶可在網頁上快速瀏覽到新的信息
2.查看點餐詳情,單獨查看某一個餐品信息,獲取好評等。
3.注冊登錄,餐飲需要吸引客戶,即通過注冊來提高用戶的存留率。
4.歷史記錄,用戶可以查看自己訂單信息以及其他操作。
5.修改用戶信息,可以修改用戶密碼或者用戶名等一些個性化操作。
6.管理員功能,管理員可以對用戶或者點餐進行管理。
7.系統安全,操作簡便,不過于復雜。
8.系統可以穩定運行,不存在卡頓等問題造成用戶反感。
2.4 業務流程分析
2.4.1登錄流程
登錄模塊主要滿足管理員以及用戶的權限登錄,用戶登錄流程圖如圖2-1所示。
?
圖2-1?登錄流程圖
2.4.2注冊流程
未有賬號的用戶可進入注冊界面進行注冊操作,用戶注冊流程圖如圖2-2所示。
?
圖2-2?注冊流程圖
2.4.3添加信息流程
用戶在添加信息時,信息編號自動生成,系統會對添加的信息進行驗證,驗證通過則添加至數據庫,添加信息成功,反之添加失敗。添加信息流程如圖2-3所示。
?
圖2-3?添加信息流程圖
2.4.4刪除信息流程
用戶可選擇要刪除的信息進行信息刪除操作,在刪除信息時系統提示是否確定刪除信息,是則刪除信息成功,系統數據庫將信息進行刪除。刪除信息流程圖如圖2-4所示。
?
圖2-4刪除信息流程圖
3.1 系統概要設計
本中小學餐飲配送系統選擇B/S結構(Browser/Server,瀏覽器/服務器結構)和基于Web服務兩種模式。適合在互聯網上進行操作,只要用戶能連網,任何時間、任何地點都可以進行系統的操作使用。系統工作原理圖如圖3-1所示:
?
圖3-1 系統工作原理圖
3.2系統結構設計
整個系統是由多個功能模塊組合而成的,要將所有的功能模塊都一一列舉出來,然后進行逐個的功能設計,使得每一個模塊都有相對應的功能設計,然后進行系統整體的設計。
本中小學餐飲配送系統結構圖如圖3-2所示。
?
圖3-2?中小學餐飲配送系統結構圖
3.3 數據庫設計
數據庫可以說是所有軟件的根本,如果數據庫存在缺陷,那么會導致系統開發的不順利、維護困難、用戶使用不順暢等一系列問題,嚴重時將會直接損害企業的利益,同時在開發完成后,數據庫缺陷也更加難以解決。所以必須要對數據庫設計重點把握,做到認真細致。因此,數據庫設計是這個中小學餐飲配送系統的重點要素。
3.3.1概念結構設計
(1)管理員實體屬性圖如下圖3-3所示
?
圖3-3管理員實體屬性圖
(2)?系統實體屬性如下圖3-4所示
?
圖3-4系統實體屬性圖
3.3.2數據庫表設計
將數據庫概念設計的E-R圖轉換為關系數據庫。在關系數據庫中,數據關系由數據表組成,但是表的結構表現在表的字段上。
|
| |||||
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| business_id | int | 11 | 否 | 主鍵 | 商家ID |
| store_name | varchar | 64 | 是 | 店名 | |
| shop_telephone | varchar | 64 | 是 | 店鋪電話 | |
| store_address | varchar | 64 | 是 | 店鋪地址 | |
| storefront_cover | varchar | 255 | 是 | 店面封面 | |
| business_qualification | varchar | 255 | 是 | 經營資質 | |
| hits | int | 11 | 否 | 點擊數 | |
| praise_len | int | 11 | 否 | 點贊數 | |
| examine_state | varchar | 16 | 否 | 審核狀態 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| user_id | int | 11 | 否 | 用戶ID | |
| create_time | datetime | 0 | 否 | 創建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| classification_management_id | int | 11 | 否 | 主鍵 | 分類管理ID |
| type | varchar | 64 | 是 | 類型 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| Food_order_id | int | 11 | 否 | 主鍵 | 餐品訂單ID |
| commodity_number | varchar | 64 | 是 | 商品編號 | |
| name | varchar | 64 | 是 | 名稱 | |
| type | varchar | 64 | 是 | 類型 | |
| specifications | varchar | 64 | 是 | 規格 | |
| price | varchar | 64 | 是 | 價格 | |
| business | int | 11 | 是 | 商家 | |
| user | int | 11 | 是 | 用戶 | |
| number_of_meals_ordered | varchar | 64 | 是 | 訂餐數 | |
| contact_number | varchar | 64 | 是 | 聯系電話 | |
| delivery_address | varchar | 64 | 是 | 送餐地址 | |
| total | varchar | 64 | 是 | 總計 | |
| order_status | varchar | 64 | 是 | 訂單狀態 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| ordinary_users_id | int | 11 | 否 | 主鍵 | 普通用戶ID |
| full_name | varchar | 64 | 是 | 姓名 | |
| gender | varchar | 64 | 是 | 性別 | |
| examine_state | varchar | 16 | 否 | 審核狀態 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| user_id | int | 11 | 否 | 用戶ID | |
| create_time | datetime | 0 | 否 | 創建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| slides_id | int | 10 | 否 | 主鍵 | 輪播圖ID |
| title | varchar | 64 | 是 | 標題 | |
| content | varchar | 255 | 是 | 內容 | |
| url | varchar | 255 | 是 | 鏈接 | |
| img | varchar | 255 | 是 | 輪播圖 | |
| hits | int | 10 | 否 | 點擊量 | |
| create_time | timestamp | 0 | 否 | 創建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
| 字段名稱 | 類型 | 長度 | 不是null | 主鍵 | 字段說明 |
| Food information_id | int | 11 | 否 | 主鍵 | 餐品信息ID |
| commodity_number | varchar | 64 | 是 | 編號 | |
| name | varchar | 64 | 是 | 名稱 | |
| type | varchar | 64 | 是 | 類型 | |
| cover | varchar | 255 | 是 | 封面 | |
| specifications | varchar | 64 | 是 | 規格 | |
| price | varchar | 64 | 是 | 價格 | |
| number | varchar | 64 | 是 | 數量 | |
| business | int | 11 | 是 | 商家 | |
| details | longtext | 0 | 是 | 詳情 | |
| hits | int | 11 | 否 | 點擊數 | |
| praise_len | int | 11 | 否 | 點贊數 | |
| recommend | int | 11 | 否 | 智能推薦 | |
| create_time | datetime | 0 | 否 | 創建時間 | |
| update_time | timestamp | 0 | 否 | 更新時間 | |
第4章系統實現
4.1系統功能模塊
中小學餐飲配送系統,在系統首頁可以查看首頁、餐品信息、訂單信息、美食資訊跳轉到后臺等內容,如圖4-1所示。
?
圖4-1系統功能界面圖
???美食資訊管理,在美食資訊管理可以查看標題、內容等信息,如圖4-2所示。
?
圖4-2美食資訊界面圖
資訊列表,在資訊列表頁面可以查看資訊詳細信息,如圖4-3所示。在注冊頁面通過填寫用戶賬號、密碼、用戶姓名、手機等信息完成用戶注冊,如圖4-4所示。
?
圖4-3資訊列表界面圖
?
圖4-4注冊界面圖
用戶注冊邏輯代碼如下:
/**
?????* 注冊
?????* @param user
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(@RequestBody User user) {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????query.put("username",user.getUsername());
????????List list = service.select(query, new HashMap<>()).getResultList();
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????user.setUserId(null);
????????user.setPassword(service.encryption(user.getPassword()));
????????service.save(user);
????????return success(1);
}
4.2管理員功能模塊
管理員登錄,通過填寫注冊時輸入的用戶名、密碼、權限進行登錄,如圖4-5所示。
圖4-5管理員登錄界面圖
管理員登錄進入中小學餐飲配送系統可以查看首頁、站點管理(管理員、普通用戶)內容管理(資訊列表、資訊分類)更多管理(餐品信息管理、分類管理、訂單管理)系統管理等信息,如圖4-6所示。
?
圖4-6管理員功能界面圖
資訊分類管理,在分類列表中可以查看資訊分類等內容,還可以根據需要對分類資訊修改或刪除操作,如圖4-7所示。
圖4-7資訊分類管理界面圖
餐品品信息管理,在餐品信息管理列表中可以查看餐品編號、名稱、價格、圖片、分類信息,并可根據需要進行修改或刪除操作,如圖4-8所示。
?
圖4-8餐品信息管理界面圖
餐品信息管理的邏輯代碼如下:
?@RequestMapping("/get_obj")
????public Map<String, Object> obj(HttpServletRequest request) {
????????Query select = service.select(service.readQuery(request), service.readConfig(request));
????????List resultList = select.getResultList();
????????if (resultList.size() > 0) {
????????????JSONObject jsonObject = new JSONObject();
????????????jsonObject.put("obj",resultList.get(0));
????????????return success(jsonObject);
????????} else {
????????????return success(null);
????????}
}
?public Query select(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("select ");
????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
????????}
????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
????????}
????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
????????}
????????log.info("[{}] - 查詢操作,sql: {}",table,sql);
????????return runEntitySql(sql.toString());
????}
訂單信息管理,在訂單信息管理列表中可以查看餐品編號、餐品名稱、類型、價格、總價格、訂餐人、手機、送貨地址、備注、是否審核等信息,并可根據需要進行修改或刪除操作,如圖4-9所示。
?
圖4-9訂單信息管理界面圖
訂單信息管理的邏輯代碼如下:
??@PostMapping("/add")
????@Transactional
????public Map<String, Object> add(HttpServletRequest request) throws IOException {
????????service.insert(service.readBody(request.getReader()));
????????return success(1);
????}
????@Transactional
????public Map<String, Object> addMap(Map<String,Object> map){
????????service.insert(map);
????????return success(1);
}
????public Map<String,Object> readBody(BufferedReader reader){
????????BufferedReader br = null;
????????StringBuilder sb = new StringBuilder("");
????????try{
????????????br = reader;
????????????String str;
????????????while ((str = br.readLine()) != null){
????????????????sb.append(str);
????????????}
????????????br.close();
????????????String json = sb.toString();
????????????return JSONObject.parseObject(json, Map.class);
????????}catch (IOException e){
????????????e.printStackTrace();
????????}finally{
????????????if (null != br){
????????????????try{
????????????????????br.close();
????????????????}catch (IOException e){
????????????????????e.printStackTrace();
????????????????}
????????????}
????????}
????????return null;
}
????public void insert(Map<String,Object> body){
????????StringBuffer sql = new StringBuffer("INSERT INTO ");
????????sql.append("`").append(table).append("`").append(" (");
????????for (Map.Entry<String,Object> entry:body.entrySet()){
????????????sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
????????}
????????sql.deleteCharAt(sql.length()-1);
????????sql.append(") VALUES (");
????????for (Map.Entry<String,Object> entry:body.entrySet()){
????????????Object value = entry.getValue();
????????????if (value instanceof String){
????????????????sql.append("'").append(entry.getValue()).append("'").append(",");
????????????}else {
????????????????sql.append(entry.getValue()).append(",");
????????????}
????????}
????????sql.deleteCharAt(sql.length() - 1);
????????sql.append(")");
????????log.info("[{}] - 插入操作:{}",table,sql);
????????Query query = runCountSql(sql.toString());
????????query.executeUpdate();
????}
用戶管理,在用戶管理列表中可以查看用戶賬號、密碼、用戶姓名、性別、手機、照片等內容,并且根據需要進行修改或刪除操作,如圖4-10所示。
?
圖4-10用戶管理界面圖
用戶管理的邏輯代碼如下。
@RestController
@RequestMapping("auth")
public class AuthController extends BaseController<Auth, AuthService> {
????/**
?????* 服務對象
?????*/
????@Autowired
????public AuthController(AuthService service) {
????????setService(service);
????}
}
4.3用戶功能模塊
用戶登錄進入中小學餐飲配送系統可以查看首頁、公告欄、美食資訊、餐品信息等內容,如圖4-11所示。
?
圖4-11用戶功能界面圖
個人中心,在用戶信息列表中通過填寫用戶賬號、密碼、用戶姓名、性別、手機、照片等信息進行提交,如圖4-12所示。
?
圖4-12個人中心界面圖
個人中心的邏輯代碼如下。
server:
??port: 5000
??servlet:
????context-path: /api
spring:
??datasource:
????url: jdbc:mysql://127.0.0.1:3306/CS725260_20211101091736?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
????username: root
????password: root
????driver-class-name: com.mysql.cj.jdbc.Driver
??jackson:
????property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
????default-property-inclusion: ALWAYS
????time-zone: GMT+8
????date-format: yyyy-MM-dd HH:mm:ss
??servlet:
????multipart:
??????max-file-size: 100MB
??????max-request-size: 100MB
訂單信息管理,在訂單信息列表中可以查看餐品編號、餐品名稱、價格、購買數量、總價格、訂購人、手機、送貨地址、備注、是否支付等信息,如圖4-13所示。
?
圖4-13訂單信息管理界面圖
訂單信息管理的邏輯代碼如下:
??@RequestMapping(value = {"/avg_group", "/avg"})
public Map<String, Object> avg(HttpServletRequest request) {
????????Query count = service.avg(service.readQuery(request), service.readConfig(request));
????????return success(count.getResultList());
}
第5章軟件測試
測試存在于軟件開發進程中的最后一個階段,它可以保證一個軟件的開發質量是否符合設計者的初衷,也為程序的正式上線做了最后一道質量檢測的工序。軟件測試主要是控制各種條件、包括軟件輸出方式,使用模式和運行環境等,來評估一個系統或應用是否符合設計標準。在軟件測試過程中,我們一般刻意的去制造錯誤和極端條件,不能僅依照正常模式允許,而是多去嘗試那些意外的情況。
5.1軟件測試的重要性
只有在運行和維護階段之前經歷大量的測試的軟件,才能說明它的質量是經得起檢驗的。最近計算機業界也都一致認為,測試應該存在于軟件設計的每個階段,因為越早發現錯誤,修復起來就越容易。
實際上,對于一個軟件應用,錯誤是必然存在的,無論使用何種技術或手段,都不可能絕對的排除軟件漏洞。測試是隨著軟件開發一同誕生的,兩者是共同發展進步的。實際上,測試可以大幅度的降低維護的成本,如果一個漏洞在開發的早期就被發現,那么修復它的成本遠比上線后再修復的成本要低得多。
5.2測試實例的研究與選擇
測試有白盒測試和黑盒測試兩種方式。
其中,白盒測試是將軟件看成一個透明的白盒子,按照程序的內部控制結構和處理技術邏輯來選定測試用例、軟件系統測試的邏輯路徑及過程需要進行管理測試,又稱玻璃盒測試。因此白盒測試需要選擇足夠多的測試用例,覆蓋盡可能多的代碼來發現程序中的錯誤。
黑盒測試,也稱為功能測試。它將需軟件看作一個黑盒,像一個普通用戶一樣來模擬軟件的使用流程。黑盒測試通過大量的輸入邊界值或錯誤數據,來檢查是否可產生正確的輸出。
本系統測試 主要選擇黑盒測試,少量采用白盒測試。通過測試達到以下測試目的:
1.檢查各大功能模塊的運行,確保其能夠正確運行,并檢查各頁面的完整性,保證頁面完整。
2.檢查各個接口是否可以正確地輸入和輸出,保證數據流通穩定可行。
3.檢查數據結構,保證其和外部接口沒有訪問錯誤,訪問順利。
4.檢查原計劃的性能需求有沒有完成,運行流暢。
本系統的測試用例(部分):
| 登錄部分測試用例 | |||||
| 編號 | 對象 | 項目 | 操作 | 預期結果 | 結果 |
| 1 | 登錄 | 登錄提示 | 使用正確的賬號密碼登錄 | 成功登錄 | 預期結果 |
| 2 | 登錄提示 | 使用正確的賬號但錯誤的密碼登錄 | 提示密碼錯誤 | 預期結果 | |
| 3 | 登錄提示 | 使用錯誤的賬號登錄 | 提示不存在賬戶 | 預期結果 | |
| 4 | 登錄提示 | 不輸入賬號,點擊登錄 | 提示輸入賬號 | 預期結果 | |
| 5 | 登錄提示 | 輸入賬號但不輸入密碼點擊登錄 | 提示輸入密碼 | 預期結果 | |
| 6 | 登錄入口 | 已登錄賬號,查看登錄入口 | 不顯示登錄入口 | 預期結果 | |
5.3測試環境與測試條件
處理器:Inter Core I7-4710MQ四核處理器
內存:4GB
硬盤:1T
操作系統:Windows 10
數據庫:MySQL
5.4系統運行情況
全部測試用例都已通過(包括但不限于以上測試用例),且不存在漏洞,實現了論文開始時所作要求。本系統運行穩定,使用流暢,可以滿足客戶需求。
5.5系統評價
5.5.1系統功能評價
試運行后進行系統評估,可以認為該系統達到預定的目標要求,可以滿足用戶的需求,也滿足了系統開發前所作目標。
5.5.2系統技術評價
系統在經過大量重復測試后運行十分穩定,安全實用,功能模塊已經達到預定目標所需。
5.5.3系統經濟評價
在規定的時間內實現系統的大部分功能,且滿足要求,節省開發成本,有助于提高科學管理水平,符合本人經濟情況。
第6章 總結
2022年的今天,計算機技術已經相當成熟。它的發展推動了許多行業改頭換面,計算機的出現使人類社會有了進一步降低人力物力和資源的方法,提高了人類社會的生產力,轉變了社會生產方式。目前各大餐飲都在積極備戰,發展計算機和互聯網,結合自身優勢進軍互聯網行業成為各大企業的重點項目。
本文利用JAVA和MySQL數據庫技術,通過分析現實中小學餐飲配送系統業務流程的基礎上,并完成了中小學餐飲配送系統。經調試結果顯示,本系統基本可以滿足一個中小學餐飲配送系統的業務需要。系統界面簡潔而有美感, 易操作,做出了自己的特色,然而因為時間倉促再加上缺乏系統開發經驗和僅依靠少數問卷調查方式,因此本系統還存在不少缺陷、不足,比如:
1. 數據輸入的格式并沒有全部檢驗,所以很難保證數據的準確,可能有一些不符合規則的數據也可以通過檢驗。
2. 系統功能還不夠完善,無法提供豐富多彩的在線功能,只能實現菜品信息管理、分類管理、訂單信息管理、用戶管理、美食資訊管理等一系列功能。
本系統還存在一些漏洞沒有解決,在現實應用情境中很難保證完全不出錯,但相信通過再次完善,可以調試出真正符合實際的中小學餐飲配送系統。
參考文獻:
[2]朱廣躍.移動Web點餐系統的設計[J].集成電路應用,2022,39(01):124-125.
[3]劉學玉.JAVA編程語言在計算機軟件開發中的應用[J].電子技術與軟件工程,2022(01):57-60.
[4]黃美益.基于Java Web技術的教學資源庫系統設計[J].電子技術與軟件工程,2022(01):229-232.
[5]王瑛瑛.基于Java技術的英語學習激勵系統設計與實現[J].微型電腦應用,2021,37(12):71-73+77.
[6]涂華燕.基于MySQL宿舍管理系統數據庫設計[J].電腦編程技巧與維護,2021(12):104-106.
[7]佟亞超.計算機軟件Java編程特點及技術探析[J].技術與市場,2021,28(12):86-87+89.
[8]易潔,黃翔.基于《MySQL數據庫技術》的新形態教材開發與應用[J].機械職業教育,2021(12):53-57.
[9]閆繼正,張雷,張海濤.基于MySQL的空管設備集中監控系統數據庫設計[J].微處理機,2021,42(06):47-51.
[10]何芳.Java平臺及應用Java技術的安全問題分析[J].科技資訊,2021,19(35):10-12.
[11]Zhuoxi Zhang,Ming Yuan,Hanwei Qian. Research on MySQL Database Recovery and Forensics Based on Binlog[C]//Proceedings of the 11th International Conference on Computer Engineering and Networks(CENet2021)Part I.,2021:750-759.
[12]喻佳,吳丹新.基于SpringBoot的Web快速開發框架[J].電腦編程技巧與維護,2021(09):31-33.
[13]鹿俊聰.基于Android的食堂點餐系統的設計與實現[J].科學技術創新,2021(22):101-102.
[14]馮秀玲.智能點餐系統設計與應用[J].電子技術,2021,50(06):30-32.
[15]邱璐璐,陳俊仁.基于SpringBoot和Vue框架的高校代領系統設計與實現[J].信息技術與信息化,2021(04):25-27.
[16]Guanhong Chen,Jiangming Xu. Design and implementation of efficient Learning platform based on SpringBoot Framework[J]. Journal of Electronics and Information Science,2020,6(1):
[17]Minmin He,Shengli Lv. Research on Civil Aircraft Structural Strength Material Performance Database Based on SpringBoot[C]//Proceedings of 2020 4th International Conference on Electrical,Automation and Mechanical Engineering(EAME2020).Proceedings of 2020 4th International Conference on Electrical,2020:1062-1067.
[18]田海晴. 基于SpringBoot和Vue框架的共享運營管理平臺的設計與實現[D].山東大學,2020.
[19]葉濟凡. 基于SpringBoot與Vue框架的中文社科論文分析系統的設計與實現[D].南京大學,2020.
[20]吳彥文. 外賣點餐軟件品類導航服務及其運營系統的設計與實現[D].南京大學,2017.
致???謝
大學生活在這個時候即將劃上一個句號,但是對于我的人生道路來說,這僅僅是一個逗號,我將面對的是又一次征程的開始。
回憶過去,許許多多的事情浮現在腦海:剛上大學時歡樂心情和興奮的場景還歷歷在目。一切都是那么新鮮,那么富有吸引力。有快樂也有艱辛,有收獲也有失落。衷心感謝信息學院所有支持幫助過我的老師,謝謝你們多年來的關心和愛護。同窗的友情同樣難忘,你們與我共同走過了人生中不平凡的道路,給我留下了值得珍藏的美好記憶。
最后,我要特別感謝指導點餐購票系統論文設計的老師。本論文是在他的悉心指導和熱情幫助下完成的,老師認真負責的工作態度,嚴謹的治學精神和精深的理論水平都使我受益匪淺。老師無論在理論上還是在實踐中,都給予我很大的幫助,使我專業技能的應用水平得到很大提高,這對于我以后的工作和學習都有益處。值此論文完成之際,特別向老師表示衷心的感謝和崇高的敬意,謝謝他細心而又耐心地輔導,使得我得以順利的完成畢業設計開發工作,同時也要感謝其他幫助過我的老師和同學,他們在我成長過程中給予了我很大的幫助,在此一并表示感謝。
由于本人水平有限,加上時間緊促,本文一定有不少缺點和不足,懇請各位老師給予幫助和指正。
免費領取本源代碼,請關注點贊+私聊
總結
以上是生活随笔為你收集整理的(附源码)springboot 中小学餐饮配送系统 毕业设计645661的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美国留学生活点滴【转】
- 下一篇: Win10 IIS Web 配置