專業(yè)課程設(shè)計報告Delphi餐飲管理系統(tǒng)_第1頁
專業(yè)課程設(shè)計報告Delphi餐飲管理系統(tǒng)_第2頁
專業(yè)課程設(shè)計報告Delphi餐飲管理系統(tǒng)_第3頁
專業(yè)課程設(shè)計報告Delphi餐飲管理系統(tǒng)_第4頁
專業(yè)課程設(shè)計報告Delphi餐飲管理系統(tǒng)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄 第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析.1 1 1.1 系統(tǒng)功能需求分析.1 1.2 系統(tǒng)數(shù)據(jù)流圖.1 1.3 數(shù)據(jù)字典.2 第二章第二章 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計.5 5 2.1 系統(tǒng)總體框圖設(shè)計.5 2.2 各模塊功能分析.5 第三章第三章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計.7 7 3.1 系統(tǒng) e-r 圖設(shè)計.7 3.2 數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計.8 第四章第四章 系統(tǒng)詳細(xì)設(shè)計及實現(xiàn)系統(tǒng)詳細(xì)設(shè)計及實現(xiàn).1111 4.1 系統(tǒng)登陸界面設(shè)計.11 4.2 系統(tǒng)主界面設(shè)計.15 4.3 菜譜設(shè)置模塊.19 4.3.1 菜譜信息設(shè)置設(shè)計 .19 4.3.2 菜譜查詢設(shè)計 .20 4.3.3 菜譜添加設(shè)計 .

2、22 4.3.4 菜譜修改設(shè)計 .24 4.3.5 菜譜刪除設(shè)計 .25 4.4 開臺管理模塊.27 4.4.1 搜索臺號設(shè)計 .27 4.4.2 開臺設(shè)置設(shè)計 .30 4.4.3 臺號信息查詢的設(shè)計 .32 4.4.4 房臺列表顯示函數(shù)的設(shè)計 .34 4.5 點菜管理模塊.34 4.5.1 客戶點菜設(shè)計 .35 4.5.2 客戶放棄開臺設(shè)計. 37 4.5.3 客戶點菜完畢返回設(shè)計.37 第五章第五章 數(shù)據(jù)模塊的創(chuàng)建與實現(xiàn)數(shù)據(jù)模塊的創(chuàng)建與實現(xiàn).45.45 5.1 數(shù)據(jù)模塊的創(chuàng)建.45 5.2 數(shù)據(jù)模塊的實現(xiàn).46 第六章第六章 系統(tǒng)調(diào)試與測試系統(tǒng)調(diào)試與測試.53.53 6.1 軟件功能測試.

3、47 第七章第七章 結(jié)論結(jié)論.5454 7.1 系統(tǒng)開發(fā)遇到的問題.54 7.2 系統(tǒng)改進(jìn)方面.54 7.3 總結(jié).54 摘要摘要 近幾年來,隨著我國國民經(jīng)濟的穩(wěn)定增長,餐飲業(yè)的競爭也越來越激勵,想在這 樣競爭激勵的環(huán)境下生存,就必須運用科學(xué)的管理思想與先進(jìn)的管理方法,使用點 餐與管理一體化。這樣不僅提高了工作效率,也避免了以前手工作業(yè)的麻煩,從而 使得管理者能夠準(zhǔn)確,有效的管理餐飲。因此,餐飲業(yè)的管理者更需要一種綜合實 時的管理模式,希望從更科學(xué)的管理中取得競爭的優(yōu)勢,在競爭激烈的商業(yè)市場中 取勝。結(jié)合管理信息系統(tǒng)的開發(fā)方法及步驟,以此為理論根據(jù),開發(fā)出一個信息管 理系統(tǒng)餐飲管理系統(tǒng)。它采用

4、國際通用的先進(jìn)餐飲管理模式,并結(jié)合中國的管 理實際特點開發(fā)而成。通過本系統(tǒng)功能模塊,可為各種大小不同的餐飲管理所使用。 為管理者提供高效的管理手段,本系統(tǒng)有著人性理的設(shè)置理念,流程清晰、易懂。 具有獨特的功能對于開臺管理、點菜、菜譜設(shè)置等為管理人員帶來很大的方便,減 少人為因素的錯誤,提高服務(wù)水平,提升企業(yè)形象。 關(guān)鍵字:餐飲管理系統(tǒng)、提高服務(wù)水平、提高工作效率 第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析 1.11.1 系統(tǒng)功能需求分析系統(tǒng)功能需求分析 隨著現(xiàn)在連鎖餐飲店的不斷崛起,作為餐飲業(yè)不可缺少的一部分餐飲管理系 統(tǒng),它的內(nèi)容對于餐飲業(yè)的決策者和管理者來說都非常重要。本系統(tǒng)基于餐飲管理 系統(tǒng)

