基于Android客戶端的校園餐廳管理信息系統(tǒng)設計_第1頁
基于Android客戶端的校園餐廳管理信息系統(tǒng)設計_第2頁
基于Android客戶端的校園餐廳管理信息系統(tǒng)設計_第3頁
基于Android客戶端的校園餐廳管理信息系統(tǒng)設計_第4頁
基于Android客戶端的校園餐廳管理信息系統(tǒng)設計_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

緒論引言目前是信息化的時代,信息化的資源在人們的生活中扮演著一個非常重要的角色。實體店的菜品豐富,網絡訂餐更加方便快捷,二者各有優(yōu)缺點,共同組成了訂餐的整體資源?,F在我們云南工商學院的訂餐系統(tǒng)將實體店和網絡數據資源無縫對接,二者結合,互相促進,更便捷的為用戶服務。研究背景社會的不斷發(fā)展,科學技術不斷進步,網絡科技也在逐漸完善,大數據時代的到來,人們的生活已經開始發(fā)生重要的變革,效率已經成為各個企業(yè)生存的第一要素,更好更快的使用和了解相關的信息,以及處理更多更繁瑣的事物便是我們設計安卓訂餐系統(tǒng)的初衷。由于互聯網發(fā)展已深入各個方面,安卓訂餐系統(tǒng)這個課題已經提出,云南工商學院的人流量越來越大,為了使學校食堂能夠在飯點短時間內滿足全校師生的的三餐需求,提高師生們的生活效率,使云南工商學院的師生通過手機就可以完成生活中必要的事情--飲食。價值與意義更高的效率和更高的準確率傳統(tǒng)的點餐方式是使用紙質點餐,服務員手工記錄,服務員需要在前臺和廚房之間往返走動,通過手寫口傳的方式將顧客的需求傳遞給餐廳中負責不同職能的人員。這樣不僅是對于餐廳來說無形之中增加了服務難度,對于顧客來說需要長時間的等待。不僅過多的消耗彼此的時間,而且還會造成不好的用餐體驗。采用信息化點餐,顧客登錄APP進行瀏覽菜單,搜索菜品,根據自己的喜好進行點單,備注好需要的或者不需要的口味。服務員在廚房就能實時了解客戶的需求,而且信息在傳輸過程中幾乎不會發(fā)生錯誤,廚師看到的菜單也一目了然,具體準確,以便于做出更符合顧客口味的菜品。節(jié)約了商家和顧客雙方的時間,效率和準確度也得到了提升,顧客擁有更好的用戶體驗。運營成本降低,更加方便環(huán)保信息化點餐方式提高了餐廳的服務效率,減少了服務員的工作量。同時,從另外一個角度看,同樣的任務,餐廳可以雇更少的服務員去完成工作量,這就降低了餐廳的工資支出,從而降低了運營成本。便于餐廳的運營和日常管理采取信息化的點餐方式,便于更方便快捷的收集數據,它可以直觀地為餐廳運營者生成各種統(tǒng)計信息的報表,運營者可以掌握餐廳每天的營業(yè)狀況,分析顧客的喜好,口味,同時對于餐廳內各類員工的工作業(yè)績也可以更加具體、直觀的看到,管理起來更加方便??尚行苑治隹尚行苑治鍪峭ㄟ^對項目的主要內容和配套條件,如市場需求、資源供應、為項目決策提供依據的一種綜合性的系統(tǒng)分析方法。操作可行性分析操作可行性是指項目能否在現實情況下進行操作,是否具有可實現的可能。最終的判別是項目能否實施。經濟可行性分析經濟可行性主要是對系統(tǒng)開發(fā)、維護所需的成本與系統(tǒng)運營后所產生的收益是否呈正比,經濟可行性分析對于系統(tǒng)的開發(fā)意義重大。此系統(tǒng)由本人開發(fā)為了方便廣大的師生用戶不需要考慮開發(fā)的成本。此系統(tǒng)運行在學校的局域網中,通過學校引入,并不用考慮服務器等資源問題。使用的用戶只要有一臺聯網的智能設備即可操作本系統(tǒng)。技術可行性分析技術可行性分析主要針對系統(tǒng)可能會用到的技術,然后根據現有的技術可不可以開發(fā)出系統(tǒng),技術可行性分析對于制作一套系統(tǒng)極為關鍵。通過分析總結出以下系統(tǒng)中會用到的技術體系:(1)Struts是一個頁面的控制器通過定義Struts.xml文件,控制頁面的跳轉,它采用了MVC模式,使代碼的結構與層次更加清晰。(2)Spring通過xml管理業(yè)務邏輯操作,提高了應用程序的可維護性。(3)SQLLite是一款小型輕型的數據庫,用來提供數據的存儲。(4)Tomcat服務器應用于中小系統(tǒng),通過Tomcat可以將網站部署到上面,用戶通過網絡就可以訪問。登錄Tomcat服務器我們便可以掌握系統(tǒng)的運行狀況,通過更改配置文件就可以更改系統(tǒng)的端口號、最大請求處理的線程數、文件夾的虛擬路徑等,使我們的開發(fā)更加便利快捷。法律可行性分析法律可行性主要針對系統(tǒng)是否有漏洞涉及到信息安全以及開發(fā)本系統(tǒng)是否與現有的法律有沖突,通過法律可行性分析有效避免了違法的可能性。本系統(tǒng)應用在學校局域網中,管理人員通過雙方協(xié)議操作本系統(tǒng),極大的避免了這些問題,所以在法律上是可行的。

