基于jsp網(wǎng)上訂餐系統(tǒng)的設(shè)計實現(xiàn)_第1頁
基于jsp網(wǎng)上訂餐系統(tǒng)的設(shè)計實現(xiàn)_第2頁
基于jsp網(wǎng)上訂餐系統(tǒng)的設(shè)計實現(xiàn)_第3頁
基于jsp網(wǎng)上訂餐系統(tǒng)的設(shè)計實現(xiàn)_第4頁
基于jsp網(wǎng)上訂餐系統(tǒng)的設(shè)計實現(xiàn)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

I基于jsp網(wǎng)上訂餐系統(tǒng)的設(shè)計實現(xiàn)1引言1.1系統(tǒng)背景通過近幾個月的市場調(diào)研與分析,現(xiàn)階段,大多數(shù)的餐館以及酒店的餐飲管理系統(tǒng)都是采用比較傳統(tǒng)的方式,雖然現(xiàn)在網(wǎng)絡(luò)的發(fā)展已經(jīng)很快了,但是還有好多的餐館以及酒店在信息化方面都跟不上時代的步伐,造成了好多人力、物力以及財力的浪費。經(jīng)過調(diào)研,每次就餐至少要經(jīng)過傳統(tǒng)的五個步驟:用戶點菜,傳菜員把訂單送到廚房,廚房根據(jù)訂單做菜,上餐員把菜送到用戶那,用戶買單。這種傳統(tǒng)的管理模式在一定程度上增加了服務(wù)員的工作量。隨著餐館的增多、類型的變化以及要求的不斷提高,按時完成工作的壓力也會增大,工作量也會不斷的增加。人往往在各種壓力之下容易出現(xiàn)各種錯誤,而且這樣的工作也是十分繁瑣的,可以說這樣的管理模式已經(jīng)無法適應(yīng)時代的要求,因此提出這個基于JAVA/JSP的餐飲管理系統(tǒng)來解決現(xiàn)在存在的問題。1.2網(wǎng)上訂餐管理系統(tǒng)的現(xiàn)狀隨著計算機技術(shù)的發(fā)展,網(wǎng)絡(luò)應(yīng)用的已經(jīng)很普遍,現(xiàn)在好多團隊都開發(fā)了基于JSP的網(wǎng)上訂餐系統(tǒng)平臺、基于ASP的網(wǎng)上訂餐系統(tǒng)、基于.net的網(wǎng)上訂餐系統(tǒng)等等,都是為了適應(yīng)時代的發(fā)展和要求。調(diào)查得知,餐飲對于人們來說是一個大的問題,能夠在緊張的工作和學(xué)習之余吃上清爽可口的飯菜,真的是一件幸福的事。在傳統(tǒng)的餐飲公司,人們一到了吃飯的時間,排隊難,買餐難,既耽誤時間又影響吃飯的心情,然而,在Internet迅速發(fā)展的同時,網(wǎng)上訂餐就走入了人們的生活,這不僅僅解決了排隊難,買餐難,最重要的是節(jié)約了時間。有時候商家為了薄利多銷,也會有相應(yīng)的促銷活動,主要有系統(tǒng)管理、會員管理、菜品類別、菜品管理、菜品錄入、公告管理、訂單管理和留言管理等功能,能夠?qū)崿F(xiàn)簡單的網(wǎng)上訂餐,貨到付款,以及一些小功能的修飾等等。系統(tǒng)可以采用Browser/Server模式進行設(shè)計開發(fā),這種交互式的應(yīng)用更有利于人們?nèi)W(xué)習和掌握,使用這些技術(shù)來進行網(wǎng)上訂餐系統(tǒng),不用再進行點菜出菜等繁瑣的程序,不僅減少了人力,減輕了工作量,而且還提高了工作效率。網(wǎng)上訂餐系統(tǒng)采用比較先進的技術(shù),增強了應(yīng)用性,提高了容錯能力,進而也能夠提高服務(wù)質(zhì)量,給用戶營造一個舒適環(huán)境。本系統(tǒng)采用JSP技術(shù)設(shè)計,數(shù)據(jù)庫使用SQLServer2005開發(fā)基于MVC模式的網(wǎng)上訂餐管理系統(tǒng)。老板或其他用戶通過Internet就能訪問餐館的管理系統(tǒng),增進老板和用戶的交流,共同對餐飲公司進行管理。1.3系統(tǒng)開發(fā)的目的運用已所學(xué)的知識進行餐飲管理系統(tǒng)的設(shè)計,在設(shè)計的過程中,會遇到一些問題,在了解和熟知問題在哪的時候,作進一步的修改,提高糾錯和編程能力,從而提高實際操作水平。數(shù)據(jù)庫設(shè)計的恰當,能夠減小數(shù)據(jù)庫數(shù)據(jù)的冗余度,這樣不僅會少占用存儲空間,而且能提高計算機的運行速度。(3)本系統(tǒng)主要任務(wù)是完成網(wǎng)上訂餐管理信息化,餐館傳統(tǒng)業(yè)務(wù)要和餐館的信息化平臺同時存在,主要以增進老板和用戶溝通為目的。最終完成的網(wǎng)上訂餐管理系統(tǒng)應(yīng)具有以下功能:①為所有網(wǎng)頁瀏覽者開放并提供餐館信息展示、用戶注冊、登錄、查看訂單信息等。②為登錄用戶提供的修改個人信息、發(fā)表留言、點單與退訂等。③為餐館管理者提供的會員管理、菜品類別、菜品管理、公告管理、訂單管理、留言管理等。④頁面設(shè)計簡潔大方,突出了餐館人性化的需求,界面友好,用戶操作簡單。1.4系統(tǒng)開發(fā)的意義解決了餐飲管理系統(tǒng)因為資金的問題,難以擴大規(guī)模的現(xiàn)象和要求被提高的效率提供了解決的辦法。同時,提高了店員和用戶之間溝通的效率,上菜亂和不及時現(xiàn)象有所緩解。B/S模式的管理系統(tǒng)應(yīng)用面廣、網(wǎng)頁設(shè)計美觀整潔大方、易于操作、內(nèi)容易更新、成本低,而且可以與用戶通過留言板進行交流,能夠更好的進行餐飲公司的管理。本系統(tǒng)隨時給用戶提供最新、最實惠的菜單,真正起到及時有效解決吃飯難、吃飯貴的情況。同時,利用系統(tǒng)交互平臺可以充分了解用戶的想法,與用戶進行深層次的交流,對用戶不滿意的地方,做好改正,贏得廣大用戶的歡迎。與用戶建立良好的關(guān)系,不僅有利于幫助樹立良好形象,而且有利于提高用戶的滿意度,從而贏得社會形象和利益的雙贏。

