酒店管理系统Delphi软件课程设计报告.docx
《酒店管理系统Delphi软件课程设计报告.docx》由会员分享,可在线阅读,更多相关《酒店管理系统Delphi软件课程设计报告.docx(59页珍藏版)》请在冰豆网上搜索。
酒店管理系统Delphi软件课程设计报告
南京理工大学
课程设计说明书
作者:
学号:
作者:
学号:
学院(系):
专业:
题目:
酒店管理系统
2010年10月
一、概述······································1
二、需求分析···································3
三、系统设计···································7
四、系统实施···································16
五、系统测试···································42
六、收获和体会································51
七、附录·······································51
八、参考文献···································51
一、概述
1、项目背景:
酒店兴衰,关键是管理。
建设一间现代化的酒店,需要的是钱,而要经营管理好一间酒店,关键是管理。
酒店管理是现代酒店的命脉,管理水平的高低,决定着酒店经营的成败。
酒店是企业,同样是要重视管理的工作,加强管理。
现代管理者即是财富,当代的管理者更是直接的财富。
管理的意义,简单地讲,管就是主事,理就是治事,合起来为主管和治理人与事。
随着中国加入WTO和经济全球化格局的形成,越来越多的人感到21世纪国际酒店的竞争激烈,从设备豪华到价格竞争发展到人才全方位的竞争。
要竞争就必须创新。
创新,是酒店的生命。
商场如战场,成功的管理者及其管理需要刚柔结合。
一个酒店,无论是土地,还是设备,还是流动资金,他们的实质都是静态资产。
人们认为财务管理首要的是讲“管好钱”。
其实钱是属于静态资产,钱是不会跑的,它又没有长脚。
如果说钱会跑,是因为有人去动他,所以不是钱的问题,仍然是管理的问题。
钱是不能主动创造价值的,即使是被投资于很好的项目,也是管理做的决定,也是由人在那里管理。
所以,唯有管理的行为才能创造价值。
现在的酒店管理进入e时代,未来酒店业的竞争必将进入一个新的阶段,伴随着我国旅游业的高速发展,宾馆酒店行业的服务档次迫切需要提高。
在宾馆酒店竞争日趋激烈的今天,要成为佼佼者,就必须与高新技术紧密结合。
硬件设施落后、管理水平滞后、服务质量低下的酒店将被逐步淘汰,传统的纯手工或简单的计算工具,已经不适应现代经济高速发展的要求,必须运用现代化管理手段,配备完善的自动化设备,提高酒店的服务水平与质量,从而赢得高信誉、强实力、好效益!
本系统目地是为了一些酒店还没有使用管理软件,仍靠手工处理业务。
2、编写目的:
为酒店提供一种方便快捷的服务管理软件
3、软件定义:
酒店管理系统
4、开发环境:
Windows2000/XP
二、需求分析
1、问题的提出:
如何能让酒店客户服务更快捷有效、让各方面信息一目了然呢需要哪些方面的功能才能使管理员只要轻轻敲打计算机就可以轻松完事?
2、系统的业务功能分析:
老板界面:
管理员信息、员工管
理、财政管理,酒店菜单含客房资料、用户资料、用户登记入住、
结账等项目,顾客可进行自己信息查询和进行员工评价。
3、系统的业务流程分析:
输入管理员姓名、密码,判断是普通员工还是老板,老板则进入老板界面,
可进行员工管理、管理员管理和财政管理,如果是普通员工则登录主界面,根
据需要点击客房资料、用户资料、用户登记、结账等选项,进入选项,进行更
新或查询。
输入顾客的订单号和密码可进行顾客信息的查询和员工评价。
4、需完成的功能:
系统的总体是为服务人员提供一个方便快捷的管理工具,使得用户能够快速准确完成顾客入住、结账等烦杂工作。
具体有以下基本功能:
用户登记:
完成顾客的入住登记操作,主要是记录顾客信息、分配房间和其他信息。
账务结算:
结算账务、整理客房资料
客房资料:
日常信息维护,主要是修改房间状态、删除房间等。
顾客信息:
存档顾客信息
员工信息:
存档员工信息,以便对员工考勤工资等进行管理
用户评价:
用户对工作人员的评价,记入员工信息表中
5、数据流图:
5、数据字典
1)数据流定义表
编号
数据流名
内部名
组成
L01
客房信息
E01、E12~E20
L02
顾客资料
E01~~E11
L03
顾客登记
L01、L02
L04
顾客消费
E01、E02、E06、E21~E26
L05
管理员信息
E27~E29
L06
员工信息
E27、E30~E36
L07
财务结算
E37~E47
2)数据元素定义
编号
数据元素名
数据类型
类长
备注
E01
订单号
Int
4
不允许空
E02
顾客姓名
Char
10
E03
证件类型
E04
证件号
E05
住址
E06
房间号
E07
入住时间
E08
预付金额
E09
退房日期
E10
是否在住
E11
密码
E12
房间类型
E13
价格
E14
是否可住
E15
床数
E16
有无空调
E17
有无电话
E18
有无电视
E19
有无卫生间
E20
有无网线
E21
住宿费
E22
服务费用
E23
餐饮费用
E24
总消费
E25
总缴费
E26
余额
E27
管理员姓名名
E28
管理密码
E29
权限
Int
E30
编号
char
10
不允许空
E31
性别
E32
部门
E33
职务
E34
评价
E35
基本工资
E36
工资
E37
财政编号
不允许空
E38
净收入
E39
总收入
E40
总支出
E41
餐饮部收入
E42
住宿部收入
E43
娱乐部收入
E44
服务部收入
E45
工资支出
E46
维护支出
E47
购货支出
三、系统设计
1、数据表:
(1)E-R图
(2)、数据库的关系模式:
管理员(编码,用户名,密码,权限,部门);
客房信息(房间号,房间类型,价格,是否可用,床数,有无空调,有无电话,有无电视,有无卫生间,有无网线);
客户信息(订单号,姓名,证件类型,证件号,住址,房间号,入住时间,预付金额,退房日期,是否在住,密码,评价);
用户消费(订单号,房间号,顾客姓名,住宿费,服务费用,餐饮费用,总消费,总缴费,余额);
员工信息(编号,姓名,性别,部门,职务,评价,基本工资,工资);
财政结算(财政编号,总收入,净收入,总支出,餐饮部收入,娱乐部收入,住宿部收入,服务部收入,工资支出,维护支出,购货支出);
(3)、表的物理设计:
2、数据库权限,触发器:
数据库权限:
触发器:
3、软件功能设计
(1)、系统的结构图
(2)、功能表:
系统模块
实现功能
功能描述
登陆
登陆管理员页面
输入管理员姓名、密码,登录管理员页面,进行管理
登陆顾客界面
输入顾客的订单号和密码,进入顾客界面
管理员信息管理
管理、查看管理员信息
对管理员性查询,修改
员工信息
管理员工信息
对员工信息查询,添加,删除,修改
财政结算
管理财政信息
查询,修改财政信息
客房资料
管理、查看客房资料
对客房各种属性查询,添加,删除,修改客房资料,跳转客户登记页面
顾客资料
管理顾客信息
对顾客信息进行添加,删除,修改,查询等功能
顾客登记
顾客登记
登记新顾客的信息
用户消费
顾客消费管理
对顾客消费进行更新管理、结算管理
历史记录
查询以往历史
对以往顾客住房历史进行查询
顾客结账
顾客结账
对顾客消费、缴费运算,并显示余额,以便对客户收退款
顾客查询
用户信息查询
可对用户信息进行查询,还可以修改密码
顾客评价
评价员工服务态度
顾客可以通过自己的一票表扬或批评一名员工
四、系统实施
登陆界面:
登陆界面分为管理员登陆和顾客登陆。
管理员用用户名和密码登陆,权限为1的是老板,登陆进去后是管理员信息,权限为2的是管理员,登陆进去后是酒店菜单,进行酒店日常工作。
顾客用订单号和密码登陆,可以进行顾客本人的信息查询。
代码:
procedureTForm14.BitBtn1Click(Sender:
TObject);
varnum,user,pass:
string;
begin
user:
=edit1.Text;
pass:
=edit2.Text;
ifradiobutton1.checked=truethen
begin
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.Text:
='select权限from管理员信息where用户名='''+user+'''and密码='''+pass+'''';
adoquery1.Open;
num:
=adoquery1.fieldbyname('权限').AsString;
ifnum=''then
showmessage('用户名或密码错误!
');
ifnum='1'then
form6.show;
ifnum='2'then
Form15.show;
end
else
begin
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.Text:
='select*from客户信息where订单号='''+user+'''and密码='''+pass+'''';
adoquery1.Open;
long:
=adoquery1.fieldbyname('订单号').AsString;
num:
=adoquery1.fieldbyname('密码').AsString;
ifnum=''then
begin
showmessage('用户名或密码错误!
');
end
else
begin
form8.show;
end
end;
edit1.clear;
edit2.clear;
close;
end;
procedureTForm14.BitBtn2Click(Sender:
TObject);
begin
edit1.clear;
edit2.clear;
close;
end;
管理员信息:
管理员界面,老板可以进行查询,修改管理员信息,也可以查看员工信息和财政结算,然后可以到酒店菜单,进行酒店日常服务。
管理员可以进行查询,修改管理员信息,然后可以到酒店菜单,进行酒店日常服务。
老板代码:
procedureTForm6.Button1Click(Sender:
TObject);
varname,secert,power,num:
string;
begin
name:
=edit1.Text;
secert:
=edit2.Text;
power:
=edit3.Text;
num:
=edit4.Text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:
='select*from管理员信息where用户名='''+name+'''or密码='''+secert+'''or权限='''+power+'''or编码='''+num+'''';
adoquery1.Open;
edit1.text:
=adoquery1.fieldbyname('用户名').AsString;
edit2.text:
=adoquery1.fieldbyname('密码').AsString;
edit3.text:
=adoquery1.fieldbyname('权限').AsString;
edit4.text:
=adoquery1.fieldbyname('编码').AsString;
end;
procedureTForm6.Button2Click(Sender:
TObject);
varname,secert,num:
string;
begin
name:
=edit1.Text;
secert:
=edit2.Text;
num:
=edit3.Text;
mandText:
='UPDATE管理员信息SET密码='''+secert+''',权限='''+num+'''where用户名='''+name+'''';
adocommand1.execute;
showmessage('修改成功');
edit1.text:
=adoquery1.fieldbyname('用户名').AsString;
edit2.text:
=adoquery1.fieldbyname('密码').AsString;
edit3.text:
=adoquery1.fieldbyname('权限').AsString;
edit4.text:
=adoquery1.fieldbyname('编码').AsString;
end;
procedureTForm6.Button5Click(Sender:
TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:
='select*from管理员信息';
adoquery1.Open;
end;
管理员代码:
procedureTForm15.Button1Click(Sender:
TObject);
varname,secert,power,num:
string;
begin
name:
=edit1.Text;
secert:
=edit2.Text;
power:
=edit3.Text;
num:
=edit4.Text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:
='select*from管理员信息where用户名='''+name+'''or密码='''+secert+'''or权限='''+power+'''or编码='''+num+'''';
adoquery1.Open;
edit1.text:
=adoquery1.fieldbyname('用户名').AsString;
edit2.text:
=adoquery1.fieldbyname('密码').AsString;
edit3.text:
=adoquery1.fieldbyname('权限').AsString;
edit4.text:
=adoquery1.fieldbyname('编码').AsString;
end;
procedureTForm15.Button2Click(Sender:
TObject);
varsecert:
string;
begin
secert:
=edit2.Text;
mandText:
='UPDATE管理员信息SET密码='''+secert+'''where用户名='''+name+'''';
adocommand1.execute;
showmessage('修改成功');
edit1.text:
=adoquery1.fieldbyname('用户名').AsString;
edit2.text:
=adoquery1.fieldbyname('密码').AsString;
edit3.text:
=adoquery1.fieldbyname('权限').AsString;
edit4.text:
=adoquery1.fieldbyname('编码').AsString;
end;
procedureTForm15.Button5Click(Sender:
TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:
='select*from管理员信息';
adoquery1.Open;
end;
员工信息:
这里可以查询,修改,删除酒店员工的各种信息。
代码:
procedureTForm11.Button1Click(Sender:
TObject);
varnum,user:
string;
begin
user:
=edit1.text;
num:
=edit2.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:
='select*from员工信息where编号='''+user+'''or姓名='''+num+'''';
adoquery1.Open;
edit3.Text:
=adoquery1.fieldbyname('编号').AsString;
edit4.Text:
=adoquery1.fieldbyname('姓名').AsString;
edit5.Text:
=adoquery1.fieldbyname('性别').AsString;
edit6.Text:
=adoquery1.fieldbyname('职务').AsString;
edit7.Text:
=adoquery1.fieldbyname('部门').AsString;
edit8.Text:
=adoquery1.fieldbyname('工资').AsString;
edit9.Text:
=adoquery1.fieldbyname('基本工资').AsString;
edit10.Text:
=adoquery1.fieldbyname('评价').AsString;
end;
procedureTForm11.Button2Click(Sender:
TObject);
begin
form7.show;
close;
end;
procedureTForm11.Button3Click(Sender:
TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:
='select*from员工信息';
adoquery1.Open;
end;
procedureTForm11.Button4Click(Sender:
TObject);
vard1,d2,d3,d4,d5,d6,d7,d8:
string;
begin
d1:
=edit3.text;
d2:
=edit4.text;
d3:
=edit5.text;
d4:
=edit6.text;
d5:
=edit7.text;
d6:
=edit8.text;
d7:
=edit9.text;
d8:
=edit10.text;
mandText:
='insertinto员工信息(编号,姓名,性别,职务,部门,工资,基本工资,评价)values('''+d1+''','''+d2+''','''+d3+''','''+d4+''','''+d5+''','''+d6+''','''+d7+''','''+d8+''')';
adocommand1.execute;
showmessage('保存完毕');
d1:
='';
d2:
='';
d3:
='';
d4:
='';
d5:
='';
d6:
='';
d7:
='';
d8:
='';
end;
procedureTForm11.Button6Click(Sender:
TObject);
vard1,d2,d3,d4,d5,d6,d7,d8:
string;
begin
d1:
=edit3.text;
d2:
=edit4.text;
d3:
=edit5.text;
d4:
=edit6.text;
d5:
=edit7.text;
d6:
=edit8.text;
d7:
=edit9.text;
d8:
=edit10.text;
mandText:
='UPDATE员工信息SET编号='''+d1+''',姓名='''+d2+''',性别='''+d3+''',职务='''+d4+''',部门='''+d5+''',工资='''+d6+''',基本工资='''+d7+''',评价='''+d8+'''where编号='''+d1+'''';
adocommand1.execute;
showmessage('保存完毕');
d1:
='';
d2:
='';
d3:
='';
d4:
='';
d5:
='';
d6:
='';
d7:
='';
d8:
='';
end;
procedureTForm11.Button5Click(Sender:
TObject);
varnum:
string;
begin
num:
=edit3.Text;
mandText:
='deletefrom员工信息where编号='''+num+'''';
adocommand1.execute;
showmessage('删除成功');
end;
财政结算:
这里可以查询,修改,删除各个月份的酒店财政状况。
代码:
procedureTForm12.Button1Click(Sender:
TObject);
varuser:
string;
begin
user:
=edit1.text;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:
='select*from财务结算where财政编号='''+user+'''';
adoquery1.Open;
edit2.Text:
=adoquery1.fieldbyname('财政编号').AsString;
edit3.Text:
=adoquery1.fieldbyname('净收入').AsString;
edit4.Text:
=adoquery1.fieldbyname('总收入').AsSt