數據庫課程設計-實驗報告-簡易餐廳管理系統1_第1頁
數據庫課程設計-實驗報告-簡易餐廳管理系統1_第2頁
數據庫課程設計-實驗報告-簡易餐廳管理系統1_第3頁
數據庫課程設計-實驗報告-簡易餐廳管理系統1_第4頁
數據庫課程設計-實驗報告-簡易餐廳管理系統1_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 數據庫專題實驗飯店簡易結賬系統 數據庫專題實驗飯店簡易結賬系統 TOC o 1-3 h u HYPERLINK l _Toc10284 一、選題簡介 PAGEREF _Toc10284 4 HYPERLINK l _Toc21909 二、系統功能設計 PAGEREF _Toc21909 4 HYPERLINK l _Toc9699 1. 選題分析 PAGEREF _Toc9699 4 HYPERLINK l _Toc19981 2. 系統的功能模塊圖 PAGEREF _Toc19981 6 HYPERLINK l _Toc14279 3. 主要功能的實現方法 PAGEREF _Toc1427

2、9 6 HYPERLINK l _Toc6210 三、 數據庫設計 PAGEREF _Toc6210 7 HYPERLINK l _Toc19785 1. E-R圖 PAGEREF _Toc19785 7 HYPERLINK l _Toc17661 2. 表清單 PAGEREF _Toc17661 7 HYPERLINK l _Toc20449 3. 數據字典 PAGEREF _Toc20449 9 HYPERLINK l _Toc3563 四、開發環境 PAGEREF _Toc3563 12 HYPERLINK l _Toc30106 1. 開發環境概述 PAGEREF _Toc30106

3、12 HYPERLINK l _Toc24409 2. 數據庫系統及訪問機制 PAGEREF _Toc24409 12 HYPERLINK l _Toc27942 3. 開發工具的比較與選擇 PAGEREF _Toc27942 12 HYPERLINK l _Toc6736 五、已實現系統的技術文檔 PAGEREF _Toc6736 13 HYPERLINK l _Toc10253 1. 系統的功能清單 PAGEREF _Toc10253 13 HYPERLINK l _Toc13395 2. 系統的文件清單 PAGEREF _Toc13395 13 HYPERLINK l _Toc20346

4、 3. 系統的程序描述 PAGEREF _Toc20346 14 HYPERLINK l _Toc23759 4. 開發過程 PAGEREF _Toc23759 15 HYPERLINK l _Toc31846 六、 系統的使用 PAGEREF _Toc31846 24 HYPERLINK l _Toc23308 七、需要進一步進行的工作 PAGEREF _Toc23308 25 HYPERLINK l _Toc2636 八、 體會和建議 PAGEREF _Toc2636 25 HYPERLINK l _Toc20647 九、 參考資料 PAGEREF _Toc20647 26一、選題簡介該簡

5、易餐廳結賬系統需要完成客人訂桌、點菜、結賬及日報表打印功能。選題詳述:(1)三種參與角色:客人、系統管理人員、服務及收銀臺人員(2)客人功能需求:訂桌、點(退)菜、結賬。(3)系統管理員功能需求:菜單及價格維護(含折扣)、用戶建立及授權、統計報表生成打印。(4)服務及收銀臺人員功能需求:代替客人完成客人功能需求、打印消費清單、統計個人服務額總計。二、系統功能設計1. 選題分析I. 該系統需要四個實體:顧客實體、職員實體、經理實體、菜單實體。顧客實體實體名:customer角色:客戶屬性:id,密碼,姓氏,性別,訂餐時間,就餐時間,電話,郵箱,座位主鍵:id(2)職員實體實體名:clerk角色:

6、服務員兼收銀員屬性:id,密碼,姓名,性別,就職時間,工資,電話,郵箱主鍵:id(3)經理實體實體名:manager角色:經理屬性:Id,密碼,姓名,性別,就職時間,工資,電話,郵箱主鍵:id(4)菜單實體實體名:food角色:餐廳里面的各種吃貨屬性:id,菜名,價格,折扣主鍵:idII. 還需要兩個聯系:服務、訂餐(1)服務聯系名:serve產生聯系的兩個實體:clerk和customer屬性:無(服務員的主鍵只要作為顧客的外鍵就行了)何時產生:當服務員選擇某個顧客點擊結賬按鈕時會建立此關系訂餐聯系名:reserve產生聯系的兩個實體:customer和food屬性:數量(同一份菜的份數)何

7、時產生:當用戶點擊訂餐按鈕時會建立此關系系統的功能模塊圖 主要功能的實現方法.訂餐(1)填寫詳細信息,填寫完成后進行選餐。(2)選餐時,返回food表中所有的記錄,用戶選擇要點的菜,并填寫菜的份數。(3)確認后,向customer表中添加一條用戶記錄。(4)向reserve表(訂餐表)中添加多條訂餐記錄。.退訂刪除reserve表中的相關記錄。.結賬在customer表中查詢總價。更新customer表,將服務員的編號更新至相應的用戶記錄。.個人報表customer表:選擇投影.統計報表customer表:直接投影。.菜單管理和人事管理一些基本的通過高級語言進行增刪改查的操作。 數據庫設計1.

8、 E-R圖Powerdesigner創建的CDM: 表清單序號表名功能描述1manager經理表2clerk服務員及收銀員表3customer顧客表4food食物表5reserve顧客訂餐表(1)Powerdesigner生成的PDM:(2)SQLServer中的表數據字典表格列清單表名名稱代碼說明clerk職員表cle_idcle_id職員號codecode密碼namename姓名sexsex性別emp_dateemp_date就職時間salarysalary薪水phonephone電話emailemail郵箱customer顧客表cus_idcus_id顧客號cle_idcle_id服務的

9、職員號codecode密碼namename姓名sexsex性別eat_timeeat_time就餐時間phonephone電話emailemail郵箱sum_pricesum_price花費總額seatseat作為food食物表food_idfood_id食物標號namename食物名priceprice價格discountdiscount折扣manager經理表man_idman_id經理號codecode密碼namename姓名sexsex性別emp_dateemp_date就職時間salarysalary薪水phonephone電話emailemail郵箱reserve訂餐表cus_id

10、cus_id顧客號food_idfood_id食物編號numnum菜的份數表格索引清單名稱代碼唯一的群集器主要的外鍵候選鍵表格clerk_PKclerk_PKTRUEFALSETRUEFALSEFALSEclerkcustomer_PKcustomer_PKTRUEFALSETRUEFALSEFALSEcustomerserve_FKserve_FKFALSEFALSEFALSETRUEFALSEcustomerfood_PKfood_PKTRUEFALSETRUEFALSEFALSEfoodmanager_PKmanager_PKTRUEFALSETRUEFALSEFALSEmanagerr

11、eserve_PKreserve_PKTRUETRUETRUEFALSEFALSEreservereserve_FKreserve_FKFALSEFALSEFALSETRUEFALSEreservereserve_FK2reserve_FK2FALSEFALSEFALSETRUEFALSEreserve表格鍵清單名稱代碼表格cle_idcle_idclerkcus_idcus_idcustomerfood_idIdentifier_1foodman_idman_idmanagerfood_idIdentifier_1reserve參考清單名稱代碼父表格子表格reservereservecust

12、omerreservereservereservefoodreserveserveserveclerkcustomer表格清單名稱代碼clerkclerkcustomercustomerfoodfoodmanagermanagerreservereserve四、開發環境1. 開發環境概述開發工具:eclipse開發語言:Java建模工具:PowerDesigner數據庫:SQLServer2000操作系統:Windows 7數據庫系統及訪問機制本著方便和簡單實用的原則,該項目使用SQlServer2000。訪問機制:通過JDBC純驅動方式來訪問數據庫。由于早期的JDBC接口不是很成熟,只有比較