5、之下的一個子系統(tǒng),可以把整個餐飲店的日常經(jīng)營管理信息化,包括點餐、庫 存管理、員工信息等日常經(jīng)營的一些統(tǒng)計功能?,F(xiàn)在此系統(tǒng)還不夠完善,將來使此 系統(tǒng)會集成更多的功能,例如:餐飲管理系統(tǒng)的開發(fā)成功,實現(xiàn)了餐飲業(yè)的現(xiàn)代化, 表明了餐飲管理正與國際化接軌,有了更為深入的發(fā)展。 餐軟管理系統(tǒng)采用國際通用的先進(jìn)餐飲管理模式,并結(jié)合中國的管理實際特 點開發(fā)而成。通過本系統(tǒng)功能模塊,可為各種大小不同的餐飲管理所使用。為管理 者提供高效的管理手段,本系統(tǒng)有著人性理的設(shè)置理念,流程清晰、易懂。具有獨 特的功能對于開臺管理、點菜、菜譜設(shè)置等為管理人員帶來很大的方便,減少人為 因素的錯誤,提高服務(wù)水平,提升企業(yè)形象

6、。 根據(jù)實際情況的需要,系統(tǒng)主要功能如下: 前臺管理:開臺管理、客戶結(jié)賬、退出系統(tǒng)。 系統(tǒng)管理:權(quán)限管理、系統(tǒng)管理、幫助。 基礎(chǔ)信息管理:酒水信息查詢、菜譜信息查詢及設(shè)置。 1.21.2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖 根據(jù)實際情況要求,系統(tǒng)數(shù)據(jù)流圖如圖 1.2.1 所示 圖 1.2.1 數(shù)據(jù)流圖 1.31.3 數(shù)據(jù)字典數(shù)據(jù)字典 在這定義的酒店餐飲數(shù)據(jù)字典,主要對數(shù)據(jù)流程圖中的數(shù)據(jù)流、數(shù)據(jù)存儲和處 理過程進(jìn)行說明。 (1)主要的數(shù)據(jù)流定義 1)數(shù)據(jù)流名稱:客戶信息 位置:客戶p2 定義:客戶信息=房間臺號+所點菜+酒水+開單時間+服務(wù)員編號 數(shù)據(jù)流量: 說明:客人點菜時可以進(jìn)行特色菜和酒水信息的查詢

7、,買單時要核對消費名目是 否屬實。 2)數(shù)據(jù)流名稱:菜譜信息 位置:菜譜p2 定義:菜譜信息=編號+房間臺號+菜名+單位+價格+菜系類別+口味說明 數(shù)據(jù)流量: 說明:編號不能有重復(fù)的。 3)數(shù)據(jù)流名稱:桌臺狀況 位置:桌臺p1 定義:桌臺狀況=編號+房臺名稱+類型說+餐飲部門+服務(wù)費+簡要說明+狀態(tài) 數(shù)據(jù)流量: 說明:只有狀態(tài)為空閑的房臺才能開臺。 4)數(shù)據(jù)流名稱:開臺人 位置:服務(wù)員 定義:開臺人編號姓名員工類別密碼 數(shù)據(jù)流量: 說明:不同的員工類別具有不同的權(quán)限,管理員具有所有權(quán)限,服務(wù)員不具備系 統(tǒng)維修等權(quán)限。 5)數(shù)據(jù)流名稱:員工信息 位置: 定義:員工信息員工編號姓名性別出生日期聯(lián)系

8、電話聯(lián)系地址 聘用日期工作部門員工類別身份證號備注 數(shù)據(jù)流量: 說明:員工編號不可相同。 6)數(shù)據(jù)流名稱:管理員情況 位置:管理員 定義:管理員姓名口令 數(shù)據(jù)流量:平均流量為每年傳輸 50 次。 說明:通過管理員來不斷的更新和維護這個系統(tǒng)。 7 )數(shù)據(jù)流名稱:開臺信息 位置:p1p4 定義:開臺信息=房間臺號+服務(wù)費 數(shù)據(jù)流量: 說明:服務(wù)費可以省去。 8)數(shù)據(jù)流名稱:點菜信息 位置:p2p4 定義:點菜信息=房間臺號+類別+編號+名稱+類型+數(shù)量+價格+合計+點但日期+結(jié) 單日期+服務(wù)員編號+服務(wù)員姓名+結(jié)帳編號 數(shù)據(jù)流量: 說明:房間臺號是根據(jù)開臺而來的。 (2)主要的數(shù)據(jù)存儲定義 )數(shù)據(jù)

9、存儲編號: 數(shù)據(jù)存儲名稱:桌臺信息 輸入: 輸出: 數(shù)據(jù)結(jié)構(gòu):桌臺信息=編號+房臺名稱+類型說+餐飲部門+服務(wù)費+簡要說明+狀態(tài) 存取方式:檢索和更新處理,以檢索為主。 說明:編號具有唯一性,狀態(tài)只能是空閑或者營業(yè)。 )數(shù)據(jù)存儲編號:d2 數(shù)據(jù)存儲名稱:員工信息 輸入:p1 輸出:p3 數(shù)據(jù)結(jié)構(gòu):員工信息=員工類別+口令 存取方式:主要是檢索。 說明:根據(jù)員工類別的不同,在后面的操作中具有不同的權(quán)限。 3)數(shù)據(jù)存儲編號:d3 數(shù)據(jù)存儲名稱:菜譜信息 輸入:p2 輸出:p2 數(shù)據(jù)結(jié)構(gòu):菜譜信息=菜名+單位+價格+菜系類別+口味說明 存取方式:檢索 說明:在點菜時對菜譜進(jìn)行查詢。 (3)主要處理過