2開發(fā)平臺及語言介紹2.1系統(tǒng)開發(fā)工具與設(shè)計模式的選擇2.1.1系統(tǒng)開發(fā)工具本系統(tǒng)主要使用JSP、JAVA語言對系統(tǒng)進行設(shè)計。JSP以JAVA技術(shù)為基礎(chǔ),具有動態(tài)頁面與靜態(tài)頁面分離、設(shè)計的語言“一次編寫,到處執(zhí)行”、“安全性、保密性高”等優(yōu)點。在SQLServer2005數(shù)據(jù)庫中,準許管理員使用一些提示信息和工具把數(shù)據(jù)庫的數(shù)據(jù)發(fā)布到網(wǎng)上,并且可以根據(jù)需要來修改已經(jīng)發(fā)布的數(shù)據(jù)信息,所以采用此數(shù)據(jù)庫來完成系統(tǒng)的設(shè)計。2.1.2系統(tǒng)設(shè)計模式在大多數(shù)B/S結(jié)構(gòu)的Web應(yīng)用中,瀏覽器能夠直接通過HTML或JSP的形式與客戶進行交流。在中間層上采用基于MVC模型設(shè)計。Model層用來實現(xiàn)業(yè)務(wù)邏輯,View層用來顯示用戶界面,Controller層主要負責View層和Model層之間的控制關(guān)系。具體實現(xiàn)時,把Servlet用作應(yīng)用程序的控制器,把JSP文檔作為視圖,JavaBeans被用來表示模型。所有的請求都被發(fā)送給作為控制器的Servlet,它接受請求,并根據(jù)請求信息將它們分發(fā)給適當?shù)腏SP來響應(yīng)。同時,Servlet還根據(jù)JSP的需求生成JavaBeans的實例并輸出給JSP環(huán)境。這種設(shè)計模式很好地實現(xiàn)了數(shù)據(jù)層與表示層的分離,使開發(fā)工作更加容易和迅速。2.2JAVA語言簡介JAVA語言語法簡單、面向?qū)ο?、穩(wěn)定、與平臺無關(guān)、多線程、動態(tài)等特點,是目前軟件設(shè)計中優(yōu)秀的編程語言,JAVA可以用來開發(fā)大型的應(yīng)用程序,特別適合Internet應(yīng)用的開發(fā),編寫的軟件能在執(zhí)行碼上兼容。JAVA確實具備了“一旦寫成,處處可用”的特點,JAVA也提供了許多以網(wǎng)絡(luò)應(yīng)用為核心的技術(shù),使得JAVA特別適合于網(wǎng)絡(luò)應(yīng)用軟件的設(shè)計與開發(fā)。JAVA是面向?qū)ο缶幊?,并涉及網(wǎng)絡(luò)、多線程等重要的基礎(chǔ)知識,是一門很好的面向?qū)ο笳Z言。JAVA語言的出現(xiàn)源于對獨立于平臺的語言的需要,希望這種語言能編寫出如各種家用電器等設(shè)備的芯片上且易于維護的程序。JAVA語言可以在計算機的操作系統(tǒng)之上再提供一個JAVA運行環(huán)境,該環(huán)境有JAVA虛擬機、類庫以及一些核心文件組成。2.3JSP簡單介紹JSP是于1999年6月推出的一種動態(tài)網(wǎng)頁技術(shù)標準。

