【酒店專用】酒店客房餐飲管理系統(tǒng)實(shí)現(xiàn)14_第1頁
【酒店專用】酒店客房餐飲管理系統(tǒng)實(shí)現(xiàn)14_第2頁
【酒店專用】酒店客房餐飲管理系統(tǒng)實(shí)現(xiàn)14_第3頁
【酒店專用】酒店客房餐飲管理系統(tǒng)實(shí)現(xiàn)14_第4頁
【酒店專用】酒店客房餐飲管理系統(tǒng)實(shí)現(xiàn)14_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、酒店客房餐飲管理系統(tǒng)實(shí)現(xiàn)酒店客房餐飲管理系統(tǒng)功能完善, 能管理普通酒店的客房住宿和餐飲等服務(wù)。 本系統(tǒng)采 用 DELPHI 和 SQL SERVER 工具開發(fā),分為前臺(tái)和后臺(tái)管理。前臺(tái)與后臺(tái)管理程序相對(duì)獨(dú) 立,均共用一個(gè)數(shù)據(jù)庫。下面對(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.GetMaxld(aTable,aField:st

2、ring):integer;varsSql:string;beginResult:=0;sSql:='select max(%s) from %s'with Q_getmax dobeginSQL.Text:=Format(sSql,aField,aTable);Open;if not lsEmpty thenResult:=Fields0.Aslnteger+1;Close;end;end;接下來這個(gè)函數(shù)也是返回最大值,但是其為一個(gè)訂單的最大編號(hào)為字符型。function TDM_main.GetMaxOrderld:string;varid:String;count:lnt

3、eger;beginwith Q_count_order dobeginOpen;count:=Fields0.Value;Close;end;id:='000'+lntToStr(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ù)庫驗(yàn)證。其密碼是進(jìn)行加密的(加密模塊稍后分析) function TDM_main.Login(use

4、r, passwd:String):String;varFlag:Boolean;beginif Database.Connected=false thenDatabase.Connected:=True;passwd:=Copy(passwd+passwd, 1, 10);/加密處理passwd:=Encrypt(passwd, 111);with Q_login dobeginClose;Params.ParamValues'ID':=user;Params.ParamValues'PASSWD':=passwd;Open;/在用戶請(qǐng)中查詢?cè)撚脩艉兔艽a是否存

5、在Flag:=( not IsEmpty);if Flag thenbeginLogin:=FieldValues'NAME'IsPass:=Flag;endelsebeginLogin:=''Application.MessageBox(' 請(qǐng)重新輸入! ', ' 登錄失敗 ', MB_OK);end;Close;end;end;系統(tǒng)登出:procedure TDM_main.Logout;beginDatabase.Connected:=False; /斷開數(shù)據(jù)庫的連接end;2 加密模塊:單元文件名: crypt.pas。簡

