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

下載本文檔

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

文檔簡(jiǎn)介

1、0目 錄第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析.1 11.1 系統(tǒng)功能需求分析.11.2 系統(tǒng)數(shù)據(jù)流圖.11.3 數(shù)據(jù)字典.2第二章第二章 系統(tǒng)概要設(shè)計(jì)系統(tǒng)概要設(shè)計(jì).5 52.1 系統(tǒng)總體框圖設(shè)計(jì).52.2 各模塊功能分析.5第三章第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì).7 73.1 系統(tǒng) e-r 圖設(shè)計(jì).73.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì).8第四章第四章 系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn).1111 4.1 系統(tǒng)登陸界面設(shè)計(jì).114.2 系統(tǒng)主界面設(shè)計(jì).154.3 菜譜設(shè)置模塊.194.3.1 菜譜信息設(shè)置設(shè)計(jì) .194.3.2 菜譜查詢?cè)O(shè)計(jì) .204.3.3 菜譜添加設(shè)計(jì) .224.3.4 菜譜修改設(shè)計(jì)

2、.244.3.5 菜譜刪除設(shè)計(jì) .254.4 開臺(tái)管理模塊.274.4.1 搜索臺(tái)號(hào)設(shè)計(jì) .274.4.2 開臺(tái)設(shè)置設(shè)計(jì) .304.4.3 臺(tái)號(hào)信息查詢的設(shè)計(jì) .324.4.4 房臺(tái)列表顯示函數(shù)的設(shè)計(jì) .344.5 點(diǎn)菜管理模塊.344.5.1 客戶點(diǎn)菜設(shè)計(jì) .354.5.2 客戶放棄開臺(tái)設(shè)計(jì). 374.5.3 客戶點(diǎn)菜完畢返回設(shè)計(jì).37第五章第五章 數(shù)據(jù)模塊的創(chuàng)建與實(shí)現(xiàn)數(shù)據(jù)模塊的創(chuàng)建與實(shí)現(xiàn).45.455.1 數(shù)據(jù)模塊的創(chuàng)建.455.2 數(shù)據(jù)模塊的實(shí)現(xiàn).46第六章第六章 系統(tǒng)調(diào)試與測(cè)試系統(tǒng)調(diào)試與測(cè)試.53.536.1 軟件功能測(cè)試.47第七章第七章 結(jié)論結(jié)論.54547.1 系統(tǒng)開發(fā)遇到的問題

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

4、為各種大小不同的餐飲管理所使用。為管理者提供高效的管理手段,本系統(tǒng)有著人性理的設(shè)置理念,流程清晰、易懂。具有獨(dú)特的功能對(duì)于開臺(tái)管理、點(diǎn)菜、菜譜設(shè)置等為管理人員帶來很大的方便,減少人為因素的錯(cuò)誤,提高服務(wù)水平,提升企業(yè)形象。關(guān)鍵字:餐飲管理系統(tǒng)、提高服務(wù)水平、提高工作效率2第一章第一章 系統(tǒng)需求分析系統(tǒng)需求分析1.11.1 系統(tǒng)功能需求分析系統(tǒng)功能需求分析隨著現(xiàn)在連鎖餐飲店的不斷崛起,作為餐飲業(yè)不可缺少的一部分餐飲管理系統(tǒng),它的內(nèi)容對(duì)于餐飲業(yè)的決策者和管理者來說都非常重要。本系統(tǒng)基于餐飲管理系統(tǒng)之下的一個(gè)子系統(tǒng),可以把整個(gè)餐飲店的日常經(jīng)營(yíng)管理信息化,包括點(diǎn)餐、庫(kù)存管理、員工信息等日常經(jīng)營(yíng)的一些統(tǒng)

5、計(jì)功能?,F(xiàn)在此系統(tǒng)還不夠完善,將來使此系統(tǒng)會(huì)集成更多的功能,例如:餐飲管理系統(tǒng)的開發(fā)成功,實(shí)現(xiàn)了餐飲業(yè)的現(xiàn)代化,表明了餐飲管理正與國(guó)際化接軌,有了更為深入的發(fā)展。餐軟管理系統(tǒng)采用國(guó)際通用的先進(jìn)餐飲管理模式,并結(jié)合中國(guó)的管理實(shí)際特點(diǎn)開發(fā)而成。通過本系統(tǒng)功能模塊,可為各種大小不同的餐飲管理所使用。為管理者提供高效的管理手段,本系統(tǒng)有著人性理的設(shè)置理念,流程清晰、易懂。具有獨(dú)特的功能對(duì)于開臺(tái)管理、點(diǎn)菜、菜譜設(shè)置等為管理人員帶來很大的方便,減少人為因素的錯(cuò)誤,提高服務(wù)水平,提升企業(yè)形象。根據(jù)實(shí)際情況的需要,系統(tǒng)主要功能如下: 前臺(tái)管理:開臺(tái)管理、客戶結(jié)賬、退出系統(tǒng)。 系統(tǒng)管理:權(quán)限管理、系統(tǒng)管理、幫助