JSP技術(shù)是一種開發(fā)動態(tài)網(wǎng)頁的技術(shù),它結(jié)合了JAVA進行開發(fā),可以進行數(shù)據(jù)的交互,使網(wǎng)頁不再只是屬于靜態(tài)網(wǎng)頁,網(wǎng)頁中還能通過tags和scriptlets來訪問存在于服務(wù)端的不同資源的應(yīng)用邏輯。JSP著重于基于組件的設(shè)計模式,對xml技術(shù)也有一定的整合,使程序更具有健壯性和可維護性。JSP著重將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示進行合理的分離,支持可以重用的基于組件的設(shè)計模式,使基于Web層的應(yīng)用程序的開發(fā)越來越得心應(yīng)手和方便快捷。當Web服務(wù)器在接受到訪問JSP網(wǎng)頁的respect時,首先要執(zhí)行respect中相應(yīng)的程序段,然后再執(zhí)行結(jié)果然后連同JSP文件中的HTML代碼一起response響應(yīng)給客戶。插入的JAVA程序段可以操作mysql數(shù)據(jù)庫的數(shù)據(jù)、重定向網(wǎng)頁等,用來實現(xiàn)創(chuàng)建動態(tài)網(wǎng)頁所需要的服務(wù)功能。JSP在服務(wù)器端執(zhí)行的,然后返回給客戶端就是一個文本,然后客戶端在瀏覽器進行解碼編譯等過程。然后把相應(yīng)的數(shù)據(jù)返回給瀏覽器,就可以進行數(shù)據(jù)的交互了。Servlet是JSP的基礎(chǔ)技術(shù),而且大型的Web網(wǎng)站應(yīng)用程序的開發(fā)要把JAVAServlet和JSP配合實用才能完成。JSP技術(shù)的優(yōu)點:(1)一次編寫,到處運行。除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺支持。JSP和JAVA具有很強的跨平臺性,可以在不同的瀏覽器上進行運行。(3)強大的可伸縮性。它可以進行不同的服務(wù)器之間的事務(wù)處理的機制分配,可以是一臺服務(wù)器,也可以是很多臺或者是無數(shù)臺服務(wù)器進行數(shù)據(jù)的部署功能(4)多樣化和功能強大的開發(fā)工具支持。JAVA已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多都是開源的,并且在其中有很多都是已經(jīng)可以順利的跨平臺運行的。(5)支持服務(wù)器端組件。Web應(yīng)用需要強大的服務(wù)器端組件來支持其良好的運行,開發(fā)人員需要利用其他的輔助工具來實現(xiàn)實現(xiàn)復(fù)雜功能的組件以供Web頁面的調(diào)用,來增強系統(tǒng)強大的性能。request是屬于客戶端的請求,方式有g(shù)et和post兩種;response網(wǎng)頁傳回客戶端的響應(yīng);pageContext網(wǎng)頁的屬性是在這里管理;session與請求有關(guān)的會話;applicationservlet正在執(zhí)行的內(nèi)容;out用來傳送響應(yīng)的輸出流;config代碼片段配置對象;pageJSP網(wǎng)頁本身;exception針對錯誤的網(wǎng)頁,未捕捉的例外。2.4JavaBean技術(shù)JavaBean是一種JAVA類,通過封裝屬性和方法成為具有某種功能或者處理某個業(yè)務(wù)的對象,簡稱bean。JavaBean是一個可重復(fù)使用的軟件組建,由于JavaBean是基于JAVA語言的,因此JavaBean不依賴于平臺,具有以下特點:1.可以實現(xiàn)代碼的重復(fù)利用。2.易編寫、易維護、易使用。3.可以在任何安裝了JAVA運行環(huán)境的平臺上使用,而不需要重新編譯。一個基本的JSP頁面就是普通的HTML標記和JAVA程序片組成,如果程序片和HTML大量交互在一起就顯得頁面混雜,不易維護。JSP頁面應(yīng)當將數(shù)據(jù)的處理過程指派給一個或幾個bean來完成,只需在JSP頁面中調(diào)用bean,可有效地分離靜態(tài)工作部分和動態(tài)工作部分。JavaBean是一種可重復(fù)使用的且跨平臺的軟件組件。可分為兩種:一種是有用戶界面的JavaBean,另一種是沒有用戶界面,主要負責表示業(yè)務(wù)數(shù)據(jù)或者處理事務(wù)的JavaBean。JavaBean是一個公共的類,一個不帶參數(shù)的構(gòu)造方法,可以通過set方法設(shè)置屬性,通過get方法獲得屬性。JSP通常訪問的是后一種JavaBean。2.5SQLServer2005數(shù)據(jù)庫SQLServer2005是一個大型的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),作為Windows數(shù)據(jù)庫中的成員,SQLServer2005可以滿足各種類型的客戶和獨立軟件供應(yīng)商構(gòu)建商業(yè)應(yīng)用程序的需要。SQLServer可以適應(yīng)很小的個人數(shù)據(jù)庫,也可以數(shù)據(jù)多點的數(shù)據(jù)庫。SQLServer2005是一種C/S模式的數(shù)據(jù)庫管理系統(tǒng),這種體系結(jié)構(gòu)把所有的工作分解在服務(wù)器和在客戶機上,有效地分配資源,減輕了服務(wù)器的工作強度。SQLServer2005可以提供大系統(tǒng)所需要的數(shù)據(jù)庫服務(wù)。在大型客戶/服務(wù)器系統(tǒng)中,大批用戶可能同時連接到一個SQLServer2005上,SQLServer2005能夠有效地來處理這種情況。SQLServer2005也可以為多個用戶分配可用的資源。多個應(yīng)用程序可以在單臺計算機上運行。例如,為許多其他程序提供數(shù)據(jù)庫服務(wù)的程序能夠為每個用戶運行一個單獨的SQLServer2005,所有程序都在一臺計算機上。這樣使得每個用戶的數(shù)據(jù)互不干擾,而服務(wù)器只管理一個服務(wù)器計算機,這樣就能夠減少復(fù)雜性。2.6MyEclipse概述2.6.1MyEclipse介紹MyEclipse是一個主要用于開發(fā)JAVA,J2EE的軟件工具,這個工具集合了Eclipse插件,使得用起來比較方便,所以使MyEclipse的內(nèi)部功能變得非常之強大,并且可以根據(jù)特定的功能安裝特定的插件,滿足開發(fā)者的需求,在開發(fā)時得心應(yīng)手,MyEclipse是MyEclipseEnterpriseWorkbench的簡稱是對Eclipse的進一步擴展,利用它的一些增值功能可以進行數(shù)據(jù)庫的開發(fā)和JAVAEE的開發(fā),以及對醒目的發(fā)布和服務(wù)器的維護開發(fā)有著很方便的應(yīng)用。各種豐富的JAVAEE集成開發(fā)環(huán)境使開發(fā)更具有快捷性,提高開發(fā)的進度,包括開發(fā),測試,維護等特定的工作需求,它包含了完善的編碼、測試、調(diào)試以及發(fā)布功能,能夠完整的支持好多語言,比如說:HTML、JSP、JAVAServlet、Struts、Sping、Hibernate、CSS+DIV、HIBERNAT、EJB3、JAVASCRIPT、SQL、JSF、SPING、STRUTS。MyEclipse是一種非常優(yōu)秀的程序開發(fā)編程環(huán)境,它可以用于JAVA、j2ee的eclipse插件集合。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:JAVAEE模型Web開發(fā)工具EJB開發(fā)工具應(yīng)用程序服務(wù)器的連接器JAVAEE系統(tǒng)部署服務(wù)數(shù)據(jù)庫服務(wù)7.MyEclipse整合幫以上每一種功能,在Eclipse中都有與之對應(yīng)的功能部件和一系列插件來實現(xiàn)它們。MyEclipse的這種模塊化,可以在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。2.6.2MyEclipse的安裝和配置1.安裝這里以MyEclipse8.5為例介紹安裝。首先在官網(wǎng)上下載MyEclipse文件和Common文件,分別安裝到c:\MyEclipse\MyEclipse8.5和c:\MyEclipse\Common,然后新建一個c:\MyEclipse\myPlugin用來專放以后加入的插件,再建立一個工作區(qū):d:\MyEclipseWorkPlace2.輸入Subscriber注冊信息在configurationcenter中的subscription下輸入注冊信息。3.漢化MyEclipse8.5將language文件拷貝到c:\MyEclipse\myPlugin;打開MyEclipse,然后導(dǎo)入工程Chinese;先修改main函數(shù),然后再指向“c:\\MyEclipse\\myPlugin\\language\\plugins”;運行,復(fù)制控制臺產(chǎn)生的一大串字符;用文本編輯器打開“c:\MyEclipse8.5\configuration\org.eclipse.equinox.simpleconfigurator”目錄下的文件,將在運行那一步生成一大串的英文復(fù)制到該文件的后面;找到c:\MyEclipse\MyEclipse8.5目錄下找到MyEclipse.ini文件,打開最后一行加多一條語句-Duser.language=zh;刪除c:\MyEclipse\MyEclipse8.5\configuration\org.eclipse.update文件夾;保存,啟動MyEclipse。