10、程 1)處理過程編號:p1 處理過程名:開臺 輸入:服務(wù)員權(quán)限,桌臺狀況 輸出:開臺信息 處理說明:綜合各方面信息,進(jìn)行客人消費前最基本的準(zhǔn)備。 2)處理過程編號:p2 處理過程名:點菜 輸入:d1,d3,d4 輸出:點菜信息 處理說明:客人根據(jù)菜譜信息,酒水信息,特色菜信息,選擇自己中意的項目 進(jìn)行。 3)處理過程編號:p3 處理過程名:權(quán)限管理 輸入:員工類型,口令 輸出:相應(yīng)的操作權(quán)限 處理說明:輸入員工類別和口令獲得相應(yīng)的操作權(quán)限,管理員比服務(wù)員具有更 多的操作權(quán)限。 第二章第二章 系統(tǒng)概要設(shè)計系統(tǒng)概要設(shè)計 2.12.1 系統(tǒng)總體框架設(shè)計系統(tǒng)總體框架設(shè)計 根據(jù)業(yè)務(wù)情況,該系統(tǒng)共分為開臺

11、管理、客人買單、菜譜信息設(shè)置、客戶點菜、 酒水信息設(shè)置等模塊,系統(tǒng)結(jié)構(gòu)圖如圖 2.1 所示。 圖 2.1 餐飲管理系統(tǒng)結(jié)構(gòu)圖 2.22.2 各模塊功能分析各模塊功能分析 (1)系統(tǒng)登錄窗口主要功能)系統(tǒng)登錄窗口主要功能: 1)以圖標(biāo)形式顯示數(shù)據(jù)庫中操作員,并憑口令登入到主界面。 2)操作員輸入錯誤密碼提醒錯誤并返回,三次輸入錯誤口令則退出系統(tǒng)。 3)實現(xiàn)權(quán)限登錄:系統(tǒng)管理員擁有一切權(quán)利,其他操作員則被限制一些操作權(quán) 限。 (2)系統(tǒng)主界面主要功能)系統(tǒng)主界面主要功能 1)根據(jù)操作員權(quán)限設(shè)置相應(yīng)權(quán)限的菜單和工具欄功能。 2)可通過菜單或快捷鍵進(jìn)入相應(yīng)子界面。 3)顯示了系統(tǒng)當(dāng)前時間和相應(yīng)操作員。

12、 (3)系統(tǒng)菜譜信息設(shè)置界面主要功能:)系統(tǒng)菜譜信息設(shè)置界面主要功能: 實現(xiàn)對菜譜信息的添加、修改、刪除、查詢的功能。 (4 4)系統(tǒng)開臺管理界面主要功能:)系統(tǒng)開臺管理界面主要功能: 1)以圖標(biāo)模式顯示空臺、營業(yè)臺,點擊臺號圖標(biāo)則自動顯示相應(yīng)臺號信息。 2)通過輸入臺號檢索符合條件的臺號。 3)點擊空房自動彈出與昂查詢窗口從而自動開臺。 (5 5)系統(tǒng)點菜界面主要功能:)系統(tǒng)點菜界面主要功能: 1)實現(xiàn)菜譜,酒水查詢的鏈接。 2)點擊“開始點菜”按鈕臺號狀態(tài)自動變?yōu)殚_臺,并聚焦到編號欄。 3)在編號欄輸入菜編號按回車自動錄入菜的信息, 。 4)自動生成結(jié)賬編號,輸入菜數(shù)量自動計算合計消費金額

13、。 5)可實現(xiàn)掛單、讀單、放棄開臺和點菜完畢返回的功能。 第三章第三章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計 3.13.1 系統(tǒng)系統(tǒng) e-re-r 圖的設(shè)計圖的設(shè)計 系統(tǒng) e-r 圖如圖 3.1 所示 圖 3.1 系統(tǒng) e-r 圖 3.23.2 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計是總體設(shè)計階段非常重要的環(huán)節(jié),好的數(shù)據(jù)庫結(jié)構(gòu)可以簡化開發(fā) 過程,使系統(tǒng)功能更加清晰明確。因為數(shù)據(jù)庫結(jié)構(gòu)的變化會造成編碼的改動,所以 必須認(rèn)真設(shè)計數(shù)據(jù)庫后再進(jìn)行編碼,從而避免了無謂的重復(fù)的工作。 本系統(tǒng)采用了 sql server 數(shù)據(jù)庫,數(shù)據(jù)庫名稱為 060412079。該數(shù)據(jù)庫包含 4 個表,分別是:開臺表,點菜表,菜譜費

14、用信息表,臺號信息表。下面分別介紹數(shù) 據(jù)表的結(jié)構(gòu)。 1、 開臺表 開臺表用于保存開臺的相關(guān)信息。開臺表的結(jié)構(gòu)見表 3-2-1 所示。 表 3-2-1 開臺表結(jié)構(gòu) 字段名稱數(shù)據(jù)類型字段大小允許為空否 編號int4設(shè)置為主鍵 房臺名稱char30允許為空 類型說明char20允許為空 餐飲部門char20允許為空 服務(wù)費money8允許為空 簡要說明char30允許為空 狀態(tài)char20允許為空 2、 點菜表 點菜表用于保存點菜信息和相應(yīng)的消費信息。點菜表的結(jié)構(gòu)見表 3-2-2 所示。 表 3-2-2 點菜表結(jié)構(gòu) 字段名稱數(shù)據(jù)類型字段大小是否允許為空 idchar16設(shè)置為主鍵 房間臺號int4允

15、許為空 類別char 10允許為空 編號int4允許為空 名稱char50允許為空 類型char20允許為空 單位char10允許為空 數(shù)量int4允許為空 價格money8允許為空 合計money8允許為空 點單日期datetime8允許為空 結(jié)單日期datetime8允許為空 服務(wù)員編號int8允許為空 服務(wù)員姓名char12允許為空 狀態(tài)char10允許為空 結(jié)賬編號int4允許為空 是否結(jié)單char10允許為空 3、菜譜費用信息表用于查詢餐飲店所有的菜的信息。菜譜費用信息表的結(jié)構(gòu)如 圖 3-2-3 所示。 表 3-2-3 菜譜費用信息結(jié)構(gòu) 字段名稱數(shù)據(jù)類型字段大小是否允許為空 編號in

16、t4設(shè)為主鍵 菜名char50允許為空 單位char10允許為空 價格money8允許為空 菜系類別char20允許為空 口味說明char30允許為空 4、臺號信息表用于臺號信息的查詢,方便了消費者選臺,開臺及其他的作用。臺 號信息表的結(jié)構(gòu)如圖 3-2-4 示。 表 3-2-4 臺號信息表結(jié)構(gòu) 字段名稱數(shù)據(jù)類型字段大小是否允許為空 編號int4設(shè)為主鍵 房臺名稱char30設(shè)為主鍵 類型說明char20允許為空 餐飲部門char20允許為空 服務(wù)費money 8允許為空 簡要說明char30允許為空 狀態(tài)char10允許為空 容納人數(shù)int4允許為空 第四章第四章 系統(tǒng)詳細(xì)設(shè)計及實現(xiàn)系統(tǒng)詳細(xì)設(shè)

17、計及實現(xiàn) 4.14.1 系統(tǒng)登陸界面設(shè)計系統(tǒng)登陸界面設(shè)計 1.實現(xiàn)目標(biāo) 程序啟動后,首先登陸此界面驗證操作員的密碼。主要實現(xiàn)的功能如下: 1)以圖標(biāo)形式顯示數(shù)據(jù)庫中操作員,并憑口令登入到主界面。 2)操作員輸入錯誤密碼提醒錯誤并返回,三次輸入錯誤口令則退出系統(tǒng)。 3)實現(xiàn)權(quán)限登錄:系統(tǒng)管理員擁有一切權(quán)利,其他操作員則被限制一些操作權(quán)限。 系統(tǒng)登錄界面如圖 4.1.1 所示。 圖 4.1.1 系統(tǒng)登錄界面 2.實現(xiàn)過程 (1)添加窗體設(shè)置窗體 caption 屬性為“登錄窗口” ,保存窗體為 u79in.pas。 (2)向窗體中添加 datasource、query、edit、listview、

18、imagelist、image、time、label 等控件。 主要控件對象的屬性如表 4-2-1 所示。 表 4-2-1 主要控件對象的屬性列表 控件名屬性值功能 query1databasename sql 060412079 select * from 員工信表 權(quán)限查詢 database1datasetquery1設(shè)置數(shù)據(jù)源 3.程序主要代碼如下: 單擊“登陸”按鈕,將判斷操作員、操作密碼是否正確,如果正確進(jìn)入主界面 并根據(jù)操作員權(quán)限設(shè)置菜單和工具是否可用。如果輸入密碼錯誤將提醒并返回,三 次錯誤輸入則自動退出系統(tǒng)。 procedure tuser.bitbtn1click(sende

19、r: tobject); begin mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.toolbutton5.enabled:=true; mainform.toolbutton6.enabled:=true; mainform.n1.enabled:=true; mainform.n2.enabled:=true; mainform.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n5.enabled:=true; ma

20、inform.n6.enabled:=true; mainform.n7.enabled:=true; mainform.n8.enabled:=true; mainform.n9.enabled:=true; mainform.n17.enabled:=true; mainform.n19.enabled:=true; if query1.fieldbyname(編號).asstring=controller then /如果是系統(tǒng)管 理員 begin if edit1.textquery1.fieldbyname(密碼).asstring then begin showmessage(+q

21、uery1.fieldbyname(姓名).asstring+的口令錯誤.); /口令錯誤 edit1.setfocus; end else begin mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名). asstring+; mainform.user1:=query1.fieldbyname(姓名).asstring; user_close:=3; timer1.enabled:=false; close; end; end else begin mainform.toolbutton1.enabled:=false;