6、。 基礎(chǔ)信息管理:酒水信息查詢、菜譜信息查詢及設(shè)置。1.21.2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖根據(jù)實(shí)際情況要求,系統(tǒng)數(shù)據(jù)流圖如圖 1.2.1 所示圖 1.2.1 數(shù)據(jù)流圖31.31.3 數(shù)據(jù)字典數(shù)據(jù)字典在這定義的酒店餐飲數(shù)據(jù)字典,主要對(duì)數(shù)據(jù)流程圖中的數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)和處理過程進(jìn)行說明。(1)主要的數(shù)據(jù)流定義1)數(shù)據(jù)流名稱:客戶信息 位置:客戶p2 定義:客戶信息=房間臺(tái)號(hào)+所點(diǎn)菜+酒水+開單時(shí)間+服務(wù)員編號(hào) 數(shù)據(jù)流量: 說明:客人點(diǎn)菜時(shí)可以進(jìn)行特色菜和酒水信息的查詢,買單時(shí)要核對(duì)消費(fèi)名目是否屬實(shí)。2)數(shù)據(jù)流名稱:菜譜信息位置:菜譜p2定義:菜譜信息=編號(hào)+房間臺(tái)號(hào)+菜名+單位+價(jià)格+菜系類別+口味

7、說明數(shù)據(jù)流量:說明:編號(hào)不能有重復(fù)的。3)數(shù)據(jù)流名稱:桌臺(tái)狀況 位置:桌臺(tái)p1 定義:桌臺(tái)狀況=編號(hào)+房臺(tái)名稱+類型說+餐飲部門+服務(wù)費(fèi)+簡(jiǎn)要說明+狀態(tài) 數(shù)據(jù)流量:說明:只有狀態(tài)為空閑的房臺(tái)才能開臺(tái)。4)數(shù)據(jù)流名稱:開臺(tái)人 位置:服務(wù)員定義:開臺(tái)人編號(hào)姓名員工類別密碼數(shù)據(jù)流量:說明:不同的員工類別具有不同的權(quán)限,管理員具有所有權(quán)限,服務(wù)員不具備系統(tǒng)維修等權(quán)限。5)數(shù)據(jù)流名稱:?jiǎn)T工信息位置:定義:?jiǎn)T工信息員工編號(hào)姓名性別出生日期聯(lián)系電話聯(lián)系地址聘用日期工作部門員工類別身份證號(hào)備注數(shù)據(jù)流量:4說明:?jiǎn)T工編號(hào)不可相同。6)數(shù)據(jù)流名稱:管理員情況位置:管理員定義:管理員姓名口令數(shù)據(jù)流量:平均流量為每年

8、傳輸 50 次。說明:通過管理員來不斷的更新和維護(hù)這個(gè)系統(tǒng)。7 )數(shù)據(jù)流名稱:開臺(tái)信息 位置:p1p4 定義:開臺(tái)信息=房間臺(tái)號(hào)+服務(wù)費(fèi) 數(shù)據(jù)流量: 說明:服務(wù)費(fèi)可以省去。8)數(shù)據(jù)流名稱:點(diǎn)菜信息 位置:p2p4 定義:點(diǎn)菜信息=房間臺(tái)號(hào)+類別+編號(hào)+名稱+類型+數(shù)量+價(jià)格+合計(jì)+點(diǎn)但日期+結(jié)單日期+服務(wù)員編號(hào)+服務(wù)員姓名+結(jié)帳編號(hào) 數(shù)據(jù)流量: 說明:房間臺(tái)號(hào)是根據(jù)開臺(tái)而來的。(2)主要的數(shù)據(jù)存儲(chǔ)定義)數(shù)據(jù)存儲(chǔ)編號(hào):數(shù)據(jù)存儲(chǔ)名稱:桌臺(tái)信息輸入:輸出:數(shù)據(jù)結(jié)構(gòu):桌臺(tái)信息=編號(hào)+房臺(tái)名稱+類型說+餐飲部門+服務(wù)費(fèi)+簡(jiǎn)要說明+狀態(tài)存取方式:檢索和更新處理,以檢索為主。說明:編號(hào)具有唯一性,狀態(tài)只能是

9、空閑或者營(yíng)業(yè)。)數(shù)據(jù)存儲(chǔ)編號(hào):d2數(shù)據(jù)存儲(chǔ)名稱:?jiǎn)T工信息輸入:p1輸出:p3數(shù)據(jù)結(jié)構(gòu):?jiǎn)T工信息=員工類別+口令存取方式:主要是檢索。5說明:根據(jù)員工類別的不同,在后面的操作中具有不同的權(quán)限。3)數(shù)據(jù)存儲(chǔ)編號(hào):d3數(shù)據(jù)存儲(chǔ)名稱:菜譜信息輸入:p2輸出:p2數(shù)據(jù)結(jié)構(gòu):菜譜信息=菜名+單位+價(jià)格+菜系類別+口味說明存取方式:檢索說明:在點(diǎn)菜時(shí)對(duì)菜譜進(jìn)行查詢。(3)主要處理過程1)處理過程編號(hào):p1 處理過程名:開臺(tái) 輸入:服務(wù)員權(quán)限,桌臺(tái)狀況 輸出:開臺(tái)信息 處理說明:綜合各方面信息,進(jìn)行客人消費(fèi)前最基本的準(zhǔn)備。2)處理過程編號(hào):p2處理過程名:點(diǎn)菜 輸入:d1,d3,d4 輸出:點(diǎn)菜信息 處理說明