3可行性研究3.1可行性研究的任務(wù)可行性研究的目的,就是用最小的代價在盡可能短的時間內(nèi)解決問題是否能夠解決,并且必須分析幾種主要可能解法的利弊,從而判斷原定系統(tǒng)規(guī)模和目標是否實現(xiàn),系統(tǒng)完成后所帶來的效益是否值得去開發(fā)這個系統(tǒng)。3.2可行性分析可行性研究就是要求設(shè)計人員用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。目前,網(wǎng)絡(luò)應(yīng)用軟件運行的模式主要有兩類:Client/Server模式,Browser/Web模式。前者主要缺點是維護、升級較麻煩;后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術(shù),它與客戶端/服務(wù)器方式類似,客戶端是一個標準的瀏覽器,服務(wù)器端是WebServer。很多部門的業(yè)務(wù)系統(tǒng)、管理信息系統(tǒng)(MIS)都采用這種模式,它的主要優(yōu)點是方便于擴充應(yīng)用、升級維護簡便。通過對該餐飲公司的各個方面進行了具體的了解之后,現(xiàn)對該餐飲管理系統(tǒng)的可行性進行分析。3.2.1技術(shù)可行分析在硬件需求方面,系統(tǒng)需要一臺裝有MyEclipse、SQLServer2005的計算機就可以了。在軟件技術(shù)方面,JAVA和JSP以及其他的語言都可以作為本系統(tǒng)地開發(fā)語言,只要認真學(xué)習并靈活運用任意幾種或一種語言,就能設(shè)計出具有動態(tài)美觀且易于修改餐飲管理系統(tǒng)。因此在技術(shù)上是可行的。3.2.2經(jīng)濟可行分析系統(tǒng)采用的應(yīng)用服務(wù)器Tomcat7.0、數(shù)據(jù)庫組件SQL2005都屬于開源產(chǎn)品。本系統(tǒng)是為餐飲公司設(shè)計使用的,系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當系統(tǒng)投入運行后可以為餐館節(jié)約大量的人力、物力、財力。所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟上完全可行。3.2.3操作可行分析界面設(shè)計時能夠考慮到管理員和客戶的日常行為習慣,使得操作非常簡單;錄入數(shù)據(jù)時快速、規(guī)范、可信度高;訂單信息準確;靈活利用網(wǎng)絡(luò)帶來的便捷;界面修改方便;并且容易維護和擴充。綜上所述,餐飲管理系統(tǒng)在技術(shù)上、經(jīng)濟上、操作上均可行。因此,開發(fā)本系統(tǒng)是可行的。3.3系統(tǒng)分析3.3.1訂單業(yè)務(wù)流程分析在進行訂單信息分析時,要求按照原有的訂單預(yù)訂的過程,逐個地檢查所有的訂單用戶名字,時間,送貨地址,手機號等內(nèi)容,弄清各個環(huán)節(jié)需要的信息、信息來源、流經(jīng)去向、處理方法和信息狀態(tài)等。瀏覽菜品信息瀏覽菜品信息注冊預(yù)訂查看訂單開始登錄用戶注冊結(jié)束否是圖2業(yè)務(wù)流程圖3.3.2數(shù)據(jù)流圖數(shù)據(jù)流圖是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。數(shù)據(jù)流程與數(shù)據(jù)流程分析是以后建立數(shù)據(jù)庫系統(tǒng)和設(shè)計功能模塊處理過程的基礎(chǔ)。描述數(shù)據(jù)流程的工具是數(shù)據(jù)流程圖以及其附帶的數(shù)據(jù)字典、處理邏輯等圖表。其中數(shù)據(jù)流程圖是描述系統(tǒng)邏輯模型的主要工具,它以少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、存儲和傳遞。數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程。數(shù)據(jù)流程圖中包括四種主要元素,分別是數(shù)據(jù)流、數(shù)據(jù)源(終點)、對數(shù)據(jù)的加工(處理)、數(shù)據(jù)存儲。由于數(shù)據(jù)流是流動中的數(shù)據(jù),所以必須有流向,除了與數(shù)據(jù)存儲之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語命名。對數(shù)據(jù)的加工是對數(shù)據(jù)進行處理的單元,它接收一定的數(shù)據(jù)輸入,對其進行處理并產(chǎn)生輸出。數(shù)據(jù)存儲表示信息的靜態(tài)存儲,可以代表文件,文件的一部分、數(shù)據(jù)庫的元素等。在業(yè)務(wù)流程分析的基礎(chǔ)上,對數(shù)據(jù)流進行了分析,從數(shù)據(jù)流動過程掌握了實際業(yè)務(wù)的數(shù)據(jù)處理模式。3.3.3數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義集合。數(shù)據(jù)字典是對數(shù)據(jù)流、數(shù)據(jù)元素、數(shù)據(jù)存儲、處理這4類元素的定義組成,數(shù)據(jù)字典中的定義是對數(shù)據(jù)自頂向下的分解,分解到不需要進一步定義,這個分解過程就完成了。數(shù)據(jù)元素組成數(shù)據(jù)的方式有下面4種類型:順序以確定次序連接兩個或多個分量。選擇從兩個或多個可能的元素中選取一個。重復(fù)把指定的分量重復(fù)零次或多次??蛇x一個分量是可有可無的。數(shù)據(jù)字典作為分析階段的工具,建立的嚴密一致的定義很有助于改進管理員和客戶之間的通信,能夠避免一些麻煩問題。