需求分析系統(tǒng)需求系統(tǒng)需求是我們做系統(tǒng)的第一步,我們需要知道用戶需要哪些功能,這些功能都用來做什么,為什么做,要怎么做以及我們要明確的知道系統(tǒng)的主要功能是什么。功能需求分析商家可以在自家商鋪添加、修改、刪除菜品的信息;用戶可選擇菜品類型,查看菜品價格,瀏覽菜品評價的信息;用戶可將菜品添加或移出購物車,并查看當前購物車的狀態(tài)信息;用戶可以點擊支付購買購物車里面的商品;用戶可以查看歷史點餐記錄,了解自己最近的點餐情況;用戶可以修改自己的個人信息。實現原理商家在自家商鋪添加好菜品類別,菜品名稱,菜品價格,菜品圖片等信息之后會顯示在首頁頁面上,用戶瀏覽首頁選擇性價比高,適合自己的菜品往購物車里添加,添加完畢后進行結賬購買,獲取食物。主要功能商家可以在自家商鋪添加、修改、刪除菜品的信息;用戶可選擇菜品類型,查看菜品價格,瀏覽菜品評價的信息;用戶可將菜品添加或移出購物車,并查看當前購物車的狀態(tài)信息;用戶可以點擊支付購買購物車里面的商品;功能需求分析系統(tǒng)的功能需求分析主要包含了系統(tǒng)用列圖、系統(tǒng)的模塊、業(yè)務流程圖、實體關系圖等系統(tǒng)的功能以及系統(tǒng)用戶操作流程方面的分析。學校校園餐廳的點餐過程一般是顧客自己在紙質的菜單上點餐或者是服務員手工記錄,遇到人流量大的午餐和晚餐時間,數據較多,手寫單據容易出錯,使得工作效率低,時間成本和勞動成本過高等許多問題。因此為校園餐廳傳統(tǒng)餐飲業(yè)設計一套準確高效的校園餐廳信息化管理的解決方案,以此來解決校園餐廳的服務效率與質量,降低運營成本,節(jié)約人力資源,方便經營者對餐廳的日常管理,同時減少學生三餐所花費的時間,使得雙方更加方便快捷是非常必要的。此次畢業(yè)設計基于Android平臺開發(fā)云南工商學院校園定餐系統(tǒng)。在Android平臺上運用Java面向對象語言,同時使用SQLLite這個輕型數據庫。系統(tǒng)用例分析系統(tǒng)用例分析在系統(tǒng)之外看系統(tǒng)的功能,不用描述功能的具體實現。將系統(tǒng)的功能整合,然后根據分析的功能進一步的分析,保持系統(tǒng)功能的完整性。如圖2-1。圖2-1系統(tǒng)流程圖系統(tǒng)模塊分析此套系統(tǒng)主要分為管理員、店面工作人員和顧客用戶,普通用戶主要對店面的選擇、廚師的選擇、菜式的選擇、進行訂餐及評價。店面工作人員主要是進行菜式管理,廚師管理,空位管理和訂單評價。管理員主要是店面管理和獎券管理。如圖2-2。圖2-2系統(tǒng)模塊業(yè)務流程分析在這套系統(tǒng)中存在著三種用戶,第一種是店面工作用戶有菜式管理,廚師管理,空位管理及訂單評價的操作。第二種用戶屬于管理員用戶,管理員用戶主要是進行店面管理,獎券管理等操作。第三種用戶屬于顧客,顧客主要是進行用戶注冊,用戶登錄,店面列表,菜式列表,廚師列表,預定,我的訂單,評分功能模塊。后臺管理系統(tǒng):用戶登錄,先判斷用戶能否登錄,登錄之后再判斷用戶角色類型,若用戶類型為管理員,則可以操作店面管理,獎券管理兩個模塊,若用戶類型為店面用戶,則可以操作菜式管理、廚師管理、空位管理、訂單評價等模塊。如圖2-3。圖2-3系統(tǒng)流程移動APP管理系統(tǒng)用戶登錄,先判斷用戶是否登錄,若登錄成功,則可以查看店面列表選擇哪個商戶,菜式列表選擇哪道菜品,還可以查看是哪個廚師,預定模塊可以提前訂餐,我的訂單模塊可以查看歷史訂單記錄和當前訂單,評價模塊可以對商戶菜品進行評價。如圖2-4。圖2-4系統(tǒng)流程數據庫實體關系分析數據庫的實體聯系通過矩形框(表示實體)、菱形框(表示聯系)、橢圓形框(表示實體的屬性)、連線(一對多、多對一、多對多等幾種常見數據關系),根據實體之間的聯系將數據庫的實體聯系構建出來。通過了解實體聯系圖,我們可以更加直觀的了解到系統(tǒng)每張表之間的關系,為我們設計數據庫奠定了基礎。如圖2-5。圖2-5系統(tǒng)ER圖非功能需求分析非功能需求分析的主要是系統(tǒng)功能之外的東西,比如系統(tǒng)的性能是否達到要求,是否具有可靠性,是否具有易用性,安全性能否得到基本保障,以及約束等方面。在軟件開發(fā)中不可或缺,這關系到開發(fā)系統(tǒng)是否健壯,是否符合人性化,是否安全。性能分析性能分析是指系統(tǒng)響應速度。本系統(tǒng)的登錄,頁面跳轉,模糊查詢,精確查詢,業(yè)務處理的響應時間均小于1秒??煽啃苑治鱿到y(tǒng)的所有輸入采用的jquery的輸入驗證,控制用戶的輸入,防止用戶非法或者不正確的輸入。易用性分析系統(tǒng)易用性主要考量系統(tǒng)是否能簡單易操作,此系統(tǒng)一個功能的實現所涉及的頁面不超過3個,使頁面的布局更加美觀更加直接,通過用戶手冊用戶可以簡單明了的了解系統(tǒng)的運行流程。安全性分析系統(tǒng)用戶密碼采用MD5非對稱加密,通過MD5加密,非法的用戶在極短的時間內不易破解,提高了系統(tǒng)的安全性。MD5的實現原理:以四個常數ABCD與每組512位進行函數運算,最后輸出的結果就是4組32位的常數。運行環(huán)境分析運行環(huán)境分析主要分析系統(tǒng)可以在哪些環(huán)境上面運行??紤]到各環(huán)境的兼容性,差異性。系統(tǒng)設計項目架構設計架構設計MVC是model+view+control,即模型、視圖、控制,他們各自處理自己的任務。M--模型,持有所有的數據,狀態(tài)和程序邏輯,存在于Javabean中;V--視圖,用來呈現模型,數據展示,JSP技術;C--控制器,負責接收用戶的輸入,將輸入進行解析并反饋給模型,通常一個視圖具有一個控制器。典型的三層架構的分層結構,體現出了MVC的思想,可以讓開發(fā)減輕因為要解決復雜問題從而搭建新方案的負擔和精力,為開發(fā)提供便利的條件,減少了大量的開發(fā)系統(tǒng)的時間成本。良好的可擴展性,讓很多使用的用戶提高對它的支持,也就是有很多人來維護整個框架,這樣就避免大部分因為技術原因而找不到相應的對策從而不能實現的功能也可以相應的找到差不多的東西來實現一樣的功能。降低更改需求所帶來的風險。良好的可維護性,三層構架因為邏輯層和展現層的合理分離是的互相雖然有一定的依賴性,但是并不是綁定死在一起的。優(yōu)秀的解耦性,軟件產品的需求從來都不可能會是一個完全固定的需求??蛻魧浖男枨笠彩俏寤ò碎T各不相同這樣就增加了開發(fā)的難度,隨著軟件的開發(fā)過程的深入,需求也不斷的清晰了。所以經常會有軟件開發(fā)至中途或者是即將開發(fā)完成,客戶更改軟件需求的情況也會經常的發(fā)生,使得軟件不得不隨著更改,這樣的情況下,關系緊密的開發(fā)模式巨很難更改。架包設計項目的每個包都有不同的功能和類,我們把功能類似的類集中在相應的包結構中,方便于類的調用和維護。Action為控制層,service為服務層,model是實體類,dao是和數據庫交互的持久層。頁面訪問時jsp傳參數給action并帶入或者帶出一些數據,action通過調用service里面的方法和邏輯,同時service調用dao里面的方法和邏輯以此來進行數據交互,并返回結果。Spring則進行類的注入并且但仍系統(tǒng)管理員的色。Hibernate對數據庫進行操作就像是系統(tǒng)數據的搬運工給系統(tǒng)提供有效的數據或者反饋,最后到action中進行頁面跳轉。如圖3-1。圖3-1項目包名(1)com.dingcan.action處理網頁回傳的數據。(2)com.dingcan.bean是管理(3)com.dingcan..dao主要是接口,用來存放抽象的方法(未實現),通過定義這些方法,規(guī)定了每個類應該有什么方法,但是不具體實現。(4)com.dingcan.dao.impl主要用于存放實現了persistemt.dao類中的方法,這個包中的類通過implement關鍵詞實現方法。(5)com.dingcan.enums是枚舉(6)com.dingcan.impl實現了com.dingcan.service類中的方法,三層架構的BLL層。(7)com.dingcan.listener監(jiān)聽器(8)com.dingcan.model主要用于存放與數據庫對應的實體類,以及自己定義的實體類,通過這些實體類我們可以更加清楚數據庫的表字段與各張表之間的聯系。(9)com.dingcan.service即服務,是每個網頁應實現的方法,接口interface。(10)com.dingcan.servlet主要用于存儲通用的一些servlet,如圖片的上傳,驗證碼的存儲。(11)com.dingcan.util主要用于存放系統(tǒng)中常用到的類,它相當于一個工具包,程序員將一些經常要判斷要獲取的東西寫成方法放在對應的類放在里面,方便在編寫代碼時調用。模型設計實體模型設計通過看實體模型圖,清晰理解各實體的關系與具體聯系。如圖3-2。圖3-2實體關系模型圖數據庫設計本套系統(tǒng)采用Sqllite數據庫。數據庫的名稱為(dingcan),數據庫的每張表都以“t_”開頭。數據庫設計系統(tǒng),它主要包含了數據庫表,數據庫表的字段,每張表之間的關系,數據庫的設計是否滿足三個范式。數據庫表及表的字段如下所示:(1)管理員信息表t_admin管理員信息表主要記錄管理員的基本信息,這張表主要包含了自動編號的主鍵id,管理員用戶名和管理員密碼。如表3-1。表3-SEQ圖書信息表T_Bookinfo_4-\*ARABIC1管理員信息表t_admin序號字段名數據類型主鍵非空描述1idint是是管理員信息id自動編號為主鍵2usernameVARCHAR否否管理員用戶名3passwordVARCHAR否否管理員密碼(2)顧客信息表t_user顧客信息表主要用于存儲顧客信息,這張表主要包含了自動編號的主鍵id,顧客用戶名,顧客密碼,顧客性別,顧客所在城市,昵稱,年齡,出生日期,注冊時間,頭像,頭像地址等這些個人信息。如表3-2。表3-SEQ圖書信息表T_Bookinfo_4-\*ARABIC2顧客信息表t_user序號字段名數據類型主鍵非空描述1idINT(10)是是自動編號id為主鍵2usernameVARCHAR(45)否否用戶名3passwordVARCHAR(45)否否密碼4sexVARCHAR(45)否否性別5cityVARCHAR(45)否否城市6nicknameVARCHAR(45)否否昵稱7signatureVARCHAR(100)否否年齡8birthdayVARCHAR(45)否否出生時間9regdateDATETIME否否注冊時間10headphotoVARCHAR(100)否否頭像11capabilityFLOAT否否12levelINT(10)否否水平13expINT(10)否否14isadminINT(10)否否15image_urlVARCHAR(255)否否頭像地址(3)評價信息表t_comments評價信息表主要用于記錄顧客對菜品的評價情況,這張表主要包含了自動編號的主鍵id,評價時間,評價內容,評價顧客,評價顧客id,評價菜品。如表3-3。表3-SEQ圖書信息表T_Bookinfo_4-\*ARABIC3評價信息表t_comments序號字段名數據類型主鍵非空描述1idINT(10)是是自動編號的主鍵id2commitdateVARCHAR(45)否否評價時間3contentVARCHAR(45)否否評論內容4usernameVARCHAR(45)否否評價用戶5bioidINT(10)否否評價菜品6useridINT(10)否否評價用戶id(4)菜品信息表t_goods菜品信息表用來存儲菜品的詳細信息,這張表包含了自動編號的id,菜品價格,菜品備注,菜品名稱,菜品圖片,菜品銷售數量,菜品評論數量,菜品好評,菜品分類,菜品標簽,好評圖片,菜品描述,菜品類別。如表3-4。表3-4菜品表t_goods序號字段名數據類型主鍵非空描述1goods_idINT(10)是是菜品表自動編號id為主鍵2goods_priceFLOAT否否菜品價格3goods_marketpriceFLOAT否否菜品打折價4goods_nameVARCHAR(45)否否菜品名稱5goods_imageVARCHAR(45)否否菜品圖片6goods_sale_numINT(10)否否銷售量7evaluation_good_starINT(10)否否評星等級8evaluation_countVARCHAR(45)否否評論數9group_flagTINYINT(3)否否菜品分組10xianshi_flagTINYINT(3)否否限時11goods_image_urlVARCHAR(45)否否圖片地址12goods_desriptionVARCHAR(255)否否菜品描述13typeVARCHAR(255)否否菜品類型(5)訂單信息表t_order訂單信息表主要存儲訂單信息,自動生成的主鍵id,購物車id,顧客id,訂單時間,顧客用戶名,價格,菜品名稱,菜品圖片,地址,狀態(tài),菜品id,支付時間,支付方式,聯系電話。如表3-5。表3-SEQ圖書信息表T_Bookinfo_4-\*ARABIC4訂單信息表t_order序號字段名數據類型主鍵非空描述1idINT(10)是是訂單主鍵id2cart_idINT(10)否否購物車id3user_idINT(10)否否顧客id4orderdateVARCHAR(45)否否訂單時間5usernameVARCHAR(45)否否顧客用戶名6priceFLOAT否否價格7goods_nameVARCHAR(45)否否菜品名稱8goods_imageVARCHAR(45)否否菜品圖片9addressVARCHAR(45)否否地址10statusINT(10)否否狀態(tài)11good_idINT(10)否否菜品id12paytimeVARCHAR(255)否否支付時間13paywayVARCHAR(255)否否支付方式14phoneVARCHAR(255)否否聯系電話(6)購物車信息表t_shopcart購物車信息表主要用于購物車的基本信息,這張表主要包含了自動編號的主鍵id,菜品id,顧客id,菜品數量,狀態(tài)。如表3-6。表3-SEQ圖書信息表T_Bookinfo_4-\*ARABIC5購物車表T_t_shopcart序號字段名數據類型主鍵非空描述1idINT(10)是是購物車自動編號id為主鍵2goods_idINT(10)否否菜品id3user_idINT(10)否否顧客id4goods_numINT(10)否否菜品數量5statusINT(10)否否狀態(tài)(7)資訊信息表t_zixun資訊信息表用來存儲導航欄的基本信息,主要包含了id,標題,內容,更新時間,圖片地址等信息。如表3-7。表3-SEQ圖書信息表T_Bookinfo_4-\*ARABIC6資訊表t_zixun序號字段名數據類型主鍵非空描述1idINT(11)是是表自動編號id2titleVARCHAR(255)否否標題3contentVARCHAR(255)否否內容4updatetimeDATETIME否否更新時間5image_urlVARCHAR(255)否否圖片地址