10、:客人根據(jù)菜譜信息,酒水信息,特色菜信息,選擇自己中意的項(xiàng)目進(jìn)行。3)處理過程編號(hào):p3 處理過程名:權(quán)限管理 輸入:?jiǎn)T工類型,口令 輸出:相應(yīng)的操作權(quán)限 處理說明:輸入員工類別和口令獲得相應(yīng)的操作權(quán)限,管理員比服務(wù)員具有更多的操作權(quán)限。6第二章第二章 系統(tǒng)概要設(shè)計(jì)系統(tǒng)概要設(shè)計(jì)2.12.1 系統(tǒng)總體框架設(shè)計(jì)系統(tǒng)總體框架設(shè)計(jì)根據(jù)業(yè)務(wù)情況,該系統(tǒng)共分為開臺(tái)管理、客人買單、菜譜信息設(shè)置、客戶點(diǎn)菜、酒水信息設(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ù)庫(kù)中操作員,

11、并憑口令登入到主界面。2)操作員輸入錯(cuò)誤密碼提醒錯(cuò)誤并返回,三次輸入錯(cuò)誤口令則退出系統(tǒng)。3)實(shí)現(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)前時(shí)間和相應(yīng)操作員。(3)系統(tǒng)菜譜信息設(shè)置界面主要功能:)系統(tǒng)菜譜信息設(shè)置界面主要功能:實(shí)現(xiàn)對(duì)菜譜信息的添加、修改、刪除、查詢的功能。7(4 4)系統(tǒng)開臺(tái)管理界面主要功能:)系統(tǒng)開臺(tái)管理界面主要功能:1)以圖標(biāo)模式顯示空臺(tái)、營(yíng)業(yè)臺(tái),點(diǎn)擊臺(tái)號(hào)圖標(biāo)則自動(dòng)顯示相應(yīng)臺(tái)號(hào)信息。2)通過輸入臺(tái)號(hào)檢索符

12、合條件的臺(tái)號(hào)。3)點(diǎn)擊空房自動(dòng)彈出與昂查詢窗口從而自動(dòng)開臺(tái)。(5 5)系統(tǒng)點(diǎn)菜界面主要功能:)系統(tǒng)點(diǎn)菜界面主要功能:1)實(shí)現(xiàn)菜譜,酒水查詢的鏈接。2)點(diǎn)擊“開始點(diǎn)菜”按鈕臺(tái)號(hào)狀態(tài)自動(dòng)變?yōu)殚_臺(tái),并聚焦到編號(hào)欄。3)在編號(hào)欄輸入菜編號(hào)按回車自動(dòng)錄入菜的信息, 。4)自動(dòng)生成結(jié)賬編號(hào),輸入菜數(shù)量自動(dòng)計(jì)算合計(jì)消費(fèi)金額。5)可實(shí)現(xiàn)掛單、讀單、放棄開臺(tái)和點(diǎn)菜完畢返回的功能。8第三章第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)3.13.1 系統(tǒng)系統(tǒng) e-re-r 圖的設(shè)計(jì)圖的設(shè)計(jì)系統(tǒng) e-r 圖如圖 3.1 所示9圖 3.1 系統(tǒng) e-r 圖3.23.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)是總體設(shè)計(jì)階段非常重要的環(huán)

13、節(jié),好的數(shù)據(jù)庫(kù)結(jié)構(gòu)可以簡(jiǎn)化開發(fā)過程,使系統(tǒng)功能更加清晰明確。因?yàn)閿?shù)據(jù)庫(kù)結(jié)構(gòu)的變化會(huì)造成編碼的改動(dòng),所以必須認(rèn)真設(shè)計(jì)數(shù)據(jù)庫(kù)后再進(jìn)行編碼,從而避免了無謂的重復(fù)的工作。本系統(tǒng)采用了 sql server 數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱為 060412079。該數(shù)據(jù)庫(kù)包含 4個(gè)表,分別是:開臺(tái)表,點(diǎn)菜表,菜譜費(fèi)用信息表,臺(tái)號(hào)信息表。下面分別介紹數(shù)據(jù)表的結(jié)構(gòu)。101、 開臺(tái)表開臺(tái)表用于保存開臺(tái)的相關(guān)信息。開臺(tái)表的結(jié)構(gòu)見表 3-2-1 所示。表 3-2-1 開臺(tái)表結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小允許為空否編號(hào)int4設(shè)置為主鍵房臺(tái)名稱char30允許為空類型說明char20允許為空餐飲部門char20允許為空服務(wù)費(fèi)mon