13、少的數據庫廠商提供純Java的驅動程序。但是近年很多廠商都實現了純Java的驅動程序,使得Java訪問數據庫更加安全快捷。由于橋接方式比之純驅動方式不穩定、性能差、很多JDBC特性不支持,因此該項目使用JDBC純驅動方式訪問數據庫。開發工具的比較與選擇該項目選擇使用Java語言來實現,開發工具選擇eclipse。(1)JCreator小巧,功能不多,有代碼提示,應用非常簡單,運行速度快。但是沒有GUI設計工具,調試功能不強。(2)JBuilder功能上很強大,屬于精品軟件,價格不菲。有GUI設計工具,有UML工具,能生成本地應用程序包等。不過速度慢,耗資源。(3)EclipseIBM投資開發的

14、開源軟件,完全免費,GUI設計比較強大,運行速度較快,代碼輔助功能很完善,同時對項目的管理功能也很強大,插件的設計非常出色,應用簡單。考慮到經濟實用,最終選擇了強大的開源軟件Eclipse。五、已實現系統的技術文檔1. 系統的功能清單序號功能項功能描述1訂餐游客可自己訂餐,職員或經理均可代為訂餐2退訂顧客可自己退訂,職員或經理均可代為退訂3結賬顧客請求結賬,職員或經理均可結賬4統計個人報表服務員及收銀人員用來查看自己的詳細服務信息;經理用來查看特定職員的服務信息5人事管理經理用來維護人事信息,可增、刪、改、查6菜單管理經理用來維護菜單信息,可增、刪、改、查7統計報表經理用來查看所有員工的信息8

15、幫助信息系統的文件清單序號文件名主要功能描述1sqlOperate.java對數據庫的操作2loginCheck.java檢查登錄信息3Priority.java當前用戶的優先級4CancelJPanel.java顧客自己取消訂餐5CancelJPanel2.java職員或經理代顧客取消訂餐6CheckOut.java結賬7MenuMgr.java菜單管理8PersonalMgr.java人事管理9PersonalReport.java統計個人報表10Report.java統計總報表11Reserve.java訂餐12Fonts.java用到的一些字體13PictureJPanel.java用

16、來設背景的一個工具類14SelectMenu.java選菜15ChoseDesk.java選桌界面16Login.java登錄界面17OperateView.java操作主界面18Welcome.java歡迎界面(程序入口)系統的程序描述通過welcome類中的main函數進入到歡迎界面,用戶根據提示進行訂餐登錄,或者輸入登錄信息進行登錄。輸入登錄信息后,通過loginCheck類的檢測,或提示登錄信息錯誤,或進入正常登錄界面,并設置Priority中的priority屬性表示當前用戶的優先級。游客登錄進去可以進行訂餐,訂餐的實現依靠于Reserve類。顧客登錄進去可以查看到自己的訂餐信息,退

17、餐的實現依靠于CancelJPanel類。服務員及收銀員登錄進去可以代用戶訂餐、退訂。訂餐的實現依然依靠Reserve類,退訂的實現依靠CancelJPanel2類。還可以進行結賬,依靠于CheckOut類,結賬后,進行數據庫中用戶表的更新,寫入服務的服務員號。還可依靠PersonalReport類查看自己的服務統計信息。經理登錄進去除了可以進行服務員及收銀員的所有操作,還可通過PersonalMgr進行人事管理,或炒魷魚、或增職員、或修改信息,可通過MenuMgr類進行菜單維護,添菜,撤菜,改價之類。可通過PersonalReport類查看某個員工的服務報表,通過Report類查看大的比較籠

