




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、酒店客房餐飲管理系統(tǒng)實(shí)現(xiàn)酒店客房餐飲管理系統(tǒng)功能完善,能管理普通酒店的客房住宿和餐飲等服務(wù)。本系統(tǒng)采用DELPHI和SQL SERVER工具開(kāi)發(fā),分為前臺(tái)和后臺(tái)管理。前臺(tái)與后臺(tái)管理程序相對(duì)獨(dú)立,均共用一個(gè)數(shù)據(jù)庫(kù)。下面對(duì)該系統(tǒng)的部份功能和模塊以及代碼進(jìn)行分析。一前臺(tái)管理1 數(shù)據(jù)模塊該模塊是整個(gè)程序數(shù)據(jù)的提供者,以及包括大部分的處理函數(shù)和實(shí)現(xiàn)功能。單元文件名:u_data.pas,數(shù)據(jù)模塊名:DM_main。部分代碼分析:返回指表中某字段的最大值,返回值為整型。因此該函數(shù)只能應(yīng)用字段為整型的表。function TDM_main.GetMaxId(aTable,aField:string):int
2、eger;var sSql:string;begin Result:=0; sSql:='select max(%s) from %s' with Q_getmax do begin SQL.Text:=Format(sSql,aField,aTable); Open; if not IsEmpty then Result:=Fields0.AsInteger+1; Close; end;end;接下來(lái)這個(gè)函數(shù)也是返回最大值,但是其為一個(gè)訂單的最大編號(hào)為字符型。function TDM_main.GetMaxOrderId:string;var id:String; count
3、:Integer;begin with Q_count_order do begin Open; count:=Fields0.Value; Close; end; id:='000'+IntToStr(count); id:=Copy(id, length(id)-3, 4); id:='F'+FormatDateTime('yymmdd',now)+id; Result:=id;end;系統(tǒng)登陸函數(shù):在進(jìn)行系統(tǒng)的操作處理時(shí),必須登陸。該函數(shù)對(duì)用戶輸入的用戶名和密碼數(shù)據(jù)庫(kù)驗(yàn)證。其密碼是進(jìn)行加密的(加密模塊稍后分析)function TDM_ma
4、in.Login(user, passwd:String):String;var Flag:Boolean;begin if Database.Connected=false then Database.Connected:=True; passwd:=Copy(passwd+passwd, 1, 10);/加密處理 passwd:=Encrypt(passwd, 111); with Q_login do begin Close; Params.ParamValues'ID':=user; Params.ParamValues'PASSWD':=passwd;
5、 Open;/在用戶請(qǐng)中查詢?cè)撚脩艉兔艽a是否存在 Flag:=( not IsEmpty); if Flag then begin Login:=FieldValues'NAME' IsPass:=Flag; end else begin Login:='' Application.MessageBox('請(qǐng)重新輸入!', '登錄失敗', MB_OK); end; Close; end;end;系統(tǒng)登出:procedure TDM_main.Logout;begin Database.Connected:=False;/斷開(kāi)數(shù)據(jù)庫(kù)
6、的連接end;2 加密模塊:?jiǎn)卧募篶rypt.pas。簡(jiǎn)單的加密算法。const C1 = 52845; C2 = 22719;function Encrypt( S: String; Key: Word): String;/S:加密的字符串;Key:密鑰var I: Integer; j: Integer;begin Result := S; for I := 1 to Length(S) do begin ResultI := char(byte(SI) xor (Key shr 8); Key := (byte(ResultI) + Key) * C1 + C2; end; s:=
7、Result; Result:='' for i:=1 to length(s) do begin j:=Integer(si); Result:=Result + Char(65+(j div 26)+Char(65+(j mod 26); end;end;3 主模塊系統(tǒng)的主界面,包括系統(tǒng)登陸。在沒(méi)有進(jìn)行登陸之前4個(gè)功能按鈕為灰色。第一個(gè)按鈕為客房管理,其次是餐飲管理,再次是客戶查詢,最后是收費(fèi)管理。4 客房管理模塊客房管理包括客房預(yù)定,入住,調(diào)整。其界面如下:操作介紹:預(yù)定:首先在證件編號(hào)文體框中輸入相關(guān)的證件編號(hào),按回車(chē)鍵,顯示如下窗口:輸入完整后單擊添加則返回上一個(gè)界面
8、,相關(guān)的數(shù)據(jù)將自動(dòng)填寫(xiě)。然后在右邊選擇相應(yīng)的客房等級(jí)。在網(wǎng)格中將顯示該等級(jí)的所有空閑房號(hào)。選擇一個(gè)房間,再點(diǎn)擊“新建”按鈕,然后點(diǎn)擊“添加”??头款A(yù)定完畢。入?。涸谧C件編號(hào)文體框中輸入相關(guān)的證件編號(hào),按回車(chē)鍵。如果該客戶已經(jīng)預(yù)定則自動(dòng)顯示信息,否則將彈出上面的窗口要求輸入信息。5 餐飲管理包括選菜、點(diǎn)菜、打單:下面是其相代碼說(shuō)明:procedure TF_foodorder.btnOkClick(Sender: TObject);var id:integer; total:single;begin if sid='' then begin B_neworderClick(nil
9、); end; /訂單明細(xì) id:=DM_main.GetMaxId('order_detail','id'); with Q_foodetail do begin Append; Fields0.AsInteger:=id; Fields1.AsString:=sid; Fields2.AsString:=dbtext1.Caption; Fields3.AsString:=edtNum.Text; Fields4.AsString:=dbtext4.Caption; Post; DisableControls; Close; Open; EnableCont
10、rols; end; /更新總訂單的總金額 with DM_main.T_foodorder do begin Edit; total:=DM_main.GetSumPrice(sid); Fields3.AsFloat:=total; Post; end;end;/撤銷(xiāo)選擇的一項(xiàng)菜目procedure TF_foodorder.btnCancelClick(Sender: TObject);var total:Single;begin with Q_foodetail do begin if IsEmpty then Exit; if not Active then begin ParamB
11、yName('sid').Value:=sid; Open; end; Delete; end; total:=DM_main.GetSumPrice(sid); with DM_main.T_foodorder do begin if not Active then Open; Locate('id',sid,); Edit; Fields3.AsFloat:=total; Post; end;end;procedure TF_foodorder.B_neworderClick(Sender: TObject);begin /新建總訂單 sid:=DM_mai
12、n.GetMaxOrderId; with DM_main.T_foodorder do begin Open; Append; Fields0.AsString:=sid; Fields1.AsString:=DateTimeToStr(Now); Fields2.AsString:=Trim(edtName.Text); Post; end; with Q_foodetail do begin Close; ParamByName('sid').Value:=sid; Prepare; Open; end;end;打單:票據(jù)示例如下。二后臺(tái)管理1 數(shù)據(jù)模塊該模塊是整個(gè)程序數(shù)
13、據(jù)的提供者,以及包括大部分的處理函數(shù)和實(shí)現(xiàn)功能。單元文件名:u_data.pas,數(shù)據(jù)模塊名:DM_main。部分代碼分析:設(shè)置前臺(tái)操作員的密碼:procedure TDM_main.SetOperatorPassword(password:String);begin password:=Copy(password+password, 1, 10); password:=Encrypt(password, 111);/加密單元 with T_operator do begin Edit; FieldValues'PASSWD':=password; end;end;根據(jù)客房ID
14、篩選客房:procedure TDM_main.SetModifyFilter(RoomID:String);begin with T_room_modify do begin Close; if length(RoomID)>0 then begin Filter:='ID='''+RoomID+'''' Filtered:=True; end else Filtered:=False; Open; end;end;獲得客房級(jí)別:procedure TDM_main.GetRoomLevel(RoomLevel:TStri
15、ngs);begin RoomLevel.Clear; RoomLevel.Add('全部級(jí)別'); with Q_room_level do begin Open; First; while not Eof do begin RoomLevel.Add(FieldValues'DESCRIPT'); Next; end; Close; end;end;客房統(tǒng)計(jì)圖實(shí)現(xiàn)函數(shù):/StarDate:開(kāi)始日期;EndDate:結(jié)束日期;procedure TDM_main.GetRoomStat(StartDate,EndDate:TDate; TimeStep, St
16、atType:Boolean;RoomLevel:Integer; BarSeries:TBarSeries);var StatResult:integer; MidDate:TDate; StatLabel:String;begin BarSeries.Clear; while StartDate<EndDate do begin MidDate:=GetNextDate(StartDate, TimeStep); if StatType then StatResult:=SumTurnover(StartDate, MidDate) else StatResult:=SumUsedR
17、oom(StartDate, MidDate, RoomLevel); if TimeStep then StatLabel:=FormatDateTime('dd', StartDate)+'日' else StatLabel:=FormatDateTime('mm', StartDate)+'月' BarSeries.AddY(StatResult,StatLabel); StartDate:=MidDate; end;end;換算下個(gè)月(日)日期:function TDM_main.GetNextDate(StartDate
18、:TDate;TimeStep:Boolean):TDate;var TimeYear,TimeMonth:String;begin if TimeStep then Result:=StartDate+1 else begin TimeYear:=FormatDateTime('yyyy', StartDate); TimeMonth:=FormatDateTime('mm', StartDate); if TimeMonth='12' then begin TimeYear:=IntToStr(StrToInt(TimeYear)+1); T
19、imeMonth:='01' end else TimeMonth:=IntToStr(StrToInt(TimeMonth)+1); Result:=StrToDate(TimeYear+'-'+TimeMonth+'-01'); end;end;2 系統(tǒng)登陸模塊該系統(tǒng)登陸將連接數(shù)據(jù)庫(kù)的管理員用戶表進(jìn)行驗(yàn)證:procedure TF_login.b_loginClick(Sender: TObject);var sSql:string;begin if (Trim(i_admin.Text)='')or(i_passwd.Tex
20、t='') then begin MessageDlg('請(qǐng)輸入管理員帳號(hào)和密碼!', mtWarning, mbOK, mbHelp, 6); i_admin.SetFocus; Exit; end; sSql:='select * from admin_user where name=''%s'' and passwd=''%s''' with DM_main.Q_admin do begin SQL.Text:=Format(sSql,Trim(i_admin.Text),i_
21、passwd.Text); Open; if IsEmpty then begin MessageDlg('連接錯(cuò)誤!請(qǐng)確認(rèn)管理員帳號(hào)和密碼!', mtWarning, mbOK, mbHelp, 6); i_admin.SetFocus; Exit; end else begin Close; self.Close; end; end;end;登陸界面:3 主控程序后臺(tái)管理主窗口如下:后臺(tái)管理程序采用MDI風(fēng)格窗體。并采用事件管理機(jī)制ActionList管理所有功能模塊的點(diǎn)擊事件:procedure TF_main.RoomAddExecute(Sender: TObject);begin Application.CreateForm(TF_add, F_add); RoomAdd.Enabled:=False;end;procedure TF_main.RoomModifyExecute(Sender: TObject);begin Appli
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供熱公司收購(gòu)合同范本
- 買(mǎi)方單方面違約合同范本
- 上海租賃牌照合同范本
- 2024年遵義市赤水市公益性崗位人員招聘考試真題
- Unit 1 A new start:Understanding ideas ① 教學(xué)設(shè)計(jì) -2024-2025學(xué)年外研版(2024年)英語(yǔ)七年級(jí) 上冊(cè)
- 出售大型廢船合同范本
- 臨時(shí)供電協(xié)議合同范本
- 2024年民主與科學(xué)雜志社招聘考試真題
- 勞務(wù)合同范本修灶臺(tái)
- 上海疫情物質(zhì)供貨合同范本
- 《人工智能導(dǎo)論》(第2版)高職全套教學(xué)課件
- 39 《出師表》對(duì)比閱讀-2024-2025中考語(yǔ)文文言文閱讀專(zhuān)項(xiàng)訓(xùn)練(含答案)
- 蛇膽川貝液在動(dòng)物模型中的藥理作用研究
- GB/T 44260-2024虛擬電廠資源配置與評(píng)估技術(shù)規(guī)范
- 中國(guó)煤炭地質(zhì)總局公開(kāi)招聘報(bào)名表
- AQ 1064-2008 煤礦用防爆柴油機(jī)無(wú)軌膠輪車(chē)安全使用規(guī)范(正式版)
- 電子商務(wù)數(shù)據(jù)分析基礎(chǔ)(第二版) 課件 模塊1、2 電子商務(wù)數(shù)據(jù)分析概述、基礎(chǔ)數(shù)據(jù)采集
- YB-T+4190-2018工程用機(jī)編鋼絲網(wǎng)及組合體
- 高大模板安全施工施工安全保證措施
- 比亞迪公司應(yīng)收賬款管理的問(wèn)題及對(duì)策分析
- 【高考真題】2024年新課標(biāo)全國(guó)Ⅱ卷高考語(yǔ)文真題試卷(含答案)
評(píng)論
0/150
提交評(píng)論