14、ey8允許為空簡(jiǎn)要說明char30允許為空狀態(tài)char20允許為空2、 點(diǎn)菜表點(diǎn)菜表用于保存點(diǎn)菜信息和相應(yīng)的消費(fèi)信息。點(diǎn)菜表的結(jié)構(gòu)見表 3-2-2 所示。表 3-2-2 點(diǎn)菜表結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小是否允許為空idchar16設(shè)置為主鍵房間臺(tái)號(hào)int4允許為空類別char 10允許為空編號(hào)int4允許為空名稱char50允許為空類型char20允許為空單位char10允許為空數(shù)量int4允許為空價(jià)格money8允許為空合計(jì)money8允許為空點(diǎn)單日期datetime8允許為空結(jié)單日期datetime8允許為空服務(wù)員編號(hào)int8允許為空11服務(wù)員姓名char12允許為空狀態(tài)char10允許

15、為空結(jié)賬編號(hào)int4允許為空是否結(jié)單char10允許為空3、菜譜費(fèi)用信息表用于查詢餐飲店所有的菜的信息。菜譜費(fèi)用信息表的結(jié)構(gòu)如圖 3-2-3 所示。表 3-2-3 菜譜費(fèi)用信息結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小是否允許為空編號(hào)int4設(shè)為主鍵菜名char50允許為空單位char10允許為空價(jià)格money8允許為空菜系類別char20允許為空口味說明char30允許為空4、臺(tái)號(hào)信息表用于臺(tái)號(hào)信息的查詢,方便了消費(fèi)者選臺(tái),開臺(tái)及其他的作用。臺(tái)號(hào)信息表的結(jié)構(gòu)如圖 3-2-4 示。表 3-2-4 臺(tái)號(hào)信息表結(jié)構(gòu)字段名稱數(shù)據(jù)類型字段大小是否允許為空編號(hào)int4設(shè)為主鍵房臺(tái)名稱char30設(shè)為主鍵類型說明cha

16、r20允許為空餐飲部門char20允許為空服務(wù)費(fèi)money 8允許為空簡(jiǎn)要說明char30允許為空狀態(tài)char10允許為空容納人數(shù)int4允許為空12第四章第四章 系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)4.14.1 系統(tǒng)登陸界面設(shè)計(jì)系統(tǒng)登陸界面設(shè)計(jì)1.實(shí)現(xiàn)目標(biāo) 程序啟動(dòng)后,首先登陸此界面驗(yàn)證操作員的密碼。主要實(shí)現(xiàn)的功能如下: 1)以圖標(biāo)形式顯示數(shù)據(jù)庫(kù)中操作員,并憑口令登入到主界面。2)操作員輸入錯(cuò)誤密碼提醒錯(cuò)誤并返回,三次輸入錯(cuò)誤口令則退出系統(tǒng)。3)實(shí)現(xiàn)權(quán)限登錄:系統(tǒng)管理員擁有一切權(quán)利,其他操作員則被限制一些操作權(quán)限。系統(tǒng)登錄界面如圖 4.1.1 所示。圖 4.1.1 系統(tǒng)登錄界面2.實(shí)現(xiàn)過程

17、(1)添加窗體設(shè)置窗體 caption 屬性為“登錄窗口” ,保存窗體為 u79in.pas。 (2)向窗體中添加datasource、query、edit、listview、imagelist、image、time、label 等控件。主要控件對(duì)象的屬性如表 4-2-1 所示。表 4-2-1 主要控件對(duì)象的屬性列表控件名屬性值功能query1databasename sql060412079select * from 員工信表權(quán)限查詢database1datasetquery1設(shè)置數(shù)據(jù)源3.程序主要代碼如下: 單擊“登陸”按鈕,將判斷操作員、操作密碼是否正確,如果正確進(jìn)入主界面13并根據(jù)操作

18、員權(quán)限設(shè)置菜單和工具是否可用。如果輸入密碼錯(cuò)誤將提醒并返回,三次錯(cuò)誤輸入則自動(dòng)退出系統(tǒng)。procedure tuser.bitbtn1click(sender: 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; mainfo

19、rm.n4.enabled:=true; mainform.n3.enabled:=true; mainform.n5.enabled:=true; mainform.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(編號(hào)).asstring=controller then /如果是系統(tǒng)管理員 b

20、egin if edit1.textquery1.fieldbyname(密碼).asstring then begin showmessage(+query1.fieldbyname(姓名).asstring+的口令錯(cuò)誤.); /口令錯(cuò)誤 edit1.setfocus; end else begin mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名).14asstring+; mainform.user1:=query1.fieldbyname(姓名).asstring; user_close:=3; timer1.enab

21、led:=false; close; end; end else begin mainform.toolbutton1.enabled:=false; 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.n