22、mainform.toolbutton2.enabled:=false; mainform.toolbutton5.enabled:=false; mainform.n1.enabled:=false; mainform.n2.enabled:=false; mainform.n4.enabled:=false; mainform.n3.enabled:=false; mainform.n5.enabled:=false; mainform.n6.enabled:=false; mainform.n7.enabled:=false; mainform.n8.enabled:=false; ma

23、inform.n9.enabled:=false; mainform.n17.enabled:=false; mainform.n19.enabled:=false; if edit1.textquery1.fieldbyname(密碼).asstring then begin showmessage(+query1.fieldbyname(姓名).asstring+的口令錯誤.); edit1.setfocus; end else begin name:=query1.fieldbyname(權(quán)限).asstring; mainform.enabledkey(name); /設(shè)置操作員權(quán)限

24、mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名 ).asstring+; user_close:=3; timer1.enabled:=false; close; end; end; end; 窗體啟動,關(guān)閉鑰匙,后將所有操作員添加到操作員列表。 procedure tuser.formshow(sender: tobject); var list:array0.1of tlistitem; begin timer1.enabled:=true; user_close:=0; /打開關(guān)閉鑰匙 query1.close; qu

25、ery1.open; listview1.items.clear; while not query1.eof do begin list0:=listview1.items.add; list0.caption:=query1.fieldbyname(姓名).asstring; if query1.fieldbyname(編號).asstring=controller then begin list0.imageindex:=0; end else begin list0.imageindex:=1; end; query1.next; end; end; 選擇操作員,點擊其中一個則將員工的姓

26、名和類型添加到了相應(yīng)位置。 procedure tuser.listview1click(sender: tobject); var list:array0.1of tlistitem; begin list0:=listview1.selected; if list0nil then begin query1.locate(姓名,list0.caption,locaseinsensitive); /查詢姓名,但是如果有從名的按第一個算. end; end; 4.24.2 主界面設(shè)計主界面設(shè)計 1、程序啟動后。系統(tǒng)在“登陸界面”驗證操作員密碼后,將進(jìn)入此界面。系統(tǒng)主界 面主要功能: 根據(jù)操作員

27、權(quán)限設(shè)置相應(yīng)權(quán)限的菜單和工具欄功能。 可通過菜單或快捷鍵進(jìn)入相應(yīng)子界面。 顯示了系統(tǒng)當(dāng)前時間和相應(yīng)操作員。 主程序界面如圖 4.2.1 所示。 圖 4.2.1 主程序界面 2.實現(xiàn)過程 (1)啟動 delphi,設(shè)置窗體名為 mainfrom,設(shè)置窗體 caption 為“餐飲管理系統(tǒng)” ,保存為 u791.pas。 (2)向窗體中添加 imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label 等控 件主要屬性為: 控件名屬性值功能 toolbar1imagesimagelist1設(shè)置工具欄圖標(biāo) stausbar 1panel1

28、用戶登錄【管理員】顯示程序狀態(tài)、參數(shù) (3)主要程序代碼如下: 使應(yīng)用項目的提示信息掛鉤程序。 procedure tmainform.formcreate(sender: tobject); begin application.onhint:=displayhint; /與應(yīng)用項目的提示信息掛鉤 end; 先調(diào)用系統(tǒng)登陸窗口,再設(shè)置窗體狀態(tài)參數(shù)程序。 procedure tmainform.formshow(sender: tobject); var year,month,day: word; begin close_1:=1; user.showmodal; /調(diào)用系統(tǒng)登陸窗口 if cl