4需求分析4.1編寫目的需求分析的目的是分析出本系統(tǒng)所應(yīng)該實現(xiàn)的功能,需要什么樣的輸入,經(jīng)過什么樣的過程,能夠達到什么樣的結(jié)果,這樣就勾勒出所實現(xiàn)功能所應(yīng)具有的流程,便于程序員與客戶之間的交流、協(xié)作,為下一步的詳細設(shè)計打好基礎(chǔ),提高本系統(tǒng)的實用性、安全性、可靠性,在設(shè)計的過程中能夠考慮到將來可能發(fā)生的故障以及要怎么去解決它,這樣才能使系統(tǒng)更加穩(wěn)定。4.2功能需求分析本系統(tǒng)在實現(xiàn)對餐飲公司管理的同時,包括對會員、菜品類別、菜品管理、從拼錄入、公告管理、訂單管理、留言等的管理,力求成為老板和用戶之間的溝通橋梁。系統(tǒng)為餐飲公司提供技術(shù)支持,幫助餐飲公司建立網(wǎng)絡(luò)交流平臺,發(fā)布餐飲服務(wù)信息,幫助餐飲公司及時了解用戶對餐飲的評價和建議。除此之外該平臺還扮演監(jiān)督者和管理者角色,用戶通過系統(tǒng)很快找到想要的餐飲信息,管理個人基本信息,訂餐等基本要求。用戶還可以通過系統(tǒng)對餐飲公司發(fā)表留言、咨詢等。管理員表在數(shù)據(jù)庫中主要存儲管理員的姓名、密碼,主要用來登陸后臺管理系統(tǒng),進行后臺的各種管理操作,主要有菜品添加、刪除、公告管理、留言管理等。公告信息表主要用來存儲管理員發(fā)布的公告信息,能實現(xiàn)用戶可以快捷的了解網(wǎng)站信息,以此來選擇所需要的信息。訂單信息表主要用來存儲用戶已經(jīng)預(yù)定的菜品,用戶可以查看自己的訂單信息,管理員可以查看所有的訂單信息。并可以進行訂單的刪除操作。菜品種類信息表可以用來存儲已有的菜品類,從而可以分類管理所有的菜品,提高用戶查找的效率。用戶信息表主要用來存儲注冊用戶的基本信息,用戶就可以方便的下訂單了,在訂單信息表中的用戶必須是已注冊的用戶,管理員可以管理已有的用戶。留言信息表用來存儲用戶給管理員反饋的信息,管理員能夠查看所有的留言信息并進行留言管理,用戶也能查看留言信息,菜品信息表用來存儲菜品的基本信息,能夠向用戶提供詳盡的菜品信息,供用戶參考選擇合適的菜品進行預(yù)訂。4.3性能需求分析該系統(tǒng)可以識別輸入的用戶名和密碼,并進行校驗,有相關(guān)的一些信息提示。每個功能模塊能相互轉(zhuǎn)換,安全性良好。界面友好、直觀,用戶操作起來靈活也易于掌握,方便用戶訂餐。系統(tǒng)可擴展性好,也易于維護,模塊功能明確,模塊化程度高,方便軟件維護。該系統(tǒng)至少需要一臺主機作為服務(wù)器,并且該主機要以獨立的IP接入互聯(lián)網(wǎng)。如果需要的話,可以為此IP申請域名綁定。具體系統(tǒng)需求如下:Windows7操作系統(tǒng)SQLServer2005數(shù)據(jù)庫服務(wù)器JRE1.5.2_03或更高版本的Java運行時環(huán)境Tomcat7.0或更高版本的應(yīng)用服務(wù)器4.4靈活性需求分析本系統(tǒng)的靈活性需求就是當某些需求發(fā)生變化時,本身適應(yīng)這些變化的能力,例如:運行環(huán)境的變化,系統(tǒng)能否移植后正常運行;同其他軟件的接口發(fā)生變化后能否解決這個問題;在時間上能否延緩或提前;在操作方式上能否用至少一種方式來操作本系統(tǒng)。4.5數(shù)據(jù)庫需求針對餐飲管理系統(tǒng)的數(shù)據(jù)庫需求,需要設(shè)計的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)有以下:管理員信息,包括的數(shù)據(jù)項有:管理員編號,姓名,密碼;公告信息,包括的數(shù)據(jù)項有:公告編號,標題,內(nèi)容,時間;訂單信息,包括的數(shù)據(jù)項有:訂單號,數(shù)量,送貨地址,付款方式,菜編號,用戶編號,狀態(tài),刪除;菜品種類信息,包括的數(shù)據(jù)項有:菜品編號,名稱,介紹,刪除;用戶信息,包括的數(shù)據(jù)項有:用戶編號,姓名,密碼,確認密碼,性別,年齡,地址,手機號,email,qq,刪除;留言信息,包括的數(shù)據(jù)項有:留言編號,標題,留言內(nèi)容,留言時間,用戶編號;菜品信息,包括的數(shù)據(jù)項有:菜品編號,菜編號,名稱,介紹,價格,附件,附件原始編號,時間,刪除;4.6需求的意義在對系統(tǒng)進行目的分析、功能分析、性能分析、靈活性分析、數(shù)據(jù)庫需求分析后,能夠正確理性的看待系統(tǒng),究竟要設(shè)計成什么樣,已經(jīng)大致有了一個框架,需求分析能夠系統(tǒng)帶來經(jīng)濟上和時間上的收益,