18、統的報表。開發過程(1)實現歡迎界面其實歡迎界面除了看起來比較炫的效果外一無用處,如下是加載其進度的代碼。intprogressValue=0,1,5,9,14,17,26,35,38,44,49,56,65,71,75,78,86,94,98,99,100;for(int i=0;iprogressValue.length;i+)try /休眠50ms,再執行Thread.sleep(50); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();jpb.setValue(pro

19、gressValuei);/取得進度值可以看到,所謂進度條,也就是在數自己放的一些數字。實現登錄界面登錄界面不是一般的JFrame,而是繼承自一個JDialog,沒有最小化和叉。public class Login extends JDialog implements ActionListener 登錄驗證既然登錄,就需要訪問數據庫了。由于一個項目訪問數據庫次數較多,總不能每次訪問時就寫一大堆的重復代碼。因此,專門寫一個訪問數據庫且常用的操作的類,就是:sqlOperate.java。該類的一些屬性以及函數:前兩個函數用來進行查詢,并且返回查詢結果集。后兩個函數用來進行對數據庫的其他操作。最后

20、一個函數用來關閉資源。可以進行數據庫訪問和操作了,還需要一個loginCheck類驗證一下,并顯示登錄信息。loginCheck類的一些屬性和函數:分別有三個函數用來在三個不同的表中檢測用戶的登錄信息。驗證結果如下:接下來的任務:無關于操作,實現登錄后的主面板!登錄后的主面板在左邊加上一些快捷操作,功能一目了然。用OperateView類實現對這個項目進行操作的主界面。詳情如下:這里用到了一個很重要的工具類:PictureJPanel類。使用這個類只要將圖片傳為參數就行了,就不會出現插入圖片卻看不到的問題。內容如下:/* * 以后加面板的時候直接將圖片作為參數傳入給該類的一個對象 * auth

21、or zhangxin */public class PictureJPanel extends JPanel Image bg;public PictureJPanel(Image i) / TODO Auto-generated constructor stubthis.bg = i;this.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height);public void paintComponent(Graphics g)su

22、per.paintComponent(g);g.drawImage(bg, 0,0,this.getWidth(),this.getHeight(),this);還有一個工具類:Fonts。都是一些用到的字體。測試結果:(5)8個操作的界面思路:使用card布局一共有8個卡片,詳細如下:Card1: Reserve 訂餐Card2: CancelJPanel 顧客取消訂餐Card3: CancelJPanel 職員和經理代顧客取消訂餐Card4: CheckOut 結賬 Card5: PersonalMgr 人事管理 Card6:MenuMgr 菜單管理Card7: PersonalRepor

23、t 個人報表Card8: Report 統計報表(總表)要點:每個卡片都實現為一個類,這樣的話,寫起來條理比較清楚,而且出現問題的時候也比較容易找到問題。每個類的實現方法都大同小異,只要一個寫好之后其他的只是稍作修改。這里并未遇到一些大的障礙,只是用前面所寫的sqlOperate類中的函數進行操作。訂餐的時候需要選擇座位,為了維護方便,特地將選擇作為單獨作為一個類:ChoseDesk。訂餐的最后需要選菜,仍然抽象出該操作,單獨實現為一個類:SelectMenu。該類中有很重要的三個信息:菜的份數、折扣、價格。因為會用這三個信息來計算用戶選菜的總額。這三個信息分別用三個向量來保存。雖然這8個類都涉及到了界面,不過歸根結底還是用戶進行的操作,所以將這幾個類放到user包中,區別于view包。實現效果:根據用戶設置操作現在是只要能夠登錄進去就可以進行所有的操作,因此需要進行優先級判定,需要一個用戶權限的類Priority,通過用戶登錄返回的信息設置用戶所能進行的操作。在OperateView類中根據優先級設置操作的代碼至此,整個系統已經完成。系統的使用要運行該系統,需要安裝Jre6。七、需要進一步進行的工作該系統只是實現了一些基本要求,還有一些未實現的功能:顧客不能修改訂餐的信息,只能退訂。顧客應當能夠通過該系統反饋

溫馨提示

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

評論

0/150

提交評論