隨著社會經(jīng)濟的發(fā)展,人們的生活節(jié)奏不斷加快,上班時間相當緊張,但一日三餐卻不可少。通過網(wǎng)上訂餐點菜系統(tǒng),不必親臨現(xiàn)場,在家中或在辦公室上網(wǎng),便可以為自己、家人、朋友聚會等制辦一份既營養(yǎng)又實惠的美食。基于以上原因,我們開發(fā)了本系統(tǒng)。
一、系統(tǒng)軟件介紹
本系統(tǒng)以Visual Studio.NET 2003為開發(fā)平臺,采用B/S模式,以VB.NET語言為基礎進行開發(fā);數(shù)據(jù)庫采用關(guān)系型數(shù)據(jù)庫SQL Server 2000;系統(tǒng)軟件可在Windows或Unix平臺上運行。
二、數(shù)據(jù)庫設計
本系統(tǒng)的數(shù)據(jù)庫主要涉及餐位、食品、用戶、訂單等信息。采用關(guān)系型數(shù)據(jù)庫SQL Server 2000進行設計,主要包括以下表,表中含有下劃線的字段為各表的主鍵。
1.餐位表Seats。該表主要包括SeatID(餐位編號)、Location(位置)、Nums(容納人數(shù))、Charge(收費標準)、State(預訂狀態(tài))等5個字段。
2.類別表Kind。該表包括KindID(類別編號)、KindName(類別名稱)2個字段。
3.產(chǎn)品表Products。該表主要包括fID(食品編號)、fName(食品名稱)、Price(價格)、fIntro(食品介紹)、KindID(類別編號)等字段,其中KindID字段與類別表中的KindID字段對應。
4.用戶表Users。該表主要包括UserID(用戶名)、UserPwd(密碼)、Sex(性別)Email(電子郵件)、Address(聯(lián)系地址)、Tel(聯(lián)系電話)等字段。
5.訂單表Orders。該表主要包括OrderID(訂單編號)、UserID(用戶名)、Location(位置)、TotalNum(訂購食品總數(shù)量)、TotalMoney(訂購食品總價格)、HavingDinnerDate(用餐日期)、HavingDinnerTime(用餐時間)、OrderingTime(預訂日期)等字段,當用戶提交注冊信息時,即返回一個訂單號OrderID。其中UserID與Users表中的UsersID相同,用來確定該訂單屬于誰。
6.詳細訂購信息表Orders_Detail。該表包括OrderID(訂單編號)、fID(食品編號)、fNum(訂購數(shù)量)。表中的訂單號OrderID與Users表中的訂單號相同,表明該記錄屬于哪一筆訂單。
7.管理員表admin。該表包括2個字段:adminName(管理員名)和adminPwd(管理員密碼)。
三、系統(tǒng)詳細設計
使用ASP.NET開發(fā)的網(wǎng)上訂餐點菜系統(tǒng),具有如下功能:
普通用戶模塊。普通用戶可以進行食物營養(yǎng)查詢、預訂餐位、瀏覽食品、訂購食品、用戶注冊、用戶登錄、訂購信息查詢、網(wǎng)上留言等。
管理員模塊。包括餐位管理、類別管理、食品管理、訂單管理、用戶管理及留言管理等。
根據(jù)系統(tǒng)要實現(xiàn)的功能,進行了如下設計。
1.用戶模塊設計。
(1)預訂餐位模塊。在首頁中提供了可用餐位的信息,包括人數(shù)、收費標準等。單擊“預訂”按鈕,即可預訂該餐位,同時在頁面中顯示所選的餐位信息,并顯示一個“開始訂菜”按鈕。在首頁中提供了查詢食物營養(yǎng)、查詢訂單、留言等超鏈接。
(2)訂菜模塊。選擇“開始訂菜”,即進入訂菜頁面。用戶可以瀏覽全部或某一類食品;也可以按食品名稱或價格進行查找;可以查看食品的詳細信息。單擊“訂購”按鈕可將選定的食品放到訂餐車中。在訂餐車中顯示所訂購的食品,可以修改食品數(shù)量,刪除食品,可以返回繼續(xù)訂購,也可以取消本次訂購。
(3)下訂單模塊。本次訂購結(jié)束后,在訂餐車中選擇“下訂單”,進入用戶注冊頁面。收集用戶的信息及用餐的日期、時間等信息。提交注冊信息時,將用戶信息寫入Users表,將訂購食品的總數(shù)量、總金額及用餐的日期、時間及預訂日期等寫入Orders表,同時返回一個訂單號,并將訂購的詳細信息寫入Orders_Detail表,包括訂單編號、食品編號和訂購數(shù)量。
(4)訂餐信息查詢模塊。提交注冊信息后,隨即進入登錄頁面,輸入用戶名和密碼后,即可顯示該用戶詳細的預訂信息及總的費用。
(5)用戶留言模塊。用戶可通過留言板進行留言,留下自己的意見和建議等。
2.管理員模塊設計。通過管理員登錄頁面進行登錄,確認其是否具有管理員資格。如果是管理員,即可進入管理員管理頁面。
(1)餐位管理模塊。這是管理員模塊中重要的一部分。作為餐飲的餐位狀態(tài)在一日三餐后都需要及時更新。在該模塊中,通過選擇日期及就餐時間,可查詢每天的預訂情況,每一餐的預訂情況,查詢餐位情況。在預訂的用餐時間過后,將餐位的可用狀態(tài)恢復為“是”。
(2)食品類別及食品管理模塊。管理員可添加和刪除類別,添加和刪除食品。
(3)用戶管理模塊。可以查詢用戶信息,并對用戶進行刪除。
(4)訂單管理模塊。可以按日期查詢訂單,刪除過期訂單。
(5)用戶留言管理。作為管理員,可以回復用戶留言,刪除留言等。
四、關(guān)鍵技術(shù)
訂餐車設計是本系統(tǒng)的關(guān)鍵。在訂餐車中,利用HashTable和Session對象保存訂購食品的食品編號和數(shù)量。當訂購食品時,首先檢查Session中的HashTable是否存在,如果不存在,就創(chuàng)建一個HashTable,并將其保存到Session中。如果要訂購一種食品,從Session中讀取HashTable,將食品編號和訂購數(shù)量添加到HashTable中,重新將HashTable保存回Session中;如果要訂購訂餐車中已經(jīng)存在的食品,從Session中讀取HashTable,按食品編號找到該食品,將對應的數(shù)量加1后,將HashTable保存回Session中;如果要修改食品數(shù)量時,從Session中讀取HashTable,在其中找到該食品,直接修改數(shù)量即可;如果要刪除某種食品,從Session中讀取HashTable,在其中找到該食品,將該項刪除即可。
要顯示訂購的食品信息,只需從Session中讀取HashTable,并根據(jù)食品編號從Products表中查找對應的食品名稱、價格等信息,并根據(jù)HashTable和Products表中的信息生成一個DataTable,綁定到DataGrid控件顯示出來即可。
五、結(jié)束語
本課題屬于電子商務中的一種,但又不同于電子商務。通過網(wǎng)上訂餐點菜系統(tǒng),可以實現(xiàn)訂餐位、點菜、食物營養(yǎng)查詢等功能,可以為許多飲食行業(yè)所應用,可以合理地利用人力、物力、財力等現(xiàn)有資源,產(chǎn)生更大的經(jīng)濟效益。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。