功能設計UI的實現APP頁面前端使用XML布局文件控制UI界面,后端管理框架使用JSP,Javascript,html,css等布局管理UI界面,使用了這兩個框架使系統(tǒng)更加美觀,用戶操作更加便捷,開發(fā)起來便捷高效。功能模塊圖此套系統(tǒng)主要分為管理員、店面工作人員和顧客用戶,普通用戶主要對店面的選擇、廚師的選擇、菜式的選擇、進行訂餐及評價。店面工作人員主要是進行菜式管理,廚師管理,空位管理及訂單評價。管理員主要是店面管理和獎券管理。如圖3-1。圖3-1系統(tǒng)模塊核心功能設計注冊登錄的實現主要功能:注冊用戶,驗證用戶是否登錄流程:用戶在APP上注冊,注冊參數數據傳入數據庫,然后進行登錄驗證判斷。如圖3-2。圖3-2登錄流程圖商家菜品增刪的實現主要功能:商戶登錄增刪菜品流程:商戶登錄成功后可以添加菜品、刪除菜品、修改菜品信息。如圖3-3。圖3-3商戶操作流程圖用戶商品加進購物車實現主要功能:用戶菜品添加進購物車流程:用戶登錄后瀏覽菜品,可添加至購物車。如圖3-4。圖3-4添加購物車操作流程圖UI設計UI(UserInterface)是用戶操作的界面,它設計的好壞關系到了用戶是否對系統(tǒng)有沒有興趣,可不可以簡單的操作某一個功能,開發(fā)者是否容易實現其中的功能等,所以在UI設計的同時要考慮到用戶是否可以接受功能的操作流程,開發(fā)者開發(fā)此功能是否簡單。APP端頁面設計登錄界面:用戶輸入用戶名、密碼進行驗證登錄。首頁顯示界面:顯示食物類別。餐品列表頁面:用戶通過點擊首頁食物類別進入到這個頁面,這個頁面可以看到菜品的名稱,點擊菜品名稱可進入另一個頁面看到餐品的詳細信息。如餐品的名稱,菜品價格,菜品原價,是否加入購物車,添加份數和菜品評價等信息。個人信息界面:這個界面主要顯示用戶的個人信息,用戶在這個頁面可以編輯個人信息,返回主界面,查看我的訂單,查看購物車,查看消費記錄。營養(yǎng)資訊界面:這個界面主要提供給用戶管理自己的營養(yǎng)資訊信息。訂單支付頁面:用戶添加到購物車里面的食物進行結賬支付。后端管理頁面設計菜品管理界面:用來添加菜品(1)登錄界面實現登錄界面頁面部分主要使用jquery進行用戶輸入的驗證,防止用戶非法輸入,后端接收到前端傳過來的值再次進行判斷,判斷為真,則登錄成功否則頁面跳轉Error頁面顯示登錄錯誤。(2)管理菜單頁面實現根據登錄的用戶判斷登錄用戶是店面工作人員還是管理員,如若是店面工作人員擁有菜單管理,資訊管理,訂單管理,用戶管理的權限。(3)菜單管理這個頁面分為兩個部分實現,一個頁面是添加菜品,包括菜品名稱,優(yōu)惠價格,原價,菜品描述,選擇分類,菜品圖片,另一個是菜品維護,包括查詢菜品,刪除菜品,添加菜品等功能。(4)資訊管理這個頁面分為兩個部分實現,第一個頁面是添加資訊,第二個是資訊維護,包括查詢資訊,刪除資訊,添加資訊等功能。(5)訂單管理訂單管理主要包含訂單編號,菜單名稱,菜品價格,訂餐人聯系電話,支付方式,就餐時間,圖片,訂單處理等基本信息。(6)用戶管理用戶管理主要包含用戶id,用戶賬號,用戶姓名,用戶頭像,用戶地址,用戶簽名,用戶注冊日期,操作界面里有刪除和修改兩個功能。