5總體設(shè)計5.1系統(tǒng)功能設(shè)計系統(tǒng)設(shè)計是一個把軟件需求轉(zhuǎn)換成用軟件系統(tǒng)表示的過程。系統(tǒng)設(shè)計通常有兩種方法:一種是歸納法,另一種是演繹法。歸納法是從前一步得到的一系列供選擇的方案中選取若干個合理的方案,再判斷那些方案合理時應(yīng)考慮在問題的定義和可行性研究階段確定的工程規(guī)模和目標,應(yīng)該綜合分析對比各種合理方案的利弊,選出最佳方案。演繹法是一種公理化方法,即從一般的規(guī)則和原理來看,結(jié)合設(shè)計人員的知識,從能夠?qū)崿F(xiàn)功能的方法中選取一些,將它們組合起來,完成這個功能的設(shè)計,從而創(chuàng)造出具有所需功能的新系統(tǒng)。在系統(tǒng)設(shè)計的實踐中,這兩種方法往往是并用的。在對餐飲管理系統(tǒng)全面分析的情況下,制定出餐飲管理系統(tǒng)的總體設(shè)計。系統(tǒng)設(shè)計包括系統(tǒng)總體設(shè)計、系統(tǒng)詳細設(shè)計、系統(tǒng)數(shù)據(jù)庫設(shè)計、系統(tǒng)開發(fā)工具、開發(fā)技術(shù)和開發(fā)模式等。從數(shù)據(jù)流圖出發(fā),對數(shù)據(jù)流圖進行分析,得出的層次化的模塊結(jié)構(gòu)圖。餐飲管理系統(tǒng)前臺功能模塊圖如圖4所示。餐飲管理系統(tǒng)餐飲管理系統(tǒng)首頁免費注冊我的信息我的預(yù)訂留言板后臺管理圖4前臺功能模塊5.2系統(tǒng)數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫是本系統(tǒng)的基礎(chǔ)和核心。它設(shè)計的是否合理將直接影響著整個系統(tǒng)的質(zhì)量。數(shù)據(jù)庫是一切系統(tǒng)設(shè)計的基礎(chǔ),數(shù)據(jù)庫如果設(shè)計的不合理,將在系統(tǒng)開發(fā)過程中,甚至到后期的系統(tǒng)維護、功能變更和功能擴展時,存在較多的問題,嚴重時甚至要重新設(shè)計,重做大量已完成工作。數(shù)據(jù)庫關(guān)系圖如圖5:圖5數(shù)據(jù)庫關(guān)系圖5.2.1概念結(jié)構(gòu)設(shè)計從數(shù)據(jù)需求分析中得出系統(tǒng)的實體屬性圖。留言實體屬性圖如圖6所示。留言留言留言編號標題內(nèi)容留言時間用戶編號圖6留言實體屬性圖管理員實體屬性圖如圖7所示。管理員管理員管理員編號姓名密碼圖7管理員實體屬性圖

刪除附件價格菜品刪除附件價格菜品介紹名稱菜編號菜品編號附件原始編號時間圖8菜品實體屬性圖菜品種類實體屬性圖如圖9所示。菜品種類菜品種類刪除介紹菜品名字菜品編號圖9菜品種類實體屬性圖用戶實體屬性圖如圖10所示。用戶用戶用戶編號姓名密碼確認密碼性別年齡地址手機號QQ刪除Email圖10用戶實體屬性圖公告實體屬性圖如圖11所示。公告公告時間內(nèi)容標題公告編號圖11公告實體屬性圖