29、ose_1 = 0 then close else begin application.mainform.windowstate:=wsmaximized; application.mainform.windowstate:=wsnormal; decodedate(strtodate(datetostr(date),year,month,day); /分解日期 statusbar1.panels2.text:=系統(tǒng)日期:+inttostr(year)+年 +inttostr(month)+月+inttostr(day)+日; end; end; 調(diào)入開臺界面程序。 procedure tma

30、inform.n8click(sender: tobject); begin if assigned(ktgl) then begin datamodule1.thxx.open;/打開臺號信息表 datamodule1.cybmb.open;/ 打開餐飲部門表 datamodule1.jzbh.open;/打開結(jié)帳編號表 ktgl:=tktgl.create(self); ktgl.showmodal; end; end; 設(shè)置“b”類權(quán)限有系統(tǒng)管理和系統(tǒng)維護操作權(quán), “a”類權(quán)限即系統(tǒng)管理員的操作 享有一切操作權(quán)限。如圖 4.2.2 所示。 圖 4.2.2 b 類權(quán)限主程序界面 代碼如下:

31、 function tmainform.enabledkey(key:string):boolean;/聲明操作權(quán)限函數(shù) enabledkey begin if pos(a,key)0 then /具有a類權(quán)限 begin mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.toolbutton5.enabled:=true; mainform.toolbutton6.enabled:=true; mainform.n1.enabled:=true; mainform.n2.enabl

32、ed:=true; mainform.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n8.enabled:=true; mainform.n9.enabled:=true; mainform.n17.enabled:=true; mainform.n19.enabled:=true; end else if pos(b,key)0 then /具有b類權(quán)限 begin mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.to

33、olbutton6.enabled:=true; mainform.n1.enabled:=true; mainform.n5.enabled:=true; mainform.n6.enabled:=true; mainform.n7.enabled:=true; mainform.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n8.enabled:=true; mainform.n9.enabled:=true; mainform.n17.enabled:=true; mainform.n19.enabled:=true; end

34、; end; 調(diào)入菜譜信息設(shè)置界面程序。 procedure tmainform.n6click(sender: tobject); begin if assigned(cpxxsz) then begin datamodule1.cpfyxx.open;/打開菜譜費用信息表 datamodule1.cxlbxx.open;/打開菜系類別信息表 cpxxsz:=tcpxxsz.create(self); cpxxsz.showmodal; end; end; 4.34.3 菜譜信息設(shè)置界面設(shè)計菜譜信息設(shè)置界面設(shè)計 4.3.14.3.1 菜譜設(shè)置模塊菜譜設(shè)置模塊 1.實現(xiàn)目標(biāo) 程序啟動后,調(diào)用菜

35、單“基礎(chǔ)信息設(shè)置”下的“菜譜信息設(shè)置”項,將打開 “菜譜信息設(shè)置界面” 。系統(tǒng)菜譜信息設(shè)置界面主要功能:實現(xiàn)對菜譜信息的添加、 修改、刪除、查詢的功能。 2.實現(xiàn)過程 (1)添加新窗體,設(shè)置窗體名為 cpxxsz,設(shè)置窗體 caption 為“菜譜信息設(shè)置” , 保存為 u79cpset.pas。 (2)向窗體中添加 query、panel、groupbox、dbgrid、dbedit、edit、dbtext、bitbtn、dblookupcom bobox、time、datasetfrist、actionlist、label 等控件,主要控件屬性如表 4-3- 1 所示。 表 4-3-1 主

36、要控件屬性 對象屬性值功能 query1databasename sql 060412079 slect max(編號) from 菜譜 信息費用表 設(shè)置數(shù) 據(jù)范圍 datasetfrist1datasource caption database1.cpxxfys 首記錄 移動到 首記錄 hint移動到第一條記錄 datasetlast1datasource caption hint database1.cpxxfys 尾記錄 移動到最后一條記錄 移動到 尾記錄 datasetnext1datasource caption hint database1.cpxxfys 下一條記錄 移動到下一條

37、記錄 移動到 下一條 記錄 datasetprior1datasource caption hint database1.cpxxfys 上一條記錄 移動到上一條記錄 移動到 上一條 記錄 dblookupcombox1listsource keyfield listfield datasource dtafirld database1.cpfyxxs 菜系名稱 菜系名稱 database1.cxlbxxs 菜系類別 選擇菜 系類別 4.3.24.3.2 菜譜查詢設(shè)計菜譜查詢設(shè)計 1.菜譜信息設(shè)置查詢界面如圖 4.3.1 所示。 圖 4.3.1 菜譜信息查詢設(shè)置界面 2.代碼如下: proce

38、dure tcpxxsz.bitbtn1click(sender: tobject); var a,b,c:integer; d:string; begin if length(edit1.text) = 0 then /如果輸入查詢信息為空 begin showmessage(請輸入查詢的編號或菜名信息); edit1.setfocus; end else begin a:=length(edit1.text); c:=0; for b:=1 to a do /for 語句用于判斷查詢是按菜譜編號還是按菜名查詢 begin d:=copy(edit1.text,b,1); if (d=0)

39、or (d=9) then begin c:=c+1; end; end; if c = length(edit1.text) then /按菜譜編號查詢 begin if datamodule1.cpfyxx.locate(編號,strtoint(edit1.text), locaseinsensitive) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=0; end else begin showmessage(對不起,沒有找到。); edit1.setfocus; end; end else /按菜譜編號查詢 begin if d

40、atamodule1.cpfyxx.locate(菜名,edit1.text,lopartialkey) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=1; end else begin showmessage(對不起,沒有找到。); edit1.setfocus; end; end; end; end; 4.3.34.3.3 菜譜添加設(shè)計菜譜添加設(shè)計 1.菜譜信息設(shè)置添加界面如圖 4.3.2 所示。 圖 4.3.2 菜譜信息添加設(shè)置界面 2.代碼如下: procedure tcpxxsz.bitbtn2click(sender: to

41、bject); var a:integer; begin query1.close; query1.open; if query1.recordcount0 then a:=query1.fields0.asinteger else a:=1; if bitbtn2.caption=添加 then /添加菜譜信息 begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 0 then a:=79000 /添加菜譜信息 else begin datamodule1.cpfyxx.last; a:=datamodul

42、e1.cpfyxx.fieldbyname(編號).asinteger; end; bitbtn2.caption:=保存; bitbtn3.caption:=取消; aenabled(1); datamodule1.cpfyxx.insert; datamodule1.cpfyxx.fieldbyname(編號).asinteger:=a+1; datamodule1.cpfyxx.fieldbyname(菜系類別). asstring:=datamodule1.cxlbxx.fieldbyname(菜系名稱).asstring; dbedit2.setfocus; end else /保存

43、菜譜信息 begin if (length(datamodule1.cpfyxx.fieldbyname(菜名).asstring)=0) or (length(datamodule1.cpfyxx.fieldbyname(單位).asstring)=0) or (length(datamodule1.cpfyxx.fieldbyname(價格).asstring)=0) then begin showmessage(請將菜名、單位、價格的數(shù)據(jù)添全。); dbedit1.setfocus; end else begin aenabled(2); bitbtn2.caption:=添加; bit

44、btn3.caption:=修改; datamodule1.cpfyxx.post; /保存菜譜信息 end; end; end; 4.3.44.3.4 菜譜修改設(shè)計菜譜修改設(shè)計 1.菜譜信息設(shè)置修改界面如圖 4.3.3 所示。 圖 4.3.3 菜譜信息設(shè)置修改界面 2.代碼如下: procedure tcpxxsz.bitbtn3click(sender: tobject); begin if bitbtn3.caption=修改 then begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 0 then

45、 /如果數(shù)據(jù)為空 begin showmessage(對不起,沒有數(shù)據(jù)可以修改。); end else /如果數(shù)據(jù)不為空 begin aenabled(1); bitbtn2.caption:=保存; bitbtn3.caption:=取消; datamodule1.cpfyxx.edit; /編輯 dbedit1.setfocus; end; end else begin aenabled(2); bitbtn2.caption:=添加; bitbtn3.caption:=修改; datamodule1.cpfyxx.cancel; /取消保存信息 end; end; 4.3.54.3.5

46、菜譜刪除設(shè)計菜譜刪除設(shè)計 1.菜譜信息設(shè)置刪除界面如圖 4.3.3 所示。 圖 4.3.3 菜譜信息設(shè)置刪除界面 2.代碼如下: procedure tcpxxsz.bitbtn4click(sender: tobject); begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 1 then begin showmessage(對不起,這是最后一個菜,不能刪除。); end else if messagedlg(確認(rèn)刪除指定的菜譜信息嗎?,mtcustom,mbyes,mbno,0) =mryes then

47、 begin datamodule1.cpfyxx.delete; /刪除數(shù)據(jù) end; end; 5. 狀態(tài)編輯與瀏覽狀態(tài)函數(shù) function aenabled(key:integer):boolean ; /定義狀態(tài)編輯與瀏覽狀態(tài)函 數(shù) begin if key = 1 then /編輯狀態(tài) begin cpxxsz.bitbtn4.enabled:=false; /“刪除“按鈕不可用 cpxxsz.bitbtn5.enabled:=false; /“退出“按鈕不可用 cpxxsz.bitbtn1.enabled:=false; /“查詢“按鈕不可用 cpxxsz.edit1.enabl

48、ed:=false; /查詢輸入框不可用 cpxxsz.dbgrid1.enabled:=false; cpxxsz.groupbox1.visible:=true; end else /瀏覽狀態(tài) begin cpxxsz.bitbtn4.enabled:=true; /“刪除“按鈕可用 cpxxsz.bitbtn5.enabled:=true; /“退出“按鈕可用 cpxxsz.bitbtn1.enabled:=true; /“查詢“按鈕可用 cpxxsz.edit1.enabled:=true; cpxxsz.dbgrid1.enabled:=true; cpxxsz.groupbox1.

49、visible:=false; end; end; 4.44.4 系統(tǒng)開臺管理設(shè)計系統(tǒng)開臺管理設(shè)計 1.實現(xiàn)目標(biāo) 程序啟動后,調(diào)用菜單“前臺管理”下的“開臺管理”項,將打開“開臺管理” 界面。系統(tǒng)開臺管理界面主要功能: 以圖標(biāo)模式顯示空臺、營業(yè)臺,點擊臺號圖標(biāo)則自動顯示相應(yīng)臺號信息。 通過輸入臺號檢索符合條件的臺號。 點擊空房自動彈出與昂查詢窗口從而自動開臺。 2.實現(xiàn)過程 (1)添加新窗體,設(shè)置窗體名為 ktgl,設(shè)置窗體 caption 為“開臺管理” ,保存 為 u79ktgl.pas。 (2)向窗體中添加 datasource、query、groupbox、panel、pagecont

50、rol、dbgrid、dbedit、edit、db text、bitbtn、dblookupcombobox、image、label 等控件,主要控件屬性如表 4-3- 1 所示。 表 4-3-1 主要控件屬性 控件名屬性值功能 打他搜如廁datasetquery設(shè)置數(shù)據(jù)源 dblookupcombox1listsource keyfield listfield database1.cybmbs 部門名稱 部門名稱 選擇餐飲部門 dbgrid1datasourcedatabase1.thxxs顯示臺號信息 4.4.14.4.1 搜索臺號設(shè)計搜索臺號設(shè)計 1.開臺管理搜索臺號界面如圖 4.4-1

51、 所示。 圖 4.4-1 開臺管理搜索臺號界面 2.代碼如下: procedure tktgl.bitbtn1click(sender: tobject); /搜索房臺 var list:tlistitem; lists:integer; listtext:string; a,b,c:integer; d:string; begin if length(edit1.text) = 0 then begin showmessage(請輸入查詢的房臺編號或房臺名稱信息); edit1.setfocus; end else begin a:=length(edit1.text); c:=0; for

52、 b:=1 to a do begin d:=copy(edit1.text,b,1); if (d=0) or (d=9) then begin c:=c+1; end; end; if c = length(edit1.text) then begin if datamodule1.thxx.locate(編號,strtoint(edit1.text), locaseinsensitive) then begin if datamodule1.thxx.fieldbyname(狀態(tài)).asstring空閑 then begin pagecontrol1.activepageindex:=1

53、; /顯示第二頁 bitbtn6.setfocus;/將焦點移到點菜服務(wù)按扭上 end else begin pagecontrol1.activepageindex:=0; /顯示第一頁 bitbtn3.setfocus;/將焦點移到開臺設(shè)置按扭上 end; end else begin showmessage(對不起,沒有找到。); end; end else begin if datamodule1.thxx.locate(房臺名稱,edit1.text,lopartialkey) then begin if datamodule1.thxx.fieldbyname(狀態(tài)).asstri

54、ng空閑 then begin pagecontrol1.activepageindex:=1; /顯示第二頁 bitbtn6.setfocus;/將焦點移到點菜服務(wù)按扭上 end else begin pagecontrol1.activepageindex:=0; /顯示第一頁 bitbtn3.setfocus;/將焦點移到開臺設(shè)置按扭上 end; end else begin showmessage(對不起,沒有找到。); end; end; end; end; 4.4.24.4.2 開臺設(shè)置設(shè)計開臺設(shè)置設(shè)計 1.開臺管理開臺設(shè)置界面如圖 4.4.2 所示。 圖 4.4.2 開臺管理開臺

55、設(shè)置界面 2.代碼如下: procedure tygcx.bitbtn1click(sender: tobject); begin gb:=2; if length(edit1.text) = 0 then begin showmessage(請輸入員工編號); edit1.setfocus; end else if datamodule1.ygxxb.locate(員工編號,strtoint(edit1.text), locaseinsensitive) then begin if not assigned(dcfy_lr) then begin dcfy_lr:=tdcfy_lr.crea

56、te(self); dcfy_lr.label14.caption:=ygcx.edit1.text; dcfy_lr.label15.caption:=datamodule1.ygxxb.fieldbyname(姓名). asstring; dcfy_lr.label16.caption:=datetimetostr(now); if datamodule1.jzbh.recordcount = 0 then begin datamodule1.jzbh.append; datamodule1.jzbh.fieldbyname(編號).asinteger:=1; datamodule1.jz

57、bh.post; end else dcfy_lr.label17.caption:=inttostr(datamodule1.jzbh.fieldbyname(編 號).asinteger+1); dcfy_lr.show; end; gb:=1; ygcx.close; end else begin showmessage(對不起,沒有找到此員工信息.); edit1.setfocus; end; end; 4.4.34.4.3 臺號信息查詢的設(shè)計臺號信息查詢的設(shè)計 1.開臺管理臺號信息查詢界面如圖 4.4.3 所示。 圖 4.4.3 開臺管理臺號信息查詢界面 2.代碼如下: proced

58、ure tktgl.listview2click(sender: tobject); /選擇房臺 var list:tlistitem; liststring:string; begin list:=tlistview(sender).selected; if list nil then begin liststring:=list.caption; if length(liststring) 0 then if datamodule1.thxx.locate(房臺名稱,liststring,lopartialkey) then begin query1.close; query1.sql.c

59、lear; query1.sql.add(select 編號,名稱,類型,單位,數(shù)量,價格,合計,狀態(tài),服務(wù)員 姓名 from 點菜臨時表); query1.sql.add(where 房間臺號=:a and 是否結(jié)單=:b); query1.params0.asinteger:=datamodule1.thxx.fieldbyname(編號). asinteger; query1.params1.asstring:=否; query1.open; query2.close; query2.sql.clear; query2.sql.add(select sum(合計) from 點菜臨時表)

60、; query2.sql.add(where 房間臺號=:a and 是否結(jié)單=:b); query2.params0.asinteger:=datamodule1.thxx.fieldbyname(編號). asinteger; query2.params1.asstring:=否; query2.open; if query1.recordcount 0 then begin query1.last; label13.caption:=query1.fieldbyname(服務(wù)員姓名).asstring; label15.caption:=floattostr(query2.fields0

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論