系統(tǒng)實現UI實現UI的實現APP頁面前端使用XML布局文件控制UI界面,后端管理框架使用JSP,Javascript,html,css等布局管理UI界面,使用了這兩個框架使系統(tǒng)更加美觀,用戶操作更加便捷,開發(fā)起來便捷高效。APP頁面實現(1)注冊登錄界面實現登錄界面頁面部分主要jquery進行用戶輸入的驗證,防止用戶非法輸入,后端接收到前端傳過來的值再次進行判斷,登錄成功跳轉到主頁,否則頁面跳轉Error頁面顯示登錄錯誤。如圖4-1。圖4-SEQ報表頁面圖4-\*ARABIC1注冊登錄界面(2)首頁頁面實現用戶瀏覽該頁面挑選自己想要的食品類別??梢赃x擇系統(tǒng)錄入的炒菜類、包子類、湯類、快餐類、其他等,更多類別的菜品,快速查詢搜索到自己想吃的菜品。如圖4-2。圖4-SEQ報表頁面圖4-\*ARABIC2首頁頁面(3)餐品列表從主頁查詢到類別里面挑選具體的菜品??梢钥床似返膱D片,菜名是什么,價格是多少,菜品評價這些關于菜品的基本信息。如圖4-3。圖4-SEQ報表頁面圖4-\*ARABIC3餐品列表(4)個人信息的實現用戶登錄后可以編輯自己的基本信息。返回主界面就是返回首頁,我的訂單可以查看自己的訂單記錄,購物車可以查看購物車里已有菜品,菜單搜索可以搜索菜品,歷史消費記錄可以查看自己以前的點餐記錄,更改頭像可以修改自己頭像圖片。如圖4-4。圖4-SEQ報表頁面圖4-\*ARABIC4我的管理信息界面(5)營養(yǎng)咨詢實現根據用戶的id查詢出這個用戶歷史所有的營養(yǎng)咨詢,也就是以前點過的菜品,隨時隨地關注自己的營養(yǎng)餐品。如圖4-5。圖4-SEQ報表頁面圖4-\*ARABIC5營養(yǎng)咨詢列表(6)購物車的實現用戶登錄后可以將食物添加至購物車。添加到購物車可以顯示店鋪名稱,菜品圖片,菜品名稱,菜品單價和菜品數量,如果購物車里面沒有任何菜品,會提示“您還沒有訂餐”。如圖4-6。圖4-6購物車信息界面訂單頁面實現根據要求填寫基本信息,聯系電話,就餐時間,支付方式。點擊確認下單后會跳出支付頁面,支付成功就可以獲取食物了,若沒有支付成功則跳到預定界面,等待付款。如圖4-7。圖4-7訂單信息界面后端管理頁面實現(1)登錄界面實現登錄界面頁面部分主要使用jquery進行用戶輸入的驗證,防止用戶非法輸入,后端接收到前端傳過來的值再次進行判斷,判斷為真,則登錄成功否則頁面跳轉Error頁面顯示登錄錯誤。如圖4-8。圖4-8登錄界面(2)管理菜單頁面實現根據登錄的用戶判斷登錄用戶是店面工作人員還是管理員,如若是店面工作人員擁有菜單管理,資訊管理,訂單管理,用戶管理的權限。如圖4-9。圖4-9后臺菜單(3)菜品管理的實現這個頁面分為兩個部分實現,一個頁面是添加菜品,包括菜品名稱,優(yōu)惠價格,原價,菜品描述,選擇分類,菜品圖片,另一個是菜品維護,包括查詢菜品,刪除菜品,添加菜品等功能。如圖4-10和4-11。圖4-10添加菜品圖4-11菜品維護資訊管理的實現這個頁面分為兩個部分實現,一個頁面是添加資訊,包括標題,內容,圖片上傳三個項目,另一個是資訊維護,包括查詢資訊,刪除資訊,添加資訊等功能。如圖4-12和4-13。圖4-12添加資訊圖4-13資訊維護(5)訂單管理的實現訂單管理主要包含訂單編號,菜單名稱,菜品價格,訂餐人聯系電話,支付方式,就餐時間,圖片,訂單處理等基本信息。如圖4-15。圖4-15訂單管理列表(6)用戶管理用戶管理主要包含用戶編號,用戶賬號,用戶姓名,用戶頭像,用戶地址,用戶簽名,用戶注冊日期,操作界面里有刪除和修改兩個功能。如圖4-16。圖4-16用戶管理核心功能的代碼與實現功能性代碼實現配置Hibernate和Spring的集成框架<?xmlversion="1.0"encoding="GBK"?><beans <!--****************************************數據源***************************************************************--> <beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!--指定連接數據庫的驅動--> <propertyname="driverClass"value="com.mysql.jdbc.Driver"/> <!--指定連接數據庫的URL--> <!--&zeroDateTimeBehavior=convertToNull是為了避免因數據庫中為date類型的數據為0000-00-00, 若為此值hibernate會報錯‘Cannotconvertvalue'0000-00-0000:00:00'fromcolumn1toTIMESTAMP’ --> <propertyname="jdbcUrl"value="jdbc:mysql://localhost:3306/dingcan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull"/> <!--指定連接數據庫的用戶名--> <propertyname="user"value="root"/> <!--指定連接數據庫的密碼--> <propertyname="password"value="123"/> <!--指定連接數據庫連接池的最大連接數--> <propertyname="maxPoolSize"value="40"/> <!--指定連接數據庫連接池的最小連接數--> <propertyname="minPoolSize"value="10"/> <!--指定連接數據庫連接池的初始化連接數--> <propertyname="initialPoolSize"value="10"/> <!--指定連接數據庫連接池的連接的最大空閑時間--> <propertyname="maxIdleTime"value="20"/> <propertyname="idleConnectionTestPeriod"value="18000"/> </bean> <beanid="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <propertyname="dataSource"> <refbean="dataSource"/> </property> <propertyname="hibernateProperties"> <props> <propkey="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop><!-- <propkey="hibernate.query.factory_class"> org.hibernate.hql.classic.ClassicQueryTranslatorFactory </prop> --><propkey="hibernate.show_sql">true</prop> <propkey="hibernate.format_sql">false</prop> <propkey="hibernate.hbm2ddl.auto">update</prop> </props> </property> <propertyname="mappingResources"> <list> <value>com/dingcan/model/Goods.hbm.xml</value> <value>com/dingcan/model/Admin.hbm.xml</value> <value>com/dingcan/model/User.hbm.xml</value> <value>com/dingcan/model/ShopCart.hbm.xml</value> <value>com/dingcan/model/Order.hbm.xml</value> <value>com/dingcan/model/Comments.hbm.xml</value> <value>com/dingcan/model/Zixun.hbm.xml</value> </list> </property> </bean> <!--配置事務begin--> <beanid="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <propertyname="sessionFactory"ref="sessionFactory"/> </bean> <tx:adviceid="txAdvice"transaction-manager="txManager"> <tx:attributes> <tx:methodname="*"read-only="false"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcutid="bussinessService" expression="execution(public*com.dingcan.service.*.*(..))"/> <aop:advisorpointcut-ref="bussinessService" advice-ref="txAdvice"/> </aop:config> <!--配置事務end--> <!--引入其它文件--> <importresource="applicationContext-dao.xml"/> <importresource="applicationContext-service.xml"/> <importresource="applicationContext-action.xml"/></beans>用戶登錄功能代碼的實現用戶登錄功能代碼:packagecom.dingcan.dao.impl;importjava.util.List;importnet.sf.json.JSONObject;importcom.dingcan.dao.UserDAO;importcom.dingcan.model.User;publicclassUserDAOImplextendsBaseDAOimplementsUserDAO{ /** *用戶登錄 */ publicUserlogin(Stringusername,Stringpassword){ StringBuffersb=newStringBuffer("FROMUserWHEREusername='") .append(username) .append("'andpassword='") .append(password) .append("'"); List<User>users=findByHQL(sb.toString()); if(users.size()>0){ returnusers.get(0); }else{ returnnull; } } /** *添加用戶 */ publicStringsaveUser(Useruser){ booleanflag=saveOrUpdate(user); if(flag){ returnJSONObject.fromObject(user).toString(); }else{ returnnull; } } publicUserfindUserById(intid){ StringBuffersb=newStringBuffer("FROMUserWHEREid="); sb.append(id); List<User>users=findByHQL(sb.toString()); if(users.size()>0){ returnusers.get(0); }else{ returnnull; } } publicUserupdateUserStatus(Useruser){ intexp=user.getExp()+1; user.setExp(exp);// user.setExp(level); saveOrUpdate(user); returnuser; } publicList<User>list(){ StringBuffersb=newStringBuffer("FROMUser"); List<User>users=findByHQL(sb.toString()); returnusers; } /** *刪除用戶 */ publicvoiddel(Useruser){ //TODOAuto-generatedmethodstub this.delete(user); } publicvoidupdateUserLevel(Useruser){ //TODOAuto-generatedmethodstub intlevel=user.getLevel()+1; user.setLevel(level); saveOrUpdate(user); }}商戶增刪改查菜品功能代碼的實現商戶通過后臺添加、刪除,修改菜品信息。商戶增刪改代碼:packagecom.dingcan.dao.impl;importjava.util.List;importcom.dingcan.dao.GoodsDAO;importcom.dingcan.model.Goods;importcom.dingcan.model.Wish;publicclassGoodsDaoImplextendsBaseDAOimplementsGoodsDAO{ publicGoodsload(intid){ StringBuffersb=newStringBuffer("FROMGoodsWHEREgoods_id=") .append(id); List<Goods>lst=findByHQL(sb.toString()); if(lst.size()>0){ returnlst.get(0); }else{ returnnull; } } /** *菜品列表 */ publicList<Goods>list(Stringname){ //TODOAuto-generatedmethodstub StringBuffersb; if(name!=null&&!name.equals("")){ sb=newStringBuffer("FROMGoodsWHEREgoods_namelike'%") .append(name).append("%'"); }else{ sb=newStringBuffer("FROMGoods"); } List<Goods>lst=findByHQL(sb.toString()); returnlst; } publicbooleansave(Goodsgoods){ //TODOAuto-generatedmethodstub returnsaveOrUpdate(goods); } publicbooleanupdate(Goodsgoods){ //TODOAuto-generatedmethodstub returnsaveOrUpdate(goods); } publicbooleandel(Goodsgoods){ //TODOAuto-generatedmethodstub this.delete(goods); returntrue; } publicList<Goods>list0(Stringname){ StringBuffersb; if(name!=null&&!name.equals("")){ sb=newStringBuffer("FROMGoodsWHEREgoods_namelike'%") .append(name).append("%'andtype='炒菜類'"); }else{ sb=newStringBuffer("FROMGoodsWHEREtype='炒菜類'"); } List<Goods>lst=findByHQL(sb.toString()); returnlst; } publicList<Goods>list1(Stringname){ StringBuffersb; if(name!=null&&!name.equals("")){ sb=newStringBuffer("FROMGoodsWHEREgoods_namelike'%") .append(name).append("%'andtype='包子類'"); }else{ sb=newStringBuffer("FROMGoodsWHEREtype='包子類'"); } List<Goods>lst=findByHQL(sb.toString()); returnlst; } publicList<Goods>list2(Stringname){ StringBuffersb; if(name!=null&&!name.equals("")){ sb=newStringBuffer("FROMGoodsWHEREgoods_namelike'%") .append(name).append("%'andtype='湯類'"); }else{ sb=newStringBuffer("FROMGoodsWHEREtype='湯類'"); } List<Goods>lst=findByHQL(sb.toString()); returnlst; } publicList<Goods>list3(Stringname){ StringBuffersb; if(name!=null&&!name.equals("")){ sb=newStringBuffer("FROMGoodsWHEREgoods_namelike'%") .append(name).append("%'andtype='魚類'"); }else{ sb=newStringBuffer("FROMGoodsWHEREtype='魚類'"); } List<Goods>lst=findByHQL(sb.toString()); returnlst; } publicList<Goods>list4(Stringname){ StringBuffersb; if(name!=null&&!name.equals("")){ sb=newStringBuffer("FROMGoodsWHEREgoods_namelike'%") .append(name).append("%'andtype='快餐類'"); }else{ sb=newStringBuffer("FROMGoodsWHEREtype='快餐類'"); } List<Goods>lst=findByHQL(sb.toString()); returnlst; }用戶購物車功能代碼的實現用戶瀏覽菜品,選中菜品添加至購物車進行購買。添加至購物車代碼:packagecom.dingcan.dao.impl;importjava.util.List;importcom.dingcan.dao.ShopCartDAO;importcom.dingcan.model.Goods;importcom.dingcan.model.ShopCart;publicclassShopCartDaoImplextendsBaseDAOimplementsShopCartDAO{ publicbooleansave(ShopCartcart){ //TODOAuto-generatedmethodstub returnsaveOrUpdate(cart); } publicList<ShopCart>list(intuserid){ StringBuffersb=null; if(userid>0){ sb=newStringBuffer("FROMShopCartWHEREuser_id=") .append(userid); } List<ShopCart>lst=findByHQL(sb.toString()); returnlst; } publicbooleandel(ShopCartcart){ //TODOAuto-generatedmethodstub this.delete(cart); returntrue; } publicShopCartload(intcartid){ StringBuffersb=newStringBuffer("FROMShopCartWHEREid=") .append(cartid); List<ShopCart>lst=findByHQL(sb.toString()); if(lst.size()>0){ returnlst.get(0); }else{ returnnull; } }}訂單生成功能代碼的實現用戶在移動端訂餐形成訂單,商戶根據訂單準備菜品。訂單生成功能代碼:packagecom.dingcan.dao.impl;importjava.util.List;importcom.dingcan.dao.OrderDAO;importcom.dingcan.model.Goods;importcom.dingcan.model.Order;publicclassOrderCartDaoImplextendsBaseDAOimplementsOrderDAO{ publicbooleansave(Orderorder){ //TODOAuto-generatedmethodstub returnthis.saveOrUpdate(order); } publicList<Order>list(intuser_id){ StringBuffersb; sb=newStringBuffer("FROMOrderWHEREuser_id=") .append(user_id).append("andstatus<=2"); List<Order>lst=findByHQL(sb.toString()); returnlst; } publicList<Order>list(){ StringBuffersb; sb=newStringBuffer("FROMOrder") .append("orderbyiddesc"); List<Order>lst=findByHQL(sb.toString()); returnlst; } publicOrderload(intid){ StringBuffersb; sb=newStringBuffer("FROMOrderWHEREid=") .append(id); List<Order>lst=findByHQL(sb.toString()); returnlst.get(0); } publicList<Order>list1(intuser_id){ StringBuffersb; sb=newStringBuffer("FROMOrderWHEREuser_id=") .append(user_id).append("andstatus=3"); List<Order>lst=findByHQL(sb.toString()); returnlst; }}

系統(tǒng)測試與部署系統(tǒng)測試概述系統(tǒng)的測試是要求系統(tǒng)設計師對整個系統(tǒng)的測試,把系統(tǒng)的所有部分看成是一個整體,以此來檢查他是否和設計之初有什么不想符合的地方,這樣的測試可以發(fā)現和分析系統(tǒng)中存在的問題,而一個軟件系統(tǒng),要測試的則是健壯性和防滲透性測試以及壓力測試。軟件系統(tǒng)的測試主要就是為了驗證系統(tǒng)是否可以正常運行,以及可能潛在的問題,主要內容有:功能測試健壯性測試壓力測試安全測試通過測試我們可以得到系統(tǒng)的功能是否完整以及系統(tǒng)內部的業(yè)務邏輯是否合理,及時的發(fā)現問題。具體測試用例(1)登錄測試測試與登錄相關的用戶操作,成功,失敗,輸入錯誤等條件下用戶的客戶端所反饋的信息。如表5-1。表5-SEQ圖書信息顯示測試5-\*ARABIC1登錄測試用例用例名稱用戶登錄測試功能描述用戶登錄管

溫馨提示

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

評論

0/150

提交評論