




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、酒店管理系統(tǒng)設計湖南文理學院芙蓉學院數(shù)據(jù)庫原理及應用 課程設計報告題 目: 酒店管理系統(tǒng) 學生姓名: 羅 杰 學 號: 13250110 專業(yè)班級: 網(wǎng)絡工程1301班 同組姓名: 冷迅、何易升 指導教師: 王興柱 設計時間: 2015年上學期第18周 指導老師意見:評定成績: 簽名: 日期:目錄一、需求分析 . . . . 3二、系統(tǒng)運行環(huán)境 . . 3三、功能需求描述 . .3四、模塊結構圖 . 4五、數(shù)據(jù)庫設計 . 45.1數(shù)據(jù)庫分析 . 45.2數(shù)據(jù)庫概念設計 . . 45.3 數(shù)據(jù)庫邏輯結構設計 . . 55.4 數(shù)據(jù)庫字典 . . . 7六、程序模塊設計 . 66.1功能模塊設計.
2、 . . 96.2界面設計 . . . . . 106.3程序運行. . . . 11七、模塊的實現(xiàn). . . . .127.1 JDBC數(shù)據(jù)庫連接部分 . . . . . . . . . . . .137.2 開臺、點餐功能的實現(xiàn) . . . . . . . . . . .157.3 結賬功能的實現(xiàn) . . .19八、總結 . 22一、需求分析 隨著餐飲行業(yè)的迅速發(fā)展現(xiàn)有的人工管理方式已經(jīng)不能滿足管理者的需求,廣大餐飲業(yè)經(jīng)營者已經(jīng)意識到使用計算機應用軟件的重要性,決定在餐飲企業(yè)的經(jīng)營管理上引入計算機應用軟件管理系統(tǒng)。酒店管理系統(tǒng)的大致功能:1.開臺點餐2.自動結賬3.菜品管理4.后臺菜系菜品
3、管理5.日月年結賬報表6.用戶設置本系統(tǒng)采用的語言(1)本系統(tǒng)采用Java語言,Java是目前使用最為廣泛的計算機語言之一。它具有簡單面向?qū)ο蟆⒎€(wěn)定、與平臺無關等特點。說他簡單并不是說這門語言很干癟、而是一種清楚更容易理解的方式實現(xiàn)程序。面向?qū)ο笫腔趯ο蟮淖兂筛先说乃季S方式使人們更容易編寫程序。(2)本系統(tǒng)還采用SQL語言SQL Server具有許多顯著優(yōu)點、易用性、適合分布組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功能、與許多其他服務器軟件緊密關聯(lián)的集成性、良好的性價比等。(3)本系統(tǒng)有效的利用Java和SQL的優(yōu)點。 二、系統(tǒng)運行環(huán)境 操作系統(tǒng)為Windows 8、windows 7或w
4、indows XP 使用的集成開發(fā)工具Eclipse 數(shù)據(jù)庫采用SQL Server2008項目運行環(huán)境為JDK 8。 三、功能需求描述 1開臺簽單工作區(qū)的功能:主要功能有開臺、點菜、加菜、簽單、查看開臺信息和簽單信息。2.自動結賬工作區(qū)的功能:一個功能是自動計算當前選中餐臺的消費金額,另一個功能是在結賬時自動計算找零金額。 3.結賬報表工作區(qū)功能:日結帳報表、月結賬報表、年結賬報表。4.后天管理工作區(qū)功能:管理添加信息。四、模塊結構圖模塊結構圖五、數(shù)據(jù)庫設計5.1數(shù)據(jù)庫分析酒店管理系統(tǒng)的需求包括開臺點菜功能、智能化獲取菜品功能、自動結賬功能、營業(yè)額報表功能等。主要涉及的數(shù)據(jù)表包括臺號表、菜品
5、表、消費單表,為了使系統(tǒng)更加的完善還需要為菜品分類,即需要用到菜系表;為了實現(xiàn)菜品的日銷售情況統(tǒng)計,還要建立一個消費項目表,用來記錄消費單消費的菜品。 5.2數(shù)據(jù)庫概念設計數(shù)據(jù)庫設計是系統(tǒng)設計過程中的重要組成部分,它是通酒店管理程序設計,通過管理系統(tǒng)的整天需求而制定的,數(shù)據(jù)庫設計的好壞直接影響到系統(tǒng)的后期開發(fā)。 5.3 數(shù)據(jù)庫邏輯結構設計(1)餐臺和菜系在本系統(tǒng)中的最簡單的實體,在本系統(tǒng)中用來描述餐臺信息的只有臺號和座位數(shù),而描述菜系的主要是名稱。餐臺信息表(tb_desk)和菜系信息表(tb_sort)的E-R圖如下。餐臺狀態(tài)臺號座位號餐臺信息表的E-R圖菜系名稱狀態(tài)序號菜系信息表的E-R圖
6、(2)在描述菜品實體時加入了助記碼,目的是為了實現(xiàn)智能化獲取菜品功能。通過這一功能,系統(tǒng)操作員可以快速的獲取顧客所點的菜品信息。菜品信息表(tb_menu)的E-R圖如圖所示。菜品編號助記碼碼系屬菜系名稱狀態(tài)單價單位菜品信息表的E-R圖(3)消費單信息表(tb_order_form)用來記錄每次消費的相關信息,例如消費時使用的餐臺、時間、金額等。消費單信息表的E-R圖如圖所示。消費單操作用戶消費時間消費金額消費臺號編號消費信息表的E-R圖消費項目(4)消費項目信息表(tb_order_item)用來記錄每個消費單消費的菜品,記錄的主要信息有所屬消費單、消費菜品、消費數(shù)量、消費額。消費項目信息表
7、E-R圖如圖所示。所屬消費單編號消費數(shù)量消費菜品消費額消費項目信息表的E-R圖(5)管理員信息表(tb_manager)用來記錄系統(tǒng)的管理員的賬號、密碼、權限等信息。管理員信息表E-R圖如圖所示。管理員初始化系統(tǒng)權限系統(tǒng)維修權限銷售統(tǒng)計權限人員管理權限編號用戶名密碼管理員信息表的E-R圖(6)員工信息表(tb_record)用來記錄職工的信息,編號、姓名、性別、出生日期、地址等等。職工信息表E-R圖如圖所示。員工信息地址出生日期碼身份證號狀態(tài)編號員工姓名性別員工信息表的E-R圖5.4 數(shù)據(jù)庫字典5.4.1.餐臺信息表表名tb_desk序號字段名數(shù)據(jù)類型約束備注1numvarchar(6)非空臺
8、號2seatingint非空座位數(shù)3statechar(4)非空狀態(tài)5.4.2.管理員表表名tb.manager序號字段名數(shù)據(jù)類型約束備注1idint非空編號2record_numchar(9)非空用戶名3passwordvarchar(20)非空登陸密碼4purview_systemchar(2)允許空系統(tǒng)維修權限5purview_sellchar(2)允許空銷售統(tǒng)計權限6purview_personnelchar(2)允許空人員管理權限7purview_initchar(2)允許空初始化系統(tǒng)權限5.4.3.菜品信息表表名tb.menu序號字段名數(shù)據(jù)類型約束備注1numchar(9)非空編號
9、2sort_idint非空所屬菜系3namevarchar(20)非空名稱4codevarchar(10)非空主機名5unitvarchar(4)非空單位6unit_priceint非空單價7statechar(4)非空狀態(tài)5.4.4.消費單信息表表名tb_order_form序號字段名數(shù)據(jù)類型約束備注1numchar(11)非空編號2Desk_numvarchar(6)非空消費餐臺3Consume_datedatetime非空消費時間4expenditureint非空消費金額5Record_numchar(9)非空操作用戶5.4.5.消費項目信息表表名tb_order_item序號字段名數(shù)據(jù)
10、類型約束備注1idint非空編號2Order_form_numchar(11)非空所屬消費單3Menu_numchar(9)非空消費菜品4amountint非空消費數(shù)量5totalint非空消費額5.4.6.員工表表名tb_record序號字段名數(shù)據(jù)類型約束備注1numchar(9)非空編號2namevarchar(8)非空員工姓名3sexchar(2)非空性別4birthdaydatetime非空出生日期5Id_cardvarchar(20)非空身份證號6addressvarchar(100)非空地址7statechar(4)非空狀態(tài)5.4.7.菜系信息表表名th.sort序號字段名數(shù)據(jù)類型
11、約束備注1idint非空序號2namevarchar(20)非空名稱3statechar(4)非空狀態(tài)六、程序模塊設計6.1功能模塊設計:6.2界面設計:登入界面設計管理員界面設計6.3程序運行:登入界面管理界面管理員界面七、模塊的實現(xiàn)7.1 JDBC數(shù)據(jù)庫連接部分package com.mwq.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JDBC private static final String DRIVERCLASS = c
12、om.microsoft.sqlserver.jdbc.SQLServerDriver;private static final String URL = jdbc:sqlserver:/localhost:1433;DatabaseName=db_DrinkeryManage;private static final String USERNAME = luojie;private static final String PASSWORD = 123456;private static final ThreadLocal threadLocal = new ThreadLocal();sta
13、tic / 在靜態(tài)代碼塊中加載數(shù)據(jù)庫驅(qū)動try Class.forName(DRIVERCLASS).newInstance();/ 加載數(shù)據(jù)庫驅(qū)動 catch (Exception e) System.out.println(數(shù)據(jù)庫連接不成功);e.printStackTrace();public static Connection getConnection() / 創(chuàng)建數(shù)據(jù)庫連接的方法System.out.println(數(shù)據(jù)庫連接成功);Connection conn = threadLocal.get();/ 從線程中獲得數(shù)據(jù)庫連接if (conn = null) / 沒有可用的數(shù)據(jù)
14、庫連接try conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);/ 創(chuàng)建新的數(shù)據(jù)庫連接threadLocal.set(conn);/ 將數(shù)據(jù)庫連接保存到線程中 catch (SQLException e) e.printStackTrace();return conn;/ 返回數(shù)據(jù)庫連接public static boolean closeConnection() / 關閉數(shù)據(jù)庫連接的方法boolean isClosed = true;/ 默認關閉成功Connection conn = threadLocal.get();/
15、 從線程中獲得數(shù)據(jù)庫連接if (conn != null) / 數(shù)據(jù)庫連接可用threadLocal.set(null);/ 清空線程中的數(shù)據(jù)庫連接try conn.close();/ 關閉數(shù)據(jù)庫連接 catch (SQLException e) isClosed = false;/ 關閉失敗e.printStackTrace();return isClosed;/ 返回關閉結果7.2 開臺點餐功能的實現(xiàn)7.2.1 臺號選擇框的創(chuàng)建numComboBox = new JComboBox(); / 創(chuàng)建臺號選擇框numComboBox.setNextFocusableComponent(code
16、TextField); / 設置下一個將要獲得焦點的組件initNumComboBox(); / 初始化臺號選擇框numComboBox.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) int rowCount = rightTable.getRowCount(); / 獲得已開臺數(shù)if (rowCount = 0) / 沒有開臺return; / 不執(zhí)行任何操作Object selectedDeskNum = numComboBox.getSelectedItem(); / 獲
17、得“臺號”選擇框中的選中項int needSelectedRow = -1; / 默認選中的臺號未開臺for (int row = 0; row rowCount; row+) / 查看選中的臺號是否已經(jīng)開臺if (selectedDeskNum.equals(rightTable.getValueAt(row, 1) / 已經(jīng)開臺needSelectedRow = row; / 保存其在“開臺列表” 中的所在行break; / 跳出循環(huán)if (needSelectedRow = -1) / 選中的臺號尚未開臺,即將要開臺rightTable.clearSelection(); / 取消選擇“
18、開臺列表”中的選中行l(wèi)eftTableDataV.removeAllElements(); / 清空“簽單列表”中的所有行l(wèi)eftTableModel.setDataVector(leftTableDataV,leftTableColumnV); / 刷新“簽單列表”表格模型的數(shù)據(jù) else / 選中的臺號已經(jīng)開臺,即將要添加消費項目rightTable.setRowSelectionInterval(needSelectedRow);/ 在“開臺列表”中選中該臺號leftTableDataV.removeAllElements(); / 清空“簽單列表”中的現(xiàn)有項目leftTableData
19、V.addAll(itemOfDeskV.get(needSelectedRow); / 向“簽單列表”添加新選中餐臺的消費項目leftTableModel.setDataVector(leftTableDataV,leftTableColumnV); / 刷新“簽單列表”表格模型的數(shù)據(jù)leftTable.setRowSelectionInterval(0); / 選中“簽單列表”中的第一行);7.2.2開單功能的實現(xiàn)final JButton addButton = new MButton();addButton.setIcon(new ImageIcon(TipWizardFrame.cl
20、ass.getResource(/img/main_add.png);addButton.setRolloverIcon(new ImageIcon(TipWizardFrame.class.getResource(/img/main_add_on.png);addButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) makeOutAnInvoice();codeTextField.requestFocus(););orderDishesButtonPanel.add(a
21、ddButton);orderDishesPanel.add(numComboBox);7.2.3簽單功能的實現(xiàn)final JButton subButton = new MButton();/ 創(chuàng)建按鈕subButton.setIcon(new ImageIcon(getClass().getResource(/img/main_sub.png);/ 按鈕默認時顯示的圖片subButton.setRolloverIcon(new ImageIcon(getClass().getResource(/img/main_sub_on.png);/ 光標移入時顯示的圖片subButton.addAc
22、tionListener(new ActionListener() public void actionPerformed(ActionEvent e) int selectedRow = rightTable.getSelectedRow();/ 獲得“開臺列表”中的選中行if (selectedRow = 0; row-) leftTable.setValueAt(, row, 0);/ 簽單 else / 為已簽單項目,即為新添加菜品簽單for (int row = lastRowIndex; row = 0; row-) if (leftTable.getValueAt(row, 0)
23、.equals(NEW)/ 為未簽單項目leftTable.setValueAt(, row, 0);/ 簽單else/ 為已簽單項目,即為新添加菜品簽單完成break;);orderDishesButtonPanel.add(subButton);7.3 結賬功能的實現(xiàn)final JButton checkOutButton = new JButton();checkOutButton.setText(結 賬);checkOutButton.addActionListener(new ActionListener() public void actionPerformed(ActionEve
24、nt e) int selectedRow = rightTable.getSelectedRow();if (selectedRow 0) / 未選中任何餐臺JOptionPane.showMessageDialog(null, 請選擇要結賬的餐臺!, 友情提示,JOptionPane.INFORMATION_MESSAGE);/ 彈出提示return;int rowCount = leftTable.getRowCount();/ 獲得結賬餐臺的點菜數(shù)量if (leftTable.getValueAt(rowCount - 1, 0).equals(NEW) / 存在未簽單菜品JOptio
25、nPane.showMessageDialog(null, 請先確定未簽單商品的處理方式!,友情提示, JOptionPane.INFORMATION_MESSAGE);/ 彈出提示return;int expenditure = Integer.valueOf(expenditureTextField.getText();/ 獲得消費金額int realWages = Integer.valueOf(realWagesTextField.getText();/ 獲得實收金額if (realWages expenditure) / 查看實收金額是否小于消費金額if (realWages = 0
26、)/ 未輸入實收金額JOptionPane.showMessageDialog(null, 請輸入實收金額!, 友情提示,JOptionPane.INFORMATION_MESSAGE);/ 彈出提示else/ 實收金額小于消費金額JOptionPane.showMessageDialog(null, 實收金額不能小于消費金額!,友情提示, JOptionPane.INFORMATION_MESSAGE);/ 彈出提示realWagesTextField.requestFocus();/ 為“實收金額”文本框請求獲得焦點return;changeTextField.setText(realWa
27、ges - expenditure) + );/ 計算并設置“找零金額”String orderFormData = getNum(),rightTable.getValueAt(selectedRow, 1).toString(),Today.getDate() + + rightTable.getValueAt(selectedRow, 2),expenditureTextField.getText(),TipWizardFrame.this.managerV.get(0).toString() ;/ 組織消費單信息dao.iOrderForm(orderFormData);/ 持久化到數(shù)
28、據(jù)庫String orderItemData = new String4;/ 用來存儲消費項目信息orderItemData0 = dao.sOrderFormOfMaxId();/ 獲得消費單編號for (int row = 0; row rowCount; row+) / 通過循環(huán)持久化消費項目信息orderItemData1 = leftTable.getValueAt(row, 2).toString();/ 獲得菜品編號orderItemData2 = leftTable.getValueAt(row, 5).toString();/ 獲得菜品數(shù)量orderItemData3 = l
29、eftTable.getValueAt(row, 7).toString();/ 獲得菜品消費金額dao.iOrderItem(orderItemData);/ 持久化到數(shù)據(jù)庫JOptionPane.showMessageDialog(null, rightTable.getValueAt(selectedRow, 1)+ 結賬完成!, 友情提示, JOptionPane.INFORMATION_MESSAGE);/ 彈出提示/rightTableModel.removeRow(selectedRow);/ 從“開臺列表”中移除結賬餐臺leftTableDataV.removeAllElements();/ 清空“簽單列表”leftTableModel.setDat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 參展住宿餐飲合同范本
- 南京水泥采購合同范本
- 亮化合同范本
- 保潔開荒服務合同范本
- 勞務合同范本拿
- t書采購合同范本
- 入股控股合同范本
- 合伙買吊車合同范本
- 《仙人掌》教案設計
- 臺州施工合同范本
- 【化學】常見的鹽(第1課時)-2024-2025學年九年級化學下冊(人教版2024)
- 2024甘肅省公務員(省考)行測真題
- 體育活動策劃與組織課件
- JJG 1204-2025電子計價秤檢定規(guī)程(試行)
- 咨詢公司顧問聘用協(xié)議書
- 認養(yǎng)一頭牛-雙寡格局下新品牌如何實現(xiàn)彎道超車
- 2024年德州職業(yè)技術學院單招職業(yè)適應性測試題庫
- 業(yè)務約定書第10號:企業(yè)清產(chǎn)核資專項審計業(yè)務約定書
- 壓縮空氣氣體管道吹掃、試壓方案
- 《封閉煤場技術規(guī)程》
- 活動供餐合同范例
評論
0/150
提交評論