- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
酒店客房餐饮管理完整系统实现(doc)
酒店客房餐饮管理系统实现
酒店客房餐饮管理系统功能完善,能管理普通酒店的客房住宿和餐饮等服务。本系统采用DELPHI和SQL SERVER工具开发,分为前台和后台管理。前台与后台管理程序相对独立,均共用一个数据库。下面对该系统的部份功能和模块以及代码进行分析。
一.前台管理
数据模块
该模块是整个程序数据的提供者,以及包括大部分的处理函数和实现功能。
单元文件名:u_data.pas,数据模块名:DM_main。
部分代码分析:
返回指表中某字段的最大值,返回值为整型。因此该函数只能应用字段为整型的表。
function TDM_main.GetMaxId(aTable,aField:string):integer;
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:=Fields[0].AsInteger+1;
Close;
end;
end;
接下来这个函数也是返回最大值,但是其为一个订单的最大编号为字符型。
function TDM_main.GetMaxOrderId:string;
var
id:String;
count:Integer;
begin
with Q_count_order do
begin
Open;
count:=Fields[0].Value;
Close;
end;
id:=000+IntToStr(count);
id:=Copy(id, length(id)-3, 4);
id:=F+FormatDateTime(yymmdd,now)+id;
Result:=id;
end;
系统登陆函数:在进行系统的操作处理时,必须登陆。该函数对用户输入的用户名和密码数据库验证。其密码是进行加密的(加密模块稍后分析)
function TDM_main.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;
Open; //在用户请中查询该用户和密码是否存在
Flag:=( not IsEmpty);
if Flag then
begin
Login:=FieldValues[NAME];
IsPass:=Flag;
end
else
begin
Login:=;
Application.MessageBox(请重新输入!, 登录失败, MB_OK);
end;
Close;
end;
end;
系统登出:
procedure TDM_main.Logout;
begin
Database.Connected:=False; //断开数据库的连接
end;
加密模块:
单元文件名:crypt.pas。
简单的加密算法。
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
Result[I] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(Result[I]) + Key) * C1 + C2;
end;
s:=Result;
Result:=;
for i:=1 to length(s) do
begin
文档评论(0)