酒店管理系统报告.docx
《酒店管理系统报告.docx》由会员分享,可在线阅读,更多相关《酒店管理系统报告.docx(29页珍藏版)》请在冰点文库上搜索。
酒店管理系统报告
第一章前言
随着市场经济和旅游业的不断发展,酒店行业日趋发达。
传统的酒店管理往往令管理者花大量的时间来处理琐碎事物,例如错误查询、烦琐的登记和结账手续、费用计算错误、空余客房资料不能及时提供等.从而影响出租率,使得管理人员不得不集中精力规划管理运行策略和进行决策。
以上问题可通过电脑系统辅助解决,酒店管理的电脑化,不仅是体现酒店现代化形象的一个重要标志,而且对于提高员工工作效率,加速资金周转、降低各项成本及改善服务质量都有十分积极的作用。
为此,国家建设部已于最近做出明确规定:
凡星级酒店在项目审批时,其设计方案必须包括电脑管理系统,否则不予立项.可见,酒店管理电脑化势在必行。
本酒店管理系统将先进的电脑技术与现代酒店服务管理完美地结合起来,实现了全新概念的服务和管理方式.
本系统属于大型酒店管理和民用住宅设计项目中的一部分,由NEC公司由日本移植到中国并实现了汉化.本系统配合视频点播系统可以对酒店进行全方位管理,主要优点如下:
1.电脑收银,快速准确,减少宾客等待时间,并可杜绝收银过程中的舞弊现象。
2。
高效的客房管理:
能有效的提高房率,增加营业收入。
3。
提高决策依据:
管理者可以随时了解经营情况,以制定相应的经营方针。
4。
减轻员工的工作负担:
从而使员工把更多的精力放在提高为宾客服务的质量上.
5。
简单、方便地保存和查询历史资料。
6.树立良好的酒店形象。
我们设计的酒店管理系统后台数据库采用SQLSever2000,以保证数据的安全、高效和稳定;前台采用Microsoft公司的JAVA作为主要开发工具,它可以与SQLSever2000数据库无缝衔接。
在需求分析及总体设计后,将酒店管理系统分为:
登陆模块、客房预订模块、客户接待模块、房屋管理模块、收银模块等几部分。
整个设计过程中小组成员分工:
小组成员
组员分工
学号
王郭鑫
客户接待系统
2108191211082
程晨
客户预订系统
2108191211022
刘鸣晓
退房系统
2108191211161
李雪
登录、注册系统
2108191211062
张嘉雯
房屋管理系统,界面优化
2108191211042
第二章需求分析
2。
1可行性分析
2.1.1技术可行性
酒店管理系统是采用Java语言编写的,具有Java的“一次编写,到处运行”的优点,所以此系统在不同的操作系统上都可以运行,具有很强的移植性、健全性和安全性。
并且酒店管理系统要求要求应具备功能完备、易于使用、易于维护等特点,而对于后者则要求能建立数据一致性和完整性强、数据安全性好的库.基于以上的要求,本系统采用MyEclipse7。
0作为开发工具,使得代码编写的过程大大的简化。
而数据库则是采用目前较为流行的SqlServer2000,Java对SqlServer2000具有很好的支持并且在经历了多年的发展SqlServer2000很好的口碑。
此系统在技术上是可行的。
2.1.2操作可行性
酒店管理系统具备友好的用户界面,使用方便,易于维护,操作简单易于被用户接受,用户只需熟练操作计算机,和对此系统使用做简单的了解即可方便使用,而且使用此系统可以大大减少管理人员的负担。
因此从使用操作方面看,此系统的开发是可行的。
2.1.3经济可行性
本酒店管理系统运行的硬件环境只需一台廉价的电脑既可,软件环境则是安装windowsXP系统,MyEclipse7。
0,SqlServer2000既可。
对于一般的中小型酒店来说都是很小的成本支出。
2。
2环境分析
2.2.1系统关键用户
经分析,酒店管理系统的关键为房间的预订,房间信息的修改,收银系统.
2.2。
2系统目标
通过分析,系统需要满足如下功能:
(1)根据不同账号登录界面,可注册账号
(2)生成订单
(3)对于已经生成的订单进行查询,修改,删除
(4)将订单信息转为入住.对于入住信息科进行查询,修改,删除
(5)对于房间信息进行增加,查询,修改,删除
(6)退房时,账单的生成,包括房间价格以及网费
(7)退房,计算费用
(8)统计总收益
2.2.3系统组织结构
图2。
2。
3
2。
2.4系统流程
系统流程图
图2。
2。
4
2。
3问题和约束
该系统在真实生活需要更多的信息,例如对于登记者信息的查询,与公安系统的联网等等.我们所设计的只是一个小型酒店的主要的关键的部分。
2.3.1定义问题
(1)酒店管理不是仅仅对于房价信息的查询,要方便管理者真正的使用
(2)对于已经预定的房价信息要可以方便快捷的查找
(3)酒店管理中要考虑到除房费意外可能产生的费用
2。
3。
2定义约束
期限:
系统要在两周内完成
软件和硬件:
该系统必须具有后台数据库,以保证数据的安全、高效和稳定和作为主要开发工具该系统的前台。
必须运行在现有操作系统之上。
系统的额外拓展:
要有良好的人机交流界面。
2.4系统目标
(1)对于大量的房间信息可以统一规划的管理
(2)对于订单的增加,修改,重置简单可行
(3)对于大量的订单,账单统一规划管理
数据流图:
图2。
4
2.5功能模块与接口
表1:
登录模块
模块
模块接口
功能
登录
Info_Manage
登录系统
注册
Setzhuce
注册用户
主界面
zhujiemian
进入系统主界面
表2:
预定模块
模块
模块接口
功能
添加
Adddingfang
添加预订信息
删除
Deletedingfang
删预订信息
修改
Getdingfang
修改预订信息
查询
setren
按客户姓名查询信息
Setdingfang
查询所有预订信息
表3:
接待模块
模块
模块接口
功能
录入信息
AddGrade
查询已预订信息,将其入住
修改信息
Getruzhu
修改入住客户信息
查询信息
Setruzhu
查询入住客户信息
删除信息
Deleteruzhu
删除入住客户信息
表4:
房屋管理模块
模块
模块接口
功能
增加房屋
Addroom
增加房屋信息
删除房屋
Deleteroom
删除已有的房屋
修改房屋
Getroom
修改房屋信息
查询房屋
setroom
按房间号查询房屋信息
表5:
收银模块
模块
模块接口
功能
生成账单
wwww
退房,生成账单,统计收益
第三章概念结构设计
3。
1信息源和用户
信息源:
房间信息表、预订信息表、入住信息表、账单信息表
用户:
酒店系统操作员
3.2信息需求
1设计系统操作员账号、密码
2输出各种表
3.3系统的陈氏E—R模型
3.3。
1系统整体E—R图
图3.3.1
3。
3.2各主题模块的的陈氏E-R图
房间信息:
预订信息:
登录信息:
第四章逻辑结构设计
4。
1管理员表及表内信息
4。
2预订信息表
4.3入住信息表
4.4房间信息表及表内信息
第五章数据库物理设计
5.1数据库需要的空间估算
项目
磁盘空间/KB
数据库内创建表的固定空间(库内需要空间)
1229
4个表*4KB/个(外存预留空间)
16
数据库使用的总空间
1245
5.2数据库表对象需要的空间估算
5.2.1房间信息表一
名称
数据类型
字段大小
可否为空
房间编号
char
10
no
规格
char
10
yes
状态
int
4
yes
价格
money
8
yes
是否有网
char
10
yes
5。
2.2预定信息表二
名称
数据类型
字段大小
可否为空
姓名
char
10
no
证件号
char
10
no
电话
char
10
yes
规格
char
10
yes
房间编码
char
10
yes
入住时间
datetime
8
yes
5.2。
3入住信息表三
名称
数据类型
字段大小
可否为空
姓名
char
10
no
证件号
char
10
no
电话
char
10
yes
规格
char
10
yes
房间编码
char
10
yes
入住时间
datetime
8
yes
是否有网
char
10
yes
5。
2。
4账单表四
名称
数据类型
字段大小
可否为空
总价
Int
4
yes
第六章详细设计阶段—房屋系统
6.1。
添加房屋
根据要求添加房屋.输入新增的房间编号,如果房间已存在,则提示“该号已存在”;如果房间不存在,则设定房间规格、价格、是否有网.有网状态为1,无网为0.点击添加,房屋信息保存增加成功;点击重置,一切为空,重新添加;点击退出,返回功能页面。
classAddroomextendsJFrame
implementsActionListener
{
JLabelJL=newJLabel("添加房屋",JLabel。
CENTER);
JLabelJLNumber=newJLabel(”房间编号:
”);
JTextFieldJTNumber=newJTextField();
JLabelJL1=newJLabel(”规格:
”);
JTextFieldJT1=newJTextField();
JLabelJL2=newJLabel(”价格:
”);
JTextFieldJT2=newJTextField();
JLabelJL3=newJLabel(”是否有网:
”);
JTextFieldJT3=newJTextField();
JButtonJBAdd=newJButton(”添加");
JButtonJBNext=newJButton(”重置”);
JButtonJBExit=newJButton(”退出");
Stringsql=””;
publicAddroom()
{
setSize(550,700);
setLocation(200,50);
Stringpath="d:
\\addroom。
jpg";
ImageIconbackground=newImageIcon(path);
JLabellabel=newJLabel(background);
label。
setBounds(0,0,this。
getWidth(),this.getHeight());
JPanelimagePanel=(JPanel)this。
getContentPane();
imagePanel.setOpaque(false);
this。
getLayeredPane()。
add(label,newInteger(Integer。
MIN_VALUE));
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this。
setTitle("添加房屋信息");
this。
setLayout(null);
JL.setFont(newFont("TimesRoman",Font.BOLD,24));
JL.setForeground(Color。
red);
JL。
setFont(newjava.awt。
Font("宋体",Font.PLAIN,19));
JL.setBounds(100,30,200,40);
this.add(JL);
JLNumber.setBounds(100,100,100,20);
this.add(JLNumber);
JTNumber。
setBounds(200,100,80,20);
this。
add(JTNumber);
JL1.setBounds(100,140,60,20);
this.add(JL1);
JT1。
setBounds(200,140,80,20);
this.add(JT1);
JL2。
setBounds(100,180,60,20);
this。
add(JL2);
JT2.setBounds(200,180,80,20);
this。
add(JT2);
JL3。
setBounds(100,220,60,20);
this。
add(JL3);
JT3.setBounds(200,220,80,20);
this.add(JT3);
JBAdd。
setBounds(80,320,90,20);
this.add(JBAdd);
JBAdd。
addActionListener(this);
JBNext。
setBounds(190,320,90,20);
this。
add(JBNext);
JBNext.addActionListener(this);
JBExit.setBounds(300,320,90,20);
this.add(JBExit);
JBExit。
addActionListener(this);
this.setBounds(10,10,500,400);
this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==JBAdd)
{
Stringsnumber=JTNumber.getText();
Stringsguige=JT1。
getText();
Stringsjiage=JT2。
getText();
Stringswang=JT3。
getText();
sql="select*fromroomwhere房间编号='"+snumber+"’”;
System。
out。
println(sql);
try
{
Class.forName(”sun。
jdbc。
odbc。
JdbcOdbcDriver");
Connectioncot=DriverManager。
getConnection("jdbc:
odbc:
jiudian”,”sa",”sa”);
Statementstm=cot。
createStatement();
ResultSetrs=stm。
executeQuery(sql);
if(rs。
next())
JOptionPane.showMessageDialog(null,”该号已经存在!
");
else
{
sql="insertintoroomvalues('”+snumber+"’,'"+sguige+"','0',’"+sjiage+"',’”+swang+"')";
System.out。
println(sql);
inti=stm.executeUpdate(sql);
if(i〉0)
JOptionPane.showMessageDialog(null,”添加成功!
”);
else
JOptionPane。
showMessageDialog(null,"添加失败!
”);
}
}catch(Exceptionee)
{
}
}
if(e。
getSource()==JBNext)
{
JTNumber。
setText(null);
JT1.setText(null);
JT2.setText(null);
JT3。
setText(null);
}
if(e。
getSource()==JBExit)
{
setVisible(false);
newzhujiemian();
}
}
publicstaticvoidmain(Stringargs[])
{
newAddroom();
}
}
6。
2修改房屋信息
输入要修改的房间编号,如果房间不存在,则提示“此房间不存在”;如果房间存在有记录,则可任意修改房间规格、价格、是否有网。
有网状态为1,无网为0.点击修改,房屋信息保存修改成功;点击重置,一切为空,重新添加;点击退出,返回功能页面.
classGetroomextendsJFrame
implementsActionListener
{
JLabelJL=newJLabel("修改房屋信息",JLabel。
CENTER);
JLabelJLNumber=newJLabel("房间编号:
");
JTextFieldJTNumber=newJTextField();
JLabelJL1=newJLabel(”规格:
”);
JTextFieldJT1=newJTextField();
JLabelJL2=newJLabel(”价格:
");
JTextFieldJT2=newJTextField();
JLabelJL3=newJLabel(”是否有网:
");
JTextFieldJT3=newJTextField();
JButtonJBAdd=newJButton("修改");
JButtonJBNext=newJButton("重置");
JButtonJBExit=newJButton(”退出”);
Stringsql=””;
publicGetroom()
{
setSize(550,600);
setLocation(200,50);
Stringpath=”d:
\\getroom。
jpg";
ImageIconbackground=newImageIcon(path);
JLabellabel=newJLabel(background);
label.setBounds(0,0,this。
getWidth(),this。
getHeight());
JPanelimagePanel=(JPanel)this。
getContentPane();
imagePanel。
setOpaque(false);
this.getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle(”修改房屋信息”);
this。
setLayout(null);
JL.setFont(newFont("TimesRoman",Font。
BOLD,24));
JL。
setForeground(Color。
red);
JL.setFont(newjava。
awt。
Font("宋体”,Font。
PLAIN,19));
JL.setBounds(100,30,200,40);
this.add(JL);
JLNumber。
setBounds(100,100,100,20);
this.add(JLNumber);
JTNumber.setBounds(200,100,80,20);
this。
add(JTNumber);
JL1。
setBounds(100,140,60,20);
this。
add(JL1);
JT1.setBounds(200,140,80,20);
this。
add(JT1);
JL2.setBounds(100,180,60,20);
this。
add(JL2);
JT2。
setBounds(200,180,80,20);
this.add(JT2);
JL3。
setBounds(100,220,60,20);
this.add(JL3);
JT3。
setBounds(200,220,80,20);
this。
add(JT3);
JBAdd。
setBounds(80,360,90,20);
this。
add(JBAdd);
JBAdd。
addActionListener(this);
JBNext.setBounds(190,360,90,20);
this.add(JBNext);
JBNext。
addActionListener(this);
JBExit。
setBounds(300,360,90,20);
this。
add(JBExit);
JBExit。
addActionListener(this);
this.setBounds(10,10,550,450);
this.setVisible(true);
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{
System.exit(0);
}
});
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==JBAdd)
{
Stringsnumber=JTNumber.getText();
Stringsguige=JT1。
getText();
Stringsjiage=JT2。
getText();
Stringswang=JT3.getText();
sql="select*fromroomwhere房间编号='"+snumber+”’";
try
{
Class。
forName("sun。
jdbc.odbc.JdbcOdbcDriver");
Connectioncot=DriverManager.getConnection(”jdbc:
odbc:
jiudian”,"sa”,”sa”);
Statementstm=cot.createStatement();
ResultSetrs=stm。
executeQuery(sql);
if(rs。
next())
{
sql="updateroomset房间编号=’"+snumber+”',规格='"