22、6.enabled:=false; mainform.n7.enabled:=false; mainform.n8.enabled:=false; mainform.n9.enabled:=false; mainform.n17.enabled:=false; mainform.n19.enabled:=false; if edit1.textquery1.fieldbyname(密碼).asstring then begin showmessage(+query1.fieldbyname(姓名).asstring+的口令錯(cuò)誤.); edit1.setfocus; end else begin

23、 name:=query1.fieldbyname(權(quán)限).asstring;15 mainform.enabledkey(name); /設(shè)置操作員權(quán)限 mainform.statusbar1.panels1.text:=用戶+query1.fieldbyname(姓名).asstring+; user_close:=3; timer1.enabled:=false; close; end; end; end;窗體啟動(dòng),關(guān)閉鑰匙,后將所有操作員添加到操作員列表。procedure tuser.formshow(sender: tobject);var list:array0.1of tlis

24、titem;begin timer1.enabled:=true; user_close:=0; /打開關(guān)閉鑰匙 query1.close; query1.open; listview1.items.clear; while not query1.eof do begin list0:=listview1.items.add; list0.caption:=query1.fieldbyname(姓名).asstring; if query1.fieldbyname(編號(hào)).asstring=controller then begin list0.imageindex:=0; end else

25、begin list0.imageindex:=1; end; query1.next;16 end;end;選擇操作員,點(diǎn)擊其中一個(gè)則將員工的姓名和類型添加到了相應(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);/查詢姓名,但是如果有從名的按第一個(gè)算. end;end;4

26、.24.2 主界面設(shè)計(jì)主界面設(shè)計(jì)1、程序啟動(dòng)后。系統(tǒng)在“登陸界面”驗(yàn)證操作員密碼后,將進(jìn)入此界面。系統(tǒng)主界面主要功能:根據(jù)操作員權(quán)限設(shè)置相應(yīng)權(quán)限的菜單和工具欄功能??赏ㄟ^菜單或快捷鍵進(jìn)入相應(yīng)子界面。顯示了系統(tǒng)當(dāng)前時(shí)間和相應(yīng)操作員。主程序界面如圖 4.2.1 所示。圖 4.2.1 主程序界面172.實(shí)現(xiàn)過程 (1)啟動(dòng) delphi,設(shè)置窗體名為 mainfrom,設(shè)置窗體 caption 為“餐飲管理系統(tǒng)”,保存為 u791.pas。 (2)向窗體中添加imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label 等控件主要屬性為:

27、控件名屬性值功能toolbar1imagesimagelist1設(shè)置工具欄圖標(biāo)stausbar 1panel1用戶登錄【管理員】顯示程序狀態(tài)、參數(shù) (3)主要程序代碼如下:使應(yīng)用項(xiàng)目的提示信息掛鉤程序。 procedure tmainform.formcreate(sender: tobject);beginapplication.onhint:=displayhint; /與應(yīng)用項(xiàng)目的提示信息掛鉤end;先調(diào)用系統(tǒng)登陸窗口,再設(shè)置窗體狀態(tài)參數(shù)程序。procedure tmainform.formshow(sender: tobject);var year,month,day: word;be

28、gin close_1:=1; user.showmodal; /調(diào)用系統(tǒng)登陸窗口 if close_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)+月+intt

29、ostr(day)+日; end;18end;調(diào)入開臺(tái)界面程序。procedure tmainform.n8click(sender: tobject);beginif assigned(ktgl) thenbegindatamodule1.thxx.open;/打開臺(tái)號(hào)信息表datamodule1.cybmb.open;/ 打開餐飲部門表datamodule1.jzbh.open;/打開結(jié)帳編號(hào)表ktgl:=tktgl.create(self);ktgl.showmodal;end;end;設(shè)置“b”類權(quán)限有系統(tǒng)管理和系統(tǒng)維護(hù)操作權(quán), “a”類權(quán)限即系統(tǒng)管理員的操作享有一切操作權(quán)限。如圖 4

30、.2.2 所示。圖 4.2.2 b 類權(quán)限主程序界面代碼如下:function tmainform.enabledkey(key:string):boolean;/聲明操作權(quán)限函數(shù) enabledkeybegin if pos(a,key)0 then /具有a類權(quán)限 begin19 mainform.toolbutton1.enabled:=true; mainform.toolbutton2.enabled:=true; mainform.toolbutton5.enabled:=true; mainform.toolbutton6.enabled:=true; mainform.n1.e

31、nabled:=true; mainform.n2.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 else if pos(b,key)0 then /具有b類權(quán)限 begin mainform.toolbutton1.enabled:=true; mainform.toolbut

32、ton2.enabled:=true; mainform.toolbutton6.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;

