首页
会员中心
到顶部
到尾部
Delphi毕设

酒店客房餐饮管理系统开发Delphi024

时间:2020/10/13 21:23:38  作者:  来源:  查看:1  评论:0
内容摘要: 酒店客房餐饮管理系统实现       酒店客房餐饮管理系统功能完善,能管理普通酒店的客房住宿和餐饮等服务。本系统采用DELPHI和SQL SERVER工具开发,分为前台和后台管理。前台与后台管理程序相对独立,均共...

酒店客房餐饮管理系统实现

       酒店客房餐饮管理系统功能完善,能管理普通酒店的客房住宿和餐饮等服务。本系统采用DELPHI和SQL SERVER工具开发,分为前台和后台管理。前台与后台管理程序相对独立,均共用一个数据库。下面对该系统的部份功能和模块以及代码进行分析。
 
一.前台管理
 
1.  数据模块
该模块是整个程序数据的提供者,以及包括大部分的处理函数和实现功能。
单元文件名: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;
 
2.  加密模块:
单元文件名: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
  j:=Integer(s[i]);
  Result:=Result + Char(65+(j div 26))+Char(65+(j mod 26));
 end;
end;
 
3.  主模块
系统的主界面,包括系统登陆。在没有进行登陆之前4个功能按钮为灰色。
  


相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号