【正文】
i 數(shù)據(jù)開(kāi)發(fā)實(shí)例解析 機(jī)械工業(yè)出版社. [3].伊文敏,劉峰,王穎..Delphi +SQL Sever數(shù)據(jù)應(yīng)用實(shí)例完全解析 人民郵電出版社 [4].苗雪蘭,劉瑞新,宋歌..Delphi 數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用教程 機(jī)械工業(yè)出版社. [5].馬健兵 朱亮 應(yīng)用編程事例精解[M].北京:清華大學(xué)出版,[6]. 程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版,[7]. [M].科學(xué)大學(xué)出版,[8].張春林 馬成勇 數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[M]. 北京:清華大學(xué)出版社,[9].劉前進(jìn), 數(shù)據(jù)庫(kù)編程技術(shù).[M]北京:人民郵電出版社,[10].何旭洪. Delphi .[M] 北京:人民郵電出版社, 2022,[11].蔣方帥. Delphi 程序設(shè)計(jì).[M] 北京: 清華大學(xué)出版社. [12].趙增敏,王慶建. SQL .[M] 北京: 電子工業(yè)工業(yè)出版社. 61。軟件設(shè)計(jì)通過(guò) SQL Sever作為軟件的后端數(shù)據(jù)庫(kù),而59通過(guò)對(duì) SQL Sever的編程,基本熟悉掌握了對(duì)其強(qiáng)大功能的使用。問(wèn)題二:運(yùn)行時(shí)未有程序編寫錯(cuò)誤,但運(yùn)行到某個(gè)程序卻突然報(bào)錯(cuò),出現(xiàn)如下問(wèn)題。對(duì)于軟件的容錯(cuò)性的測(cè)試不能只是在最后的軟件測(cè)試中在來(lái)排除錯(cuò)誤;對(duì)于軟件的編程來(lái)說(shuō),錯(cuò)誤發(fā)現(xiàn)的越晚,最后進(jìn)行排錯(cuò)所花的人力和物力將越巨大。在本次軟件的測(cè)試過(guò)程中,首先主要通過(guò)分模塊的測(cè)試方法對(duì)軟件進(jìn)行測(cè)試,在測(cè)試的過(guò)程中按照軟件的要求一步步來(lái)對(duì)軟件進(jìn)行操作。圖 (3)單擊《添加》按鈕,在彈出的對(duì)話框中的“提供程序”選項(xiàng)卡中設(shè)置希望連接的數(shù)據(jù),如圖 。end。 DCFY_LR的 DCGrid的 KeyUp事件procedure (Sender: TObject。) then key:=0。 //如果輸入大于 0小于 9,則輸入空字符 if Length([2,x])=0 then begin Key:=0。 if 8 then :=+1 //光標(biāo)向后移動(dòng) Else50 If 50 Then begin :=+1。 End Else begin ShowMessage(39。 [7,x]:=39。單位39。 Abort。 End Else begin ShowMessage(39。 [8,x]:=(39。).AsString。 [2,X]:=(39。編號(hào)39。 end。 If = 5 Then begin if Length([1,X])0 then begin if StrToInt([5,X])=0 then //輸入數(shù)量為零 begin ShowMessage(39。贈(zèng)單39。 DCFY_LR的 DCGridKeyPress事件procedure (Sender: TObject。 //編輯房臺(tái)信息 (39。 [10].AsString:=[7,a]。 [6].AsFloat:=StrToFloat([6,a])。 For a:=1 to b1 do begin //將點(diǎn)菜信息保存到點(diǎn)菜臨時(shí)表[0].AsInteger:=StrToInt((39。45 。)。)。)。)。)。)。)。begin If ktKey = 3 Then //放棄開(kāi)臺(tái) begin End Else If ktKey = 2 Then //確定返回 begin if Length([1,1])=0 then //如果首單元格為空 begin ShowMessage(39。合計(jì)39。單位39。var a,b,c:integer。).AsInteger:=(39。 //保存編輯 ktkey:=3。 //將房臺(tái)改為空閑 。end。狀態(tài)39。⑷自動(dòng)生成結(jié)賬編號(hào),輸入菜數(shù)量自動(dòng)計(jì)算合計(jì)消費(fèi)金額。 :=39。39。39。39。狀態(tài)39。).asstring。39。 :=Format(39。39。服務(wù)員姓名39。 [0].AsInteger:=(39。 。where 房間臺(tái)號(hào)=:a and 是否結(jié)單=:b39。 If Length(ListString) 0 Then if (39。 end。 。 If = 0 Then begin 。 End Else if (39。end。//將焦點(diǎn)移到開(kāi)臺(tái)設(shè)置按扭上 end。,[loPartialKey]) then begin if (39。//將焦點(diǎn)移到開(kāi)臺(tái)設(shè)置按扭上 end。,StrTOInt(),[loCaseInsensitive]) then begin if (39。039。begin If Length() = 0 Then begin ShowMessage(39。 (2)向窗體中添加datasource、query、groupbox、panel、pagecontrol、dbgrid、dbedit、edit、dbtext、bitbtn、dblookupbobox、image、label 等控件,主要控件屬性如表 431所示。 :=False。 //“查詢“按鈕不可用 :=False。確認(rèn)刪除指定的菜譜信息嗎?39。 。 End Else begin AENabled(2)。 End Else //如果數(shù)據(jù)不為空 begin29 AEnabled(1)。圖 :procedure (Sender: TObject)。添加39。價(jià)格39。菜系名稱39。 Aenabled(1)。 a:=(39。vara:integer。)。 end。編號(hào)39。 if (D=39。d:String。end。end。 :=True。 End Else if Pos(39。 :=True。如圖 。beginIf Assigned(KTGL) Thenbegin。+IntToStr(Month)+39。 。 (2)向窗體中添加Imagelist、mainmenu、image、toolbutton、stausbar、panel、time、label 等控件主要屬性為:控件名 屬性 值 功能20Toolbar1 images Imagelist1 設(shè)置工具欄圖標(biāo)stausbar 1 Panel1 用戶登錄【管理員】 顯示程序狀態(tài)、參數(shù) (3)主要程序代碼如下:①使應(yīng)用項(xiàng)目的提示信息掛鉤程序。end。③選擇操作員,點(diǎn)擊其中一個(gè)則將員工的姓名和類型添加到了相應(yīng)位置。).AsString=39。 。18 end。+(39。)。 if (39。 :=False。 Close。姓名39。姓名39。編號(hào)39。 :=True。begin :=True。153)實(shí)現(xiàn)權(quán)限登錄:系統(tǒng)管理員擁有一切權(quán)利,其他操作員則被限制一些操作權(quán)限。點(diǎn)菜表的結(jié)構(gòu)見(jiàn)表 322所示。10第三章 數(shù)據(jù)庫(kù)設(shè)計(jì) ER圖的設(shè)計(jì)系統(tǒng) ER圖如圖 1112圖 系統(tǒng) ER圖數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)是總體設(shè)計(jì)階段非常重要的環(huán)節(jié),好的數(shù)據(jù)庫(kù)結(jié)構(gòu)可以簡(jiǎn)化開(kāi)發(fā)過(guò)程,使系統(tǒng)功能更加清晰明確。(4)系統(tǒng)開(kāi)臺(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)信息。第二章 系統(tǒng)概要設(shè)計(jì)根據(jù)業(yè)務(wù)情況,該系統(tǒng)共分為開(kāi)臺(tái)管理、客人買單、菜譜信息設(shè)置、客戶點(diǎn)菜、酒水信息設(shè)置等模塊,系統(tǒng)結(jié)構(gòu)圖如圖 。(2)主要的數(shù)據(jù)存儲(chǔ)定義1)數(shù)據(jù)存儲(chǔ)編號(hào):D17數(shù)據(jù)存儲(chǔ)名稱:桌臺(tái)信息輸入:P1輸出:P2數(shù)據(jù)結(jié)構(gòu):桌臺(tái)信息=編號(hào)+房臺(tái)名稱+類型說(shuō)+餐飲部門+服務(wù)費(fèi)+簡(jiǎn)要說(shuō)明+狀態(tài)存取方式:檢索和更新處理,以檢索為主。2)數(shù)據(jù)流名稱:菜譜信息位置:菜譜 P2定義:菜譜信息=編號(hào)+房間臺(tái)號(hào)+菜名+單位+價(jià)格+菜系類別+口味說(shuō)明數(shù)據(jù)流量:說(shuō)明:編號(hào)不能有重復(fù)的。通過(guò)本系統(tǒng)功能模塊,可為各種大小不同的餐飲管理所使用。它采用國(guó)際通用的先進(jìn)餐飲管理模式,并結(jié)合中國(guó)的管理實(shí)際特點(diǎn)開(kāi)發(fā)而成。結(jié)合管理信息系統(tǒng)的開(kāi)發(fā)方法及步驟,以此為理論根據(jù),開(kāi)發(fā)出一個(gè)信息管理系統(tǒng)——餐飲管理系統(tǒng)?!恫蛙浌芾硐到y(tǒng)》采用國(guó)際通用的先進(jìn)餐飲管理模式,并結(jié)合中國(guó)的管理實(shí)際特點(diǎn)開(kāi)發(fā)而成。(1)主要的數(shù)據(jù)流定義1)數(shù)據(jù)流名稱:客戶信息 位置:客戶 P2 定義:客戶信息=房間臺(tái)號(hào)+所點(diǎn)菜+酒水+開(kāi)單時(shí)間+服務(wù)員編號(hào) 數(shù)據(jù)流量: 說(shuō)明:客人點(diǎn)菜時(shí)可以進(jìn)行特色菜和酒水信息的查詢,買單時(shí)要核對(duì)消費(fèi)名目是否屬實(shí)。8)數(shù)據(jù)流名稱:點(diǎn)菜信息 位置:P2 P4 定義:點(diǎn)菜信息=房間臺(tái)號(hào)+類別+編號(hào)+名稱+類型+數(shù)量+價(jià)格+合計(jì)+點(diǎn)但日期+結(jié)單日期+服務(wù)員編號(hào)+服務(wù)員姓名+結(jié)帳編號(hào) 數(shù)據(jù)流量: 說(shuō)明:房間臺(tái)號(hào)是根據(jù)開(kāi)臺(tái)而來(lái)的。3)處理過(guò)程編號(hào):P3 處理過(guò)程名:權(quán)限管理 輸入:?jiǎn)T工類型,口令 輸出:相應(yīng)的操作權(quán)限 處理說(shuō)明:輸入員工類別和口令獲得相應(yīng)的操作權(quán)限,管理員比服務(wù)員具有更多的操作權(quán)限。(3)系統(tǒng)菜譜信息設(shè)置界面主要功能:實(shí)現(xiàn)對(duì)菜譜信息的添加、修改、刪除、查詢的功能。5)可實(shí)現(xiàn)掛單、讀單、放棄開(kāi)臺(tái)和點(diǎn)菜完畢返回的功能。表 321 開(kāi)臺(tái)表結(jié)構(gòu)字段名稱 數(shù)據(jù)類型 字段大小 允許為空否編號(hào) int 4 設(shè)置為主鍵房臺(tái)名稱 char 30 允許為空類型說(shuō)明 char 20 允許為空13餐飲部門 char 20 允許為空服務(wù)費(fèi) money 8 允許為空簡(jiǎn)要說(shuō)明 char 30 允許為空狀態(tài) char 20 允許為空 點(diǎn)菜表點(diǎn)菜表用于保存點(diǎn)菜信息和相應(yīng)的消費(fèi)信息。2)操作員輸入錯(cuò)誤密碼提醒錯(cuò)誤并返回,三次輸入錯(cuò)誤口令則退出系統(tǒng)。procedure (Sender: TObject)。 :=True。if (39。+(39。+(39。 :=False。 :=False。 :=False。]的口令錯(cuò)誤.39。用戶[39。 end。 //打開(kāi)關(guān)閉鑰匙 。編號(hào)39。end。//查詢姓名,但是如果有從名的按第一個(gè)算. end。圖 (1)啟動(dòng) Delphi,設(shè)置窗體名為 mainfrom,設(shè)置窗體 caption 為“餐飲管理系統(tǒng)”,保存為 。begin Close_1:=1。年39。procedure (Sender: TObject)。④設(shè)置“B”類權(quán)限有系統(tǒng)管理和系統(tǒng)維護(hù)操作權(quán), “A”類權(quán)限即系統(tǒng)管理員的操作享有一切操作權(quán)限。 :=True。 :=True。 :=True。 End。 end。var a,b,c:integer。 for b:=1 to a do //for語(yǔ)句用于判斷查詢是按菜譜編號(hào)還是按菜名查詢 begin D:=COPY(,b,1)。 If c = Length() Then //按菜譜編號(hào)查詢 begin if (39。 。39。圖 :procedure (Sender: TObject)。 If = 0 Then A:=79000 //添加菜譜信息 Else begin 。取消39。).AsString:=(39。).AsString)=0) or (Length((39。 :=39。 。)。 end。end。 End Else if MessageDLG(39。 //“退出“按鈕不可用 :=False。 :=True。 (1)添加新窗體,設(shè)置窗體名為 ktgl,設(shè)置窗體 caption 為“開(kāi)臺(tái)管理” ,保存為 。 d:String。 if (D=39。編號(hào)39。 //顯示第一頁(yè) 。房臺(tái)名稱39。 //顯示第一頁(yè) 。 end。 。 :=DateTimeToStr(Now)。).AsInteger+1)。 。 If List nil Then begin ListString:=。37 (39。 。)。 :=(39。 :=39。 。%S39。房臺(tái)名稱39。 :=Format(39。39。狀態(tài)39。空閑39。 end。⑶在編號(hào)欄輸入菜編號(hào)按回車自動(dòng)錄入菜的信息, 。 (39。 ??臻e39。 。編號(hào)39。 DCFY_LR的 FormShow事件procedure (Sender: TObject)。 [4,0]:=39。 [8,0]:=39。b:integer。數(shù)據(jù)