訂單實體屬性圖如圖12所示。刪除刪除用戶號菜號訂單付款方式送貨地址數(shù)量訂單號狀態(tài)聯(lián)系方式圖12訂單實體屬性圖nnn包含用戶nnn包含用戶用戶編號姓名密碼確認密碼性別年齡地址手機號QQ刪除Email時間刪除附件價格菜品介紹名稱菜編號菜品編號附件原始編號刪除用戶編號菜編號付款方式送貨地址數(shù)量訂單號狀態(tài)訂單聯(lián)系方式1刪除介紹菜品編號菜品種類菜品名稱圖13E-R圖5.2.2邏輯結(jié)構(gòu)設(shè)計對數(shù)據(jù)庫中實現(xiàn)具體表的詳細設(shè)計。即各數(shù)據(jù)庫表的字段名、類型、長度等信息進行了詳細的描述:根據(jù)系統(tǒng)E-R圖,系統(tǒng)數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計如下:管理員(管理員編號,姓名,密碼)公告(公告編號,標題,內(nèi)容,時間)訂單(訂單號,數(shù)量,送貨地址,聯(lián)系方式,付款方式,菜編號,用戶編號,狀態(tài),刪除)菜品種類(菜品編號,名稱,介紹,刪除)用戶(用戶編號,姓名,密碼,確認密碼,性別,年齡,地址,手機號,email,qq,刪除)留言(留言編號,標題,留言內(nèi)容,留言時間,用戶編號)菜品(菜品編號,菜編號,名稱,介紹,價格,附件,附件原始編號,時間,刪除)5.2.3數(shù)據(jù)庫表設(shè)計表5.1管理員信息表(admin)字段名類型長度說明userIdint4管理員編號(主鍵)userNamevarchar50姓名userPwvarchar50密碼注:該表用于存放管理員的信息。表5.2訂單信息表(order)字段名類型長度說明idint4訂單號(主鍵)shuliangint4數(shù)量songhuodizhivarchar50送貨地址lianxifangshivarchar50聯(lián)系方式fukuangfangshivarchar50付款方式goods_idint50菜號(外鍵)user_idvarchar50用戶號(外鍵)zhuangtaivarchar50狀態(tài)delvarchar50刪除注:用來存放訂單基本信息。

表5.3菜品種類信息表(catelog)字段名數(shù)據(jù)類型長度功能描述idint4菜品編號(主鍵)namevarchar50名字jieshaovarchar5000介紹delvarchar50刪除注:該表用于存放菜品種類信息。表5.4留言信息表(liuyan)字段名數(shù)據(jù)類型長度功能描述idvarchar50留言編號(主鍵)varcharvarchar50標題contentvarchar50留言內(nèi)容shijianvarchar50留言時間user_idvarchar50用戶編號(外鍵)注:該表用來存放用戶留言基本信息。表5.5菜品信息表(goods)字段名數(shù)據(jù)類型長度功能描述idint4菜品編號(主鍵)catelog_idint4菜編號namevarchar50名稱jieshaovarchar5000介紹jiageint4價格fujianvarchar50附件fujianYuanshimingvarchar50附件原始編號shijianvarchar50時間delvarchar50刪除注:該表用來存放菜品信息。

表5.6用戶信息表(user)字段名數(shù)據(jù)類型長度功能描述idvarchar50用戶編號(主鍵)loginnamevarchar50姓名loginpwvarchar50密碼namevarchar50確認密碼sexvarchar50性別agevarchar50年齡addressvarchar50地址telvarchar50手機號emailvarchar50emailqqvarchar50qqdelvarchar50刪除注:該表用來存放用戶相關(guān)信息。表5.7公告信息表(gonggao)字段名類型長度說明idvarchar50公告編號(主鍵)titlevarchar50標題contentvarchar5000內(nèi)容shijianvarchar50時間注:該表用于存放公告基本信息。