33、mainform.n19.enabled:=true; end;end;20調(diào)入菜譜信息設(shè)置界面程序。procedure tmainform.n6click(sender: tobject);begin if assigned(cpxxsz) then begin datamodule1.cpfyxx.open;/打開菜譜費(fèi)用信息表 datamodule1.cxlbxx.open;/打開菜系類別信息表 cpxxsz:=tcpxxsz.create(self); cpxxsz.showmodal; end;end;4.34.3 菜譜信息設(shè)置界面設(shè)計(jì)菜譜信息設(shè)置界面設(shè)計(jì)4.3.14.3.1 菜譜設(shè)

34、置模塊菜譜設(shè)置模塊1.實(shí)現(xiàn)目標(biāo)程序啟動(dòng)后,調(diào)用菜單“基礎(chǔ)信息設(shè)置”下的“菜譜信息設(shè)置”項(xiàng),將打開“菜譜信息設(shè)置界面” 。系統(tǒng)菜譜信息設(shè)置界面主要功能:實(shí)現(xiàn)對(duì)菜譜信息的添加、修改、刪除、查詢的功能。2.實(shí)現(xiàn)過程 (1)添加新窗體,設(shè)置窗體名為 cpxxsz,設(shè)置窗體 caption 為“菜譜信息設(shè)置” ,保存為 u79cpset.pas。 (2)向窗體中添加query、panel、groupbox、dbgrid、dbedit、edit、dbtext、bitbtn、dblookupcombobox、time、datasetfrist、actionlist、label 等控件,主要控件屬性如表 4-

35、3-1 所示。表 4-3-1 主要控件屬性對(duì)象屬性值功能query1databasenamesql060412079slect max(編號(hào)) from 菜譜信息費(fèi)用表設(shè)置數(shù)據(jù)范圍datasetfrist1datasourcecaptiondatabase1.cpxxfys首記錄移動(dòng)到首記錄21hint移動(dòng)到第一條記錄datasetlast1datasourcecaptionhintdatabase1.cpxxfys尾記錄移動(dòng)到最后一條記錄移動(dòng)到尾記錄datasetnext1datasourcecaptionhintdatabase1.cpxxfys下一條記錄移動(dòng)到下一條記錄移動(dòng)到下一條記錄d

36、atasetprior1datasourcecaptionhintdatabase1.cpxxfys上一條記錄移動(dòng)到上一條記錄移動(dòng)到上一條記錄dblookupcombox1listsourcekeyfieldlistfielddatasourcedtafirlddatabase1.cpfyxxs菜系名稱菜系名稱database1.cxlbxxs菜系類別選擇菜系類別4.3.24.3.2 菜譜查詢?cè)O(shè)計(jì)菜譜查詢?cè)O(shè)計(jì)1.菜譜信息設(shè)置查詢界面如圖 4.3.1 所示。圖 4.3.1 菜譜信息查詢?cè)O(shè)置界面222.代碼如下:procedure tcpxxsz.bitbtn1click(sender: tobj

37、ect);var a,b,c:integer;d:string;begin if length(edit1.text) = 0 then /如果輸入查詢信息為空 begin showmessage(請(qǐng)輸入查詢的編號(hào)或菜名信息); edit1.setfocus; end else begin a:=length(edit1.text); c:=0; for b:=1 to a do /for 語(yǔ)句用于判斷查詢是按菜譜編號(hào)還是按菜名查詢 begin d:=copy(edit1.text,b,1); if (d=0) or (d=9) then begin c:=c+1; end; end; if

38、c = length(edit1.text) then /按菜譜編號(hào)查詢 begin if datamodule1.cpfyxx.locate(編號(hào),strtoint(edit1.text),locaseinsensitive) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=0; end else23 begin showmessage(對(duì)不起,沒有找到。); edit1.setfocus; end; end else /按菜譜編號(hào)查詢 begin if datamodule1.cpfyxx.locate(菜名,edit1.text,l

39、opartialkey) then begin dbgrid1.setfocus; dbgrid1.selectedindex:=1; end else begin showmessage(對(duì)不起,沒有找到。); edit1.setfocus; end; end; end;end;4.3.34.3.3 菜譜添加設(shè)計(jì)菜譜添加設(shè)計(jì)1.菜譜信息設(shè)置添加界面如圖 4.3.2 所示。24圖 4.3.2 菜譜信息添加設(shè)置界面2.代碼如下:procedure tcpxxsz.bitbtn2click(sender: tobject);vara:integer;begin query1.close; quer

40、y1.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:=datamodule1.cpfyxx.fieldbyname(編號(hào)).asinteger; end; bitbt

41、n2.caption:=保存; bitbtn3.caption:=取消; aenabled(1); datamodule1.cpfyxx.insert; datamodule1.cpfyxx.fieldbyname(編號(hào)).asinteger:=a+1; datamodule1.cpfyxx.fieldbyname(菜系類別).asstring:=datamodule1.cxlbxx.fieldbyname(菜系名稱).asstring; dbedit2.setfocus; end else /保存菜譜信息 begin if (length(datamodule1.cpfyxx.fieldby

42、name(菜名).asstring)=0) or25 (length(datamodule1.cpfyxx.fieldbyname(單位).asstring)=0) or (length(datamodule1.cpfyxx.fieldbyname(價(jià)格).asstring)=0) then begin showmessage(請(qǐng)將菜名、單位、價(jià)格的數(shù)據(jù)添全。); dbedit1.setfocus; endelse begin aenabled(2); bitbtn2.caption:=添加; bitbtn3.caption:=修改; datamodule1.cpfyxx.post; /保存菜