6、單的加密算法。constC1 = 52845;C2 = 22719;fun ctio n En crypt( S: Stri ng; Key: Word): Stri ng;S :加密的字符串;Key :密鑰varI: In teger;j: In teger;beginResult := S;for I := 1 to Len gth(S) dobeginResultl := char(byte(Sl) xor (Key shr 8);Key := (byte(ResultI) + Key) * C1 + C2; en d;s:=Result;Result:="for i:=1 t

7、o len gth(s) dobeginj:=l nteger(si);Result:=Result + Char(65+(j div 26)+Char(65+(j mod 26); en d;en d;3.主模塊系統(tǒng)的主界面,包括系統(tǒng)登陸。在沒有進(jìn)行登陸之前4個(gè)功能按鈕為灰色。第一個(gè)按鈕為客房管理,其次是餐飲管理,再次是客戶查詢,最后是收費(fèi)管理。4.客房管理模塊客房管理包括客房預(yù)定,入住,調(diào)整。其界面如下:操作介紹:預(yù)定:首先在證件編號(hào)文體框中輸入相關(guān)的證件編號(hào),按回車鍵,顯示如下窗口:輸入完整后單擊添加則返回上一個(gè)界面,相關(guān)的數(shù)據(jù)將自動(dòng)填寫。然后在右邊選擇相應(yīng)的客房等級(jí)。在網(wǎng)格中將顯示該等

8、級(jí)的所有空閑房號(hào)。選擇一個(gè)房間,再點(diǎn)擊“新建”按鈕,然 后點(diǎn)擊"添加”。客房預(yù)定完畢。入住:在證件編號(hào)文體框中輸入相關(guān)的證件編號(hào),按回車鍵。如果該客戶已經(jīng)預(yù)定則自動(dòng)顯示信息,否則將彈出上面的窗口要求輸入信息。5.餐飲管理包括選菜、點(diǎn)菜、打單:下面是其相代碼說明:procedure TF_foodorder.btnOkClick(Sender: TObject);varid:integer;total:single;beginif sid='' thenbeginB_neworderClick(nil);end;/訂單明細(xì)id:=DM_main.GetMaxId(

9、9;order_detail','id');with Q_foodetail dobeginAppend;Fields0.AsInteger:=id;Fields1.AsString:=sid;Fields2.AsString:=dbtext1.Caption;Fields3.AsString:=edtNum.Text;Fields4.AsString:=dbtext4.Caption;Post;DisableControls;Close;Open;EnableControls;end;/更新總訂單的總金額with DM_main.T_foodorder dobegin

10、Edit;total:=DM_main.GetSumPrice(sid);Fields3.AsFloat:=total;Post;end;end;/撤銷選擇的一項(xiàng)菜目procedure TF_foodorder.btnCancelClick(Sender: TObject); vartotal:Single;beginwith Q_foodetail dobeginif IsEmpty thenExit;if not Active thenbeginParamByName('sid').Value:=sid;Open;end;Delete;end;total:=DM_main.

11、GetSumPrice(sid);with DM_main.T_foodorder dobeginif not Active then Open;Locate('id',sid,);Edit;Fields3.AsFloat:=total;Post;end;end;procedure TF_foodorder.B_neworderClick(Sender: TObject);begin/新建總訂單sid:=DM_main.GetMaxOrderId;with DM_main.T_foodorder dobeginOpen;Append;Fields0.AsString:=sid;

12、Fields1.AsString:=DateTimeToStr(Now);Fields2.AsString:=Trim(edtName.Text);Post;end;with Q_foodetail dobeginClose;ParamByName('sid').Value:=sid;Prepare;Open;end;end;打單:票據(jù)示例如下。二后臺(tái)管理1 數(shù)據(jù)模塊該模塊是整個(gè)程序數(shù)據(jù)的提供者,以及包括大部分的處理函數(shù)和實(shí)現(xiàn)功能。 單元文件名:u_data.pas數(shù)據(jù)模塊名:DM_main。部分代碼分析:設(shè)置前臺(tái)操作員的密碼:procedure TDM_ma in. SetO

13、peratorPassword(password:Stri ng);beginpassword:=Copy(password+password, 1, 10);password:=E ncrypt(password, 111);/ 力口密單元with T_operator dobeginEdit;FieldValues'PASSWD':=password;en d;en d;根據(jù)客房ID篩選客房:procedure TDM_mai n.SetModifyFilter(RoomlD:Stri ng);beginwith T_room_modify dobeginClose;if

14、length(RoomlD)>0 thenbeginFilter:='ID=”'+RoomlD+”;Filtered:=True;endelseFiltered:=False;Open;end;end;獲得客房級(jí)別:procedure TDM_main.GetRoomLevel(RoomLevel:TStrings); beginRoomLevel.Clear;RoomLevel.Add(' 全部級(jí)別 ');with Q_room_level do beginOpen;First;while not Eof do beginRoomLevel.Add(Fi

15、eldValues'DESCRIPT');Next; end; Close;end;end;客房統(tǒng)計(jì)圖實(shí)現(xiàn)函數(shù):/StarDate:開始日期;EndDate:結(jié)束日期; procedure TDM_main.GetRoomStat(StartDate,EndDate:TDate;TimeStep, StatType:Boolean;RoomLevel:Integer;BarSeries:TBarSeries);varStatResult:integer;MidDate:TDate;StatLabel:String;beginBarSeries.Clear;while Start

16、Date<EndDate dobeginMidDate:=GetNextDate(StartDate, TimeStep);if StatType then StatResult:=SumTurnover(StartDate, MidDate) elseStatResult:=SumUsedRoom(StartDate, MidDate, RoomLevel); if TimeStep thenStatLabel:=FormatDateTime('dd', StartDate)+' 日 ' elseStatLabel:=FormatDateTime(

17、9;mm', StartDate)+' 月 ' BarSeries.AddY(StatResult,StatLabel); StartDate:=MidDate;end;end;換算下個(gè)月(日)日期:function TDM_main.GetNextDate(StartDate:TDate;TimeStep:Boolean):TDate; varTimeYear,TimeMonth:String;beginif TimeStep thenResult:=StartDate+1elsebeginTimeYear:=FormatDateTime('yyyy'

18、, StartDate); TimeMonth:=FormatDateTime('mm', StartDate); if TimeMonth='12' then beginTimeYear:=IntToStr(StrToInt(TimeYear)+1);TimeMonth:='01'end elseTimeMonth:=IntToStr(StrToInt(TimeMonth)+1); Result:=StrToDate(TimeYear+'-'+TimeMonth+'-01'); end;end;2 系統(tǒng)登陸模塊

19、該系統(tǒng)登陸將連接數(shù)據(jù)庫的管理員用戶表進(jìn)行驗(yàn)證: procedure TF_login.b_loginClick(Sender: TObject);varsSql:string;beginif (Trim(i_admin.Text)='')or(i_passwd.Text='') thenbeginMessageDlg(' 請(qǐng)輸入管理員帳號(hào)和密碼! ', mtWarning, mbOK, mbHelp, 6); i_admin.SetFocus;Exit;end;sSql:='select * from admin_user where n

20、ame=''%s'' and passwd=''%s'''with DM_main.Q_admin dobeginSQL.Text:=Format(sSql,Trim(i_admi n.Text),i_passwd.Text);Ope n;if IsEmpty the nbeginMessageDlg('連接錯(cuò)誤! 請(qǐng)確認(rèn)管理員帳號(hào)和密碼!', mtWarni ng, mbOK, mbHelp, 6);i_adm in .SetFocus;Exit;endelsebeginClose;self.Close;

21、en d;en d;en d;登陸界面:系統(tǒng)登錄/登錄 JTl退擊I3.主控程序后臺(tái)管理主窗口如下:B客房誓飲笞理后臺(tái)數(shù)齬庫管理孫統(tǒng)&客房管理援飲著理輔助管理姬口旦幫肋倏改操作員賬號(hào)后臺(tái)管理程序采用 MDI風(fēng)格窗體。并采用事件管理機(jī)制 Acti on List管理所有功能模塊的點(diǎn)擊事件:procedure TF_ma in .RoomAddExecute(Se nder: TObject);beginApplicati on .CreateForm(TF_add, F_add);RoomAdd.E nabled:=False;en d;procedure TF_main.RoomModifyExecute(Sender: TObject); beginApplication.CreateForm(TF_modify, F_modify);RoomModify.E nabled:=False;en d;procedure TF_main.HelpAboutExecute(Sender: TObject); beginF_about.ShowModal;en d;procedure TF_main.SystemE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論