6詳細設(shè)計與實現(xiàn)6.1系統(tǒng)首頁首頁能夠?qū)崿F(xiàn)新用戶注冊、已注冊用戶登錄、查看網(wǎng)站公告、我的訂單、留言等在頁面如圖14所示。圖14系統(tǒng)首頁運行界面圖publicclassindex_servletextendsHttpServlet{ publicvoidservice(HttpServletRequestreq,HttpServletResponseres) { ListgonggaoList=newArrayList(); Stringsql="select*fromt_gonggaoorderbyiddesc"; Object[]params={}; DBmydb=newDB(); mydb.closed(); if(gonggaoList.size()>5) { gonggaoList=gonggaoList.subList(0,5); } req.getSession().setAttribute("gonggaoList",gonggaoList); ListcatelogList=newArrayList(); Stringsql0000="select*fromt_catelogorderbyiddesc"; Object[]params0000={}; DBmydb0000=newDB(); mydb0000.doPstm(sql0000,params0000); ResultSetrs0000=mydb0000.getRs(); while(rs0000.next()) { Tcatelogcatelog=newTcatelog(); catelog.setId(rs0000.getInt("id")); catelog.setName(rs0000.getString("name")); catelog.setGoodsList(liuService.getGoods(rs0000.getInt("id"))); catelogList.add(catelog); } rs0000.close(); } mydb.closed(); if(catelogList.size()>5) { catelogList=catelogList.subList(0,5); } req.setAttribute("catelogList",catelogList); req.getRequestDispatcher("qiantai/index.JSP").forward(req,res); }6.2用戶登錄用戶登錄采用對數(shù)據(jù)的查詢、修改操作,用戶需登錄系統(tǒng),方可進行訂餐功能;頁面效果如圖15所示。圖15用戶登錄運行界面圖publicvoidadminAdd(HttpServletRequestreq,HttpServletResponseres) { StringuserName=req.getParameter("userName"); StringuserPw=req.getParameter("userPw"); Stringsql="insertintot_adminvalues(?,?)"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","admin?type=adminMana");StringtargetURL="/common/success.JSP"; dispatch(targetURL,req,res); }6.3用戶注冊用戶注冊表單采用對數(shù)據(jù)的增加操作,用戶需注冊成為本系統(tǒng)的會員,方可進行訂餐功能,頁面效果如圖16所示。圖16用戶注冊運行界面圖publicvoiduserReg(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringname=req.getParameter("name"); Stringsex=req.getParameter("sex"); Stringage=req.getParameter("age"); Stringaddress=req.getParameter("address"); Stringtel=req.getParameter("tel"); Stringemail=req.getParameter("email"); Stringqq=req.getParameter("qq"); Stringdel="no"; Stringsql="insertintot_uservalues(?,?,?,?,?,?,?,?,?,?,?)"; Object[]params={id,loginname,loginpw,name,sex,age,address,tel,email,qq,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed();StringtargetURL="/common/add_success.JSP"; dispatch(targetURL,req,res); }6.4管理員登陸管理員登陸后臺管理頁面,可以進行管理員密碼修改、菜品管理等功能,頁面效果如圖17所示。圖17管理登陸運行界面圖6.5系統(tǒng)管理管理員登陸后臺管理后,可以對后臺管理員進行添加、刪除管理,頁面效果如圖18所示。圖18系統(tǒng)管理運行界面圖publicvoidadminAdd(HttpServletRequestreq,HttpServletResponseres) {StringuserName=req.getParameter("userName"); StringuserPw=req.getParameter("userPw"); Stringsql="insertintot_adminvalues(?,?)"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","admin?type=adminMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }6.6留言板留言表采用對數(shù)據(jù)的增加操作,已經(jīng)注冊的用戶可在本系統(tǒng)中進行留言并可以查看已有的留言信息,頁面效果如圖19所示。圖19在線留言運行界面publicvoidliuyanAdd(HttpServletRequestreq,HttpServletResponseres) {Stringid=String.valueOf(newDate().getTime()); Stringtitle=req.getParameter("title"); Stringcontent=req.getParameter("content"); Stringshijian=newDate().toLocaleString(); Stringuser_id="0"; if(req.getSession().getAttribute("user")!=null) {Tuseruser=(Tuser)req.getSession().getAttribute("user"); user_id=user.getId(); } Stringsql="insertintot_liuyanvalues(?,?,?,?,?)"; Object[]params={id,title,content,shijian,user_id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","liuyan?type=liuyanAll");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }6.7管理員修改密碼管理員登陸后臺管理頁面后,可以進行管理員密碼修改,頁面效果如圖20所示。圖20修改密碼運行界面圖<scriptlanguage="javascript">functioncheck(){varuserPwReal="${sessionScope.admin.userPw}";if(document.formPw.userPw.value!=userPwReal){alert("原密碼不正確");return;}if(document.formPw.userPw1.value==""){alert("新密碼不能空");return;}if(document.formPw.userPw1.value!=document.formPw.userPw2.value){alert("兩次輸入的密碼不一致");return;}document.getElementById("indicator").style.display="block";loginService.adminPwEdit(document.formPw.userPw1.value,callback);}functioncallback(data){document.getElementById("indicator").style.display="none";alert("修改成功");}</script>6.8菜品管理管理員登陸后臺管理頁面后,可以進行菜品的添加、刪除,頁面效果如圖21所示。圖21菜品管理publicvoidgoodsMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException {ListgoodsList=newArrayList(); Stringsql="select*fromt_goodswheredel='no'orderbycatelog_id"; Object[]params={}; DBmydb=newDB(); try {mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tgoodsgoods=newTgoods(); goods.setId(rs.getInt("id")); goods.setCatelog_id(rs.getInt("catelog_id")); goods.setName(rs.getString("name")); goods.setJieshao(rs.getString("jieshao")); goods.setJiage(rs.getInt("jiage")); goods.setShijian(rs.getString("shijian")); goods.setDel(rs.getString("del")); goods.setCatelog_name(liuService.getCatelogName(rs.getInt("catelog_id"))); goodsList.add(goods); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("goodsList",goodsList); req.getRequestDispatcher("admin/goods/goodsMana.jsp").forward(req,res); }6.9用戶管理管理員登陸后臺管理頁面,可以對已注冊用戶進行刪除,頁面效果如圖22所示。圖22用戶管理運行界面圖publicvoiduserDel(HttpServletRequestreq,HttpServletResponseres) {Stringid=req.getParameter("id"); Stringsql="deletefromt_userwhereuserId=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","user?type=userMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }6.10菜品錄入管理員登陸后臺管理頁面,可以進行菜品的添加。頁面效果如圖23所示。圖23菜品錄入運行管理界面publicvoidgoodsAdd(HttpServletRequestreq,HttpServletResponseres) {intcatelog_id=Integer.parseInt(req.getParameter("catelog_id")); Stringname=req.getParameter("name"); Stringjieshao=req.getParameter("jieshao"); intjiage=Integer.parseInt(req.getParameter("jiage")); Stringfujian=req.getParameter("fujian"); StringfujianYuanshiming=req.getParameter("fujianYuanshiming"); Stringshijian=newDate().toLocaleString(); Stringdel="no"; Stringsql="insertintot_goodsvalues(?,?,?,?,?,?,?,?)"; Object[]params={catelog_id,name,jieshao,jiage,fujian,fujianYuanshiming,shijian,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","goods?type=goodsMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }6.11訂單管理管理員登陸后臺管理頁面,可以進行訂單管理,頁面效果如圖24所示。 圖24訂單管理運行界面圖 publicvoidorderDel(HttpServletRequestreq,HttpServletResponseres) {Stringsql="updatet_ordersetdel='yes'whereid=?"; Object[]params={Integer.parseInt(req.getParameter("id"))}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","order?type=orderMana");StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }6.12公告管理管理員登陸后臺管理頁面,可以對公告進行添加、刪除管理,頁面效果如圖25所示。圖25公告管理publicvoidgonggaoAdd(HttpServletRequestreq,HttpServletResponseres) {Stringid=String.valueOf(newDate().getTime()); Stringtitle=req.getParameter("title"); Stringcontent=req.getParameter("content"); Stringshijian=newDate().toLocaleString(); Stringsql="insertintot_gonggaovalues(?,?,?,?)"; Object[]params={id,title,content,shijian}; DBmydb=newDB(); mydb.d

溫馨提示

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

評論

0/150

提交評論