43、譜信息 end; end;end;4.3.44.3.4 菜譜修改設(shè)計(jì)菜譜修改設(shè)計(jì)1.菜譜信息設(shè)置修改界面如圖 4.3.3 所示。圖 4.3.3 菜譜信息設(shè)置修改界面2.代碼如下:procedure tcpxxsz.bitbtn3click(sender: tobject);begin if bitbtn3.caption=修改 then26 begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 0 then /如果數(shù)據(jù)為空 begin showmessage(對(duì)不起,沒有數(shù)據(jù)可以修改。); end else

44、/如果數(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 菜譜刪除設(shè)計(jì)菜譜刪除設(shè)計(jì)1.菜譜信息設(shè)置刪除界面如圖 4.3.3 所示。27圖 4.3.3 菜譜信息設(shè)置刪除

45、界面2.代碼如下:procedure tcpxxsz.bitbtn4click(sender: tobject);begin datamodule1.cpfyxx.refresh; if datamodule1.cpfyxx.recordcount = 1 then begin showmessage(對(duì)不起,這是最后一個(gè)菜,不能刪除。); end else if messagedlg(確認(rèn)刪除指定的菜譜信息嗎?,mtcustom,mbyes,mbno,0)=mryes then begin datamodule1.cpfyxx.delete; /刪除數(shù)據(jù) end;end;5. 狀態(tài)編輯與瀏覽

46、狀態(tài)函數(shù)function aenabled(key:integer):boolean ; /定義狀態(tài)編輯與瀏覽狀態(tài)函數(shù)begin28 if key = 1 then /編輯狀態(tài) begin cpxxsz.bitbtn4.enabled:=false; /“刪除“按鈕不可用 cpxxsz.bitbtn5.enabled:=false; /“退出“按鈕不可用 cpxxsz.bitbtn1.enabled:=false; /“查詢“按鈕不可用 cpxxsz.edit1.enabled:=false; /查詢輸入框不可用 cpxxsz.dbgrid1.enabled:=false; cpxxsz.gr

47、oupbox1.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.visible:=false; end;end;4.44.4 系統(tǒng)開臺(tái)管理設(shè)計(jì)系統(tǒng)開臺(tái)管理設(shè)計(jì)1.實(shí)現(xiàn)目標(biāo)程序啟動(dòng)后,調(diào)用

48、菜單“前臺(tái)管理”下的“開臺(tái)管理”項(xiàng),將打開“開臺(tái)管理”界面。系統(tǒng)開臺(tái)管理界面主要功能:以圖標(biāo)模式顯示空臺(tái)、營(yíng)業(yè)臺(tái),點(diǎn)擊臺(tái)號(hào)圖標(biāo)則自動(dòng)顯示相應(yīng)臺(tái)號(hào)信息。通過輸入臺(tái)號(hào)檢索符合條件的臺(tái)號(hào)。點(diǎn)擊空房自動(dòng)彈出與昂查詢窗口從而自動(dòng)開臺(tái)。2.實(shí)現(xiàn)過程 (1)添加新窗體,設(shè)置窗體名為 ktgl,設(shè)置窗體 caption 為“開臺(tái)管理” ,保存為 u79ktgl.pas。 (2)向窗體中添加datasource、query、groupbox、panel、pagecontrol、dbgrid、dbedit、edit、db29text、bitbtn、dblookupcombobox、image、label 等控件,

49、主要控件屬性如表 4-3-1 所示。表 4-3-1 主要控件屬性控件名屬性值功能打他搜如廁datasetquery設(shè)置數(shù)據(jù)源dblookupcombox1listsourcekeyfieldlistfielddatabase1.cybmbs部門名稱部門名稱選擇餐飲部門dbgrid1datasourcedatabase1.thxxs顯示臺(tái)號(hào)信息4.4.14.4.1 搜索臺(tái)號(hào)設(shè)計(jì)搜索臺(tái)號(hào)設(shè)計(jì)1.開臺(tái)管理搜索臺(tái)號(hào)界面如圖 4.4-1 所示。圖 4.4-1 開臺(tái)管理搜索臺(tái)號(hào)界面2.代碼如下:procedure tktgl.bitbtn1click(sender: tobject); /搜索房臺(tái)var

50、list:tlistitem; lists:integer; listtext:string; a,b,c:integer; d:string;begin if length(edit1.text) = 0 then begin30 showmessage(請(qǐng)輸入查詢的房臺(tái)編號(hào)或房臺(tái)名稱信息); edit1.setfocus; end else begin a:=length(edit1.text); c:=0; for b:=1 to a do begin d:=copy(edit1.text,b,1); if (d=0) or (d=9) then begin c:=c+1; end; e

51、nd; if c = length(edit1.text) then begin if datamodule1.thxx.locate(編號(hào),strtoint(edit1.text),locaseinsensitive) then begin if datamodule1.thxx.fieldbyname(狀態(tài)).asstring空閑 then begin pagecontrol1.activepageindex:=1; /顯示第二頁(yè) bitbtn6.setfocus;/將焦點(diǎn)移到點(diǎn)菜服務(wù)按扭上 end else begin pagecontrol1.activepageindex:=0; /

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

53、end else begin pagecontrol1.activepageindex:=0; /顯示第一頁(yè) bitbtn3.setfocus;/將焦點(diǎn)移到開臺(tái)設(shè)置按扭上 end; end else begin showmessage(對(duì)不起,沒有找到。); end; end; end;end;4.4.24.4.2 開臺(tái)設(shè)置設(shè)計(jì)開臺(tái)設(shè)置設(shè)計(jì)1.開臺(tái)管理開臺(tái)設(shè)置界面如圖 4.4.2 所示。32圖 4.4.2 開臺(tái)管理開臺(tái)設(shè)置界面2.代碼如下:procedure tygcx.bitbtn1click(sender: tobject);begin gb:=2; if length(edit1.tex

54、t) = 0 then begin showmessage(請(qǐng)輸入員工編號(hào)); edit1.setfocus; end else if datamodule1.ygxxb.locate(員工編號(hào),strtoint(edit1.text),locaseinsensitive) then begin if not assigned(dcfy_lr) then begin dcfy_lr:=tdcfy_lr.create(self); dcfy_lr.label14.caption:=ygcx.edit1.text; dcfy_lr.label15.caption:=datamodule1.ygxx

55、b.fieldbyname(姓名).asstring; dcfy_lr.label16.caption:=datetimetostr(now); if datamodule1.jzbh.recordcount = 0 then begin33 datamodule1.jzbh.append; datamodule1.jzbh.fieldbyname(編號(hào)).asinteger:=1; datamodule1.jzbh.post; end else dcfy_lr.label17.caption:=inttostr(datamodule1.jzbh.fieldbyname(編號(hào)).asinteg

56、er+1); dcfy_lr.show; end; gb:=1; ygcx.close; end else begin showmessage(對(duì)不起,沒有找到此員工信息.); edit1.setfocus; end;end;4.4.34.4.3 臺(tái)號(hào)信息查詢的設(shè)計(jì)臺(tái)號(hào)信息查詢的設(shè)計(jì)1.開臺(tái)管理臺(tái)號(hào)信息查詢界面如圖 4.4.3 所示。圖 4.4.3 開臺(tái)管理臺(tái)號(hào)信息查詢界面2.代碼如下:procedure tktgl.listview2click(sender: tobject); /選擇房臺(tái)var list:tlistitem;34 liststring:string;begin list:

57、=tlistview(sender).selected; if list nil then begin liststring:=list.caption; if length(liststring) 0 then if datamodule1.thxx.locate(房臺(tái)名稱,liststring,lopartialkey) then begin query1.close; query1.sql.clear; query1.sql.add(select 編號(hào),名稱,類型,單位,數(shù)量,價(jià)格,合計(jì),狀態(tài),服務(wù)員姓名 from 點(diǎn)菜臨時(shí)表); query1.sql.add(where 房間臺(tái)號(hào)=:a

58、 and 是否結(jié)單=:b); query1.params0.asinteger:=datamodule1.thxx.fieldbyname(編號(hào)).asinteger; query1.params1.asstring:=否; query1.open; query2.close; query2.sql.clear; query2.sql.add(select sum(合計(jì)) from 點(diǎn)菜臨時(shí)表); query2.sql.add(where 房間臺(tái)號(hào)=:a and 是否結(jié)單=:b); query2.params0.asinteger:=datamodule1.thxx.fieldbyname(編

59、號(hào)).asinteger; query2.params1.asstring:=否; query2.open; if query1.recordcount 0 then begin query1.last; label13.caption:=query1.fieldbyname(服務(wù)員姓名).asstring; 35label15.caption:=floattostr(query2.fields0.asfloat+datamodule1.thxx.fieldbyname(服務(wù)費(fèi)).asfloat); end else begin label13.caption:=; label15.capti

60、on:=; end; end;end;end;4.4.44.4.4 房臺(tái)列表顯示函數(shù)的設(shè)計(jì)房臺(tái)列表顯示函數(shù)的設(shè)計(jì)function addlistview:boolean; /定義房臺(tái)列表顯示函數(shù)begin datamodule1.thxx.refresh; ktgl.listview1.items.clear; datamodule1.thxx.filter:=format(狀態(tài)+=+%s,空閑); datamodule1.thxx.filtered:=true; while not datamodule1.thxx.eof do begin ktgl.listview1.items.add.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論