分享
分销 收藏 举报 申诉 / 47
播放页_导航下方通栏广告

类型酒店管理delphi.doc

  • 上传人:快乐****生活
  • 文档编号:3551717
  • 上传时间:2024-07-09
  • 格式:DOC
  • 页数:47
  • 大小:2.12MB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    酒店 管理 delphi
    资源描述:
    经济管理学院实验报告 姓名: 诸男 班级: 11信管(1)班 学号: 2011333540114 实验成绩: 课程名称: 信息系统开发平台课程设计 指导教师:祝锡永 实验名称: 信息系统开发平台课程设计 2013年 1 月 24 日 实验目的: 1) 掌握基于win32和C/S结构的信息系统基本构成及其架构的知识,与软件设计和软件实现相关的知识;同时具备自主学习和掌握其它基于Win32和c/s结构的信息系统开发工具的能力。 2) 掌握数据库管理系统与信息系统开发平台之间的集成方法;具备综合运用数据库应用和信息系统开发平台对已有信息系统进行剖析的能力;将数据库应用与信息系统开发平台结合,能独立完成开发管理信息系统。 实验环境:;软件开发平台Delphi2010+数据库管理系统SQL Server2008等 实验内容与步骤: 一、软件主要功能介绍 本系统全名叫Z酒店信息管理系统,主要是提供给酒店前台人员使用的。进入系统后主界面的显示主要是四部分,其中业务中心包括:前台中心,客务中心,预订管理;报表中心包括房费日报表;系统设置包括账号设置;个人中心包括修改密码。其中业务中心是最重要的部分。下面是关于各项目内容的简介。 1)前台中心 功能较多,主要有4块,已入住包括查看和退房、已预定包括查看和更改、未入住包括查看和入住、脏房包括查看和更改。 2)客务中心 主要是查询客户信息 3)预订管理 主要是进行预订和查询 4)报表中心 主要是对金额的分析和查询 5)系统设置 主要是员工信息的查看和增删改。 6)个人中心 主要是当前操作者的密码修改。 二、数据库设计 1. 建立数据库的SQL代码 数据库名称:myhotel,主要包含9个表,各个表结构如下: ① 建房间表 if OBJECT_ID('rooms') is not null drop table rooms go create table rooms( roomid nvarchar(5) not null primary key clustered check(roomid like'[A-Z][0-9][0-9][0-9]'), categoryid nchar(1) not null, floors nchar(1)constraint ck_rooms_floors check(floors>0), isempty nchar(1) constraint df_rooms_isempty default(1), isusing nchar(1) constraint df_rooms_isusing default(0), isdirty nchar(1) constraint df_rooms_isdirty default(0)) go insert into rooms values('A101','1','1','1','0','0') insert into rooms values('A102','2','1','1','0','0') insert into rooms values('B201','2','2','1','0','0') insert into rooms values('B202','3','2','1','0','0') insert into rooms values('C301','3','3','1','0','0') insert into rooms values('C302','4','3','1','0','0') go 建房间种类表 if OBJECT_ID('roomcategories') is not null drop table roomcategories go create table roomcategories( categoryid nchar(1) not null primary key, categoryname nvarchar(20), unitprice money check(unitprice>0)) go insert into roomcategories values('1','标准单人间','100') insert into roomcategories values('2','标准双人间','150') insert into roomcategories values('3','豪华单人间','150') insert into roomcategories values('4','豪华双人间','200') go 建员工表 if OBJECT_ID('hotelemployees')is not null drop table hotelemployees go create table hotelemployees( employeeid nvarchar(10) not null primary key check(employeeid like '[FM][0-9][0-9][0-9]'), employeename nvarchar(20), sex nchar(1) check(sex in('F','M')), country nvarchar(100), province nvarchar(100), city nvarchar(100), address nvarchar(100)) go insert into hotelemployees values('F001','小丹','F','中国','浙江','杭州','西湖路号') insert into hotelemployees values('F002','小丽','F','中国','浙江','杭州','西湖路号') insert into hotelemployees values('F003','小黄','F','中国','江苏','南京','南京路号') insert into hotelemployees values('M001','小陈','M','中国','上海','宝山','宝山路号') insert into hotelemployees values('M002','小吴','M','中国','浙江','杭州','西湖路号') go 建客户表 if OBJECT_ID('hotelcustomers') is not null drop table hotelcustomers go create table hotelcustomers( customerid nchar(10) not null primary key, customername nvarchar(100), sex nchar(1) check(sex in('F','M')), birthdate datetime, country nvarchar(100), province nvarchar(100), city nvarchar(100), address nvarchar(100), isvip nchar(1) constraint df_hotelcustomers_isvip default(0)) go 建订单表 if OBJECT_ID('hotelorders')is not null drop table hotelorders go create table hotelorders( orderid nchar(10) primary key, orderdate datetime, customerid nchar(10), employeeid nvarchar(10) constraint fk_hotelorders_employeeid references hotelemployees(employeeid)) go 建订单详细表 if OBJECT_ID('hotelorderitems') is not null drop table hotelorderitems go create table hotelorderitems( orderid nchar(10) primary key constraint fk_hotelorderitems_orderid references hotelorders(orderid), roomid nvarchar(5) constraint fk_hotelorderitems_roomid references rooms(roomid), time int check(time>0), unitprice money , discount decimal constraint df_hotelorderitems_discount default(0.12), amount as cast(time*unitprice*(1-discount) as decimal(12,2))) go 建历史表 if object_id('history')is not null drop table history go create table history( customerid nchar(10) not null primary key, customername nvarchar(100), sex nchar(1) check(sex in('F','M')), indate datetime, offdate datetime, country nvarchar(100), province nvarchar(100), city nvarchar(100), address nvarchar(100), isvip nchar(1) constraint df_history_isvip default(0)) go 建定金表 if object_id('earnest')is not null drop table earnest go create table earnest( customerid nchar(10) not null primary key, customername nvarchar(100), roomid nvarchar(5) constraint fk_earnest_roomid references rooms(roomid), emoney money) go 建预订表 if OBJECT_ID('reserve')is not null drop table reserve go create table reserve( roomid nvarchar(5) constraint fk_reserve_roomid references rooms(roomid), customerid nchar(10), customername nvarchar(100), intime datetime, time int) go 三、程序功能、实现界面及其代码 1. 数据模块 1)功能介绍及设计说明: 数据连接和全局变量 2)程序运行界面 3)程序代码 var DataModule2: TDataModule2; flag,f,f1,f2:integer; dl,roomid11,roomid1,r,r1,r2,r3,r4:string; r91:string; close3:integer; r10,r101:string; yd:integer; 注:在后面的表单中,若用到数据模块,则必须在uses中添加数据模块的文件名(unit2)。 2. 主菜单程序 (1)、主页 其中上面的工具栏依次为主页、前台中心、客务中心、预订管理、锁屏离开,为快捷键,方便操作员操作。点击前四个为直接跳到相应界面,程序为: //主页按钮 procedure TForm1.ToolButton1Click(Sender: TObject); var i,j:integer; s:string; begin //showmessage(inttostr(panel2.ControlCount)); if (panel2.ControlCount>1) then begin //释放原有窗体 for j := 0 to panel2.controlcount-2 do begin for i:=1 to panel2.ControlCount do begin s:=lowercase(panel2.Controls[i].ClassName); //showmessage(s); //showmessage(inttostr(i)); if (copy(s,1,5)='tform') then begin panel2.Controls[i].Free; break; end; end; end; end; end; //其余三个按钮 procedure TForm1.ToolButton6Click(Sender: TObject); var i:integer; s:string; begin NewFormClass:=nil; NewForm:=TForm(application.FindComponent(lowercase('form客务中'))); if NewForm<>nil then NewFormClass:=TFormClass(NewForm.ClassType); if NewFormClass<>nil then begin NewForm := NewFormClass.Create(Self); NewForm.Hide; if isshowmodal=1 then NewForm.Showmodal else begin NewForm.BorderStyle:=bsNone; NewForm.Parent:=panel2; NewForm.Align:=alclient; NewForm.Show; end; end; //锁屏离开按钮 procedure TForm1.ToolButton7Click(Sender: TObject); var i,j:integer; s:string; begin if (panel2.ControlCount>1) then begin //释放原有窗体 for j := 0 to panel2.controlcount-2 do begin for i:=1 to panel2.ControlCount do begin s:=lowercase(panel2.Controls[i].ClassName); //showmessage(s); //showmessage(inttostr(i)); if (copy(s,1,5)='tform') then begin panel2.Controls[i].Free; break; end; end; end; end; form12.showmodal; end; //其中form12 procedure TForm12.Button1Click(Sender: TObject); var s,c:string; begin s:=edit1.text; with adoquery1 do begin close; sql.clear; sql.text:='select code from hotelemployees where employeename='''+dl+''''; open; c:=fieldbyname('code').asstring; end; if s<>c then begin showmessage('密码错误 请重新输入!'); edit1.setfocus; end else close; end; procedure TForm12.FormShow(Sender: TObject); begin edit1.text:=''; edit1.setfocus; label1.caption:=dl+' 离开'; label2.caption:='请输入密码登陆'; end; 左边部分为树,自己可视化界面输的。树的代码: procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); var i,x:integer; s1,s2,s:string; begin s:=trim(node.Text); s1:='form'+copy(s,1,3); //showmessage(s1); if not (node.HasChildren) then begin if (panel2.ControlCount>1) then begin //释放原有窗体 for i:=1 to panel2.ControlCount do begin s:=lowercase(panel2.Controls[i-1].ClassName); if (copy(s,1,5)='tform') then begin panel2.Controls[i-1].Free; break; end; end; end; NewFormClass:=nil; NewForm:=TForm(application.FindComponent(lowercase(s1))); if NewForm<>nil then NewFormClass:=TFormClass(NewForm.ClassType); if NewFormClass<>nil then begin NewForm := NewFormClass.Create(Self); NewForm.Hide; if isshowmodal=1 then NewForm.Showmodal else begin NewForm.BorderStyle:=bsNone; NewForm.Parent:=panel2; NewForm.Align:=alclient; NewForm.Show; end; end; end; end; (2)、前台中心 1)查看已入住的房间 procedure TForm前台中.Button3Click(Sender: TObject); var s,s1:string; i:integer; begin f:=1; with dbgrid1 do begin columns.Clear; for I := 0 to 4 do columns.Add; columns[0].Title.caption:='房间号'; columns[1].Title.caption:='房间类型'; columns[2].Title.caption:='客户名称'; columns[3].Title.caption:='性别'; columns[4].Title.caption:='入住日期'; columns[0].Width:=20*10; columns[1].Width:=20*10; columns[2].Width:=20*10; columns[3].Width:=20*5; columns[4].Width:=20*10; for I := 0 to 4 do columns[i].Title.Alignment:=tacenter; columns[0].FieldName:='roomid'; columns[1].FieldName:='categoryname'; columns[2].FieldName:='customername'; columns[3].FieldName:='sex'; columns[4].FieldName:='orderdate'; end; s:='if object_id(''y'')is not null drop table y'; s:=s+' select a.roomid,categoryname,customername,sex,orderdate into y from rooms as a'; s:=s+' join roomcategories as b on a.categoryid=b.categoryid'; s:=s+' join hotelorderitems as c on a.roomid=c.roomid'; s:=s+' join hotelorders as d on c.orderid=d.orderid'; s:=s+' join hotelcustomers as e on d.customerid=e.customerid where isusing=1 '; xx:=s; mandtext:=s; adocommand1.execute; with adotable1 do begin close; tablename:='y'; open; end; end; //其中双击DBGRID可以查看客户详细信息,也可以修改 procedure TForm前台中.DBGrid1DblClick(Sender: TObject); var s:string; begin if f=1 then begin roomid11:=trim(dbgrid1.SelectedField.Text); form5.showmodal; //datasource1.dataset:=adotable1; mandtext:=xx; adocommand1.execute; with adotable1 do begin close; tablename:='y'; open; end; end; end; //修改按钮 procedure TForm5.Button3Click(Sender: TObject); begin edit2.Enabled:=true; edit3.Enabled:=true; //edit4.Enabled:=true; edit5.Enabled:=true; combobox1.Enabled:=true; combobox2.Enabled:=true; combobox3.Enabled:=true; combobox4.Enabled:=true; combobox5.enabled:=true; end; //保存按钮 procedure TForm5.Button2Click(Sender: TObject); begin with adoquery3 do begin close; sql.text:='select * from hotelcustomers'; open; edit; fieldbyname('customername').asstring:=trim(edit2.text); fieldbyname('birthdate').asstring:=trim(edit5.text); fieldbyname('address').asstring:=trim(edit3.text); fieldbyname('sex').asstring:=trim(combobox1.text); fieldbyname('province').asstring:=trim(combobox2.text); fieldbyname('country').asstring:=trim(combobox3.text); fieldbyname('city').asstring:=trim(combobox4.text); if trim(combobox5.text)='否' then fieldbyname('isvip').asstring:='0' else fieldbyname('isvip').asstring:='1'; post; end; showmessage('保存成功!'); end; 2)退房 //退房按钮的click事件 procedure TForm前台中.Button1Click(Sender: TObject); begin roomid1:=dbgrid1.selectedfield.text; form8.showmodal; mandtext:=xx; adocommand1.execute; with adotable1 do begin close; tablename:='y'; open; end; end; //结账表单的代码 procedure TForm8.FormShow(Sender: TObject); var s,s1,s2,rdate,yf,dj:string; amount1,amount:integer; begin with adoquery1 do begin close; s:='select customername,roomid from hotelcustomers as a join hotelorders as b on a.customerid=b.customerid'; s:=s+' join hotelorderitems as c on b.orderid=c.orderid where roomid='''+roomid1+''''; //roomid1是dbgrid选中行的房间编码 sql.text:=s; open; s1:=fieldbyname('customername').asstring; s2:=fieldbyname('roomid').asstring; end; edit1.text:=s1; edit2.text:=s2; with adoquery1 do begin close; sql.clear; sql.text:='select * from y'; open; rdate:=fieldbyname('orderdate').asstring; edit3.text:=rdate; datetimetostring(s,'yyyy-mm-dd',now());//当前时间 edit4.text:=s; end; d1:=strtoint(copy(edit3.text,9,2));//取出入住的日期 d2:=strtoint(copy(edit4.text,9,2));//取出当前的日期 with adoquery1 do begin close; sql.clear; sql.text:='select unitprice from roomcategories as a join rooms as b on a.categoryid=b.categoryid where roomid='''+roomid1+''''; open; s:=fieldbyname('unitprice').asstring; end; amount:=(d2-d1)*strtoint(s);//算出应收账款 edit5.text:=inttostr(amount); with adoquery1 do begin close; sql.clear; s:='select a.customerid,sum(emoney) as dj from earnest as a join hotelcustomers as b'; s:=s+' on a.customerid=b.customerid where a.customername='''+s1+''' group by a.customerid'; sql.text:=s; open; dj:=fieldbyname('dj').asstring;//定金 close; sql.clear; s:='select b.customerid,sum(amount)as m from hotelorderitems as a join hotelorders as b on a.orderid=b.orderid'; s:=s+' join hotelcustomers as c on b.customerid=c.customerid where customername='''+s1+''' group by b.customerid'; sql.text:=s; open; yf:=fieldbyname('m').asstring;//房钱 end; amount1:=strtoint(dj)+strtoint(yf);//已付金额 edit6.text:=inttostr(amount1); edit7.text:=inttostr(amount-amount1);//结账时应收金额 end; 3)查看已预订房间 procedure TForm前台中.Button7Click(Sender: TObject); var i:integer; s:string; begin with dbgrid1 do begin columns.Clear; for I := 0 to 3 do columns.Add; columns[0].Title.caption:='房间号'; columns[1].Title.caption:='客户名称'; columns[2].Title.caption:='房间类型'; columns[3].title.caption:='入住时间'; columns[0].fieldname:='roomid1'; columns[1].fieldname:='customername'; columns[2].fieldname:='categoryname'; columns[3].fieldname:='intime'; columns[0].Width:=20*10; columns[1].Width:=20*10; columns[2].Width:=20*10; columns[3].Width:=20*10; for I := 0 to 3 do columns[i].Title.Alignment:=tacenter; end; s:='if object_id(''yd'')is not null drop table yd'; s:=s+' select a.roomid as roomid1,customername,categoryname,intime into yd from reserve as a '; s:=s+' join rooms as b on a.roomid=b.roomid'; s:=s+' join roomcategories as c on b.categoryid=c.categoryid'; x3:=s; mandtext:=s; adocommand1.execute; with adotable1 do begin close; tablename:='yd'; open; end; end; 4) 更改预订状态 跳出来其实就是登记入住的窗口,稍微改动一下。 procedure TForm前台中.Button8Click(Sender: TObject); begin yd:=1; r:=dbgrid1.selectedfiel
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:酒店管理delphi.doc
    链接地址:https://www.zixin.com.cn/doc/3551717.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork