宾馆客房管理系统.docx
- 文档编号:5428804
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:34
- 大小:1.83MB
宾馆客房管理系统.docx
《宾馆客房管理系统.docx》由会员分享,可在线阅读,更多相关《宾馆客房管理系统.docx(34页珍藏版)》请在冰豆网上搜索。
宾馆客房管理系统
1概述
1.1课题背景
随着经济的发展,工作人士出差,节假日人们外出旅游,免不了要住宾馆的,因此,各种星级的宾馆都应运而生。
直至现在,宾馆行业竞争越来越剧烈,宾馆之间客源的争夺也越来越激烈,所以,宾馆使用有效的客房管理手段是尤为重要的,这样能够为酒店管理人员提供一个快速安全可靠的管理平台。
客房业务涉及的各个工作环节已不再仅仅是传统的住宿,结算业务,而是更广更全面的服务性行业的代表。
宾馆作为一个服务性行业,从客人预定房间开始,到入住登记直至最后退房结账,整个过程应该是能体现以客人为中心,提高快捷方便的服务,给客人感受一种顾客之上的享受,提高酒店的管理水平,简化各种复杂操作,在最合理最短时间内完成客房业务规范操作,这才能令客人方便快捷,增加客人回头率。
本系统要实现一个简单快捷的宾馆客房管理,主要是对客房的信息,客人的信息,客人订房入住信息,以及收银结账的管理。
为管理者提供迅速,高效的服务,减免手工处理的繁琐与误差,及时准确地反映的工作经营情况。
1.2开发平台
系统:
Windows7
开发工具:
MicrosoftVisualStudio2008
数据库:
MicrosoftSQLServer2005
2需求分析
2.1功能模块
根据课题的具体要求,可以将宾馆客房管理系统大体结构图示为如下(如图1所示):
图1功能模块
整个系统分4个模块:
通过不同角色登入系统:
1经理有以下模块:
客房类型管理:
录入房间类型,修改房间类型,删除房间类型。
客房信息管理:
录入房间信息,修改房间信息,查询房间信息,删除房间信息。
员工管理:
增加员工,查询员工,修改员工信息,删除员工。
2前台有以下模块:
客房经营管理:
客房使用情况,客户入住,退房结算。
客户信息查询:
新增会员,客户入住记录。
2.2数据流图
顶层数据流图:
图2顶层数据流图
核心数据流图:
图3核心数据流图
经理管理数据流图:
图4经理管理数据流图
2.2数据字典
根据系统功能模块结构图及典型旅店客房管理系统的需求,总结出来如下的数据字典:
(1)数据项说明
UseInfo(用户信息表):
记录登入系统的用户的身份,姓名和密码。
如下表所示。
表1UserInfo表
数据项名称
含义说明
类型
长度
主键
允许Null
role
登入系统的身份
varchar
10
name
用户名
char
10
pwd
密码
varchar
20
RoomType(客房类型表):
记录客房类型。
如下表所示。
表2RoomType表
数据项名称
含义说明
类型
长度
主键
允许Null
RoomTypeName
客房类型名称
varchar
20
√
Area
面积
smallint
2
BedNum
床位
smallint
2
Price
价格
money
8
Phone
电话
bit
1
Television
电视
bit
1
Net
宽带
bit
1
AirCondition
空调
bit
1
WashRoom
淋浴间
bit
1
Toilet
卫生间
bit
1
Room(房间信息表):
记录房间信息。
如下表所示。
表3Room表
数据项名称
含义说明
类型
长度
主键
允许Null
RoomID
房间编号
char
4
√
RoomTypeName
客房类型名称
varchar
20
√
RoomPosition
房间位置
varchar
20
√
PeopleNum
额定人数
smallint
2
√
BedNum
床位
smallint
2
√
FactPeopleNum
实际入住人数
smallint
2
√
Remark
备注
varchar
50
√
Client(客人信息表):
记录客人的信息。
如下表所示。
表4Client表
数据项名称
含义说明
类型
长度
主键
允许Null
ClientID
客人ID号码
char
9
√
ClientName
客人姓名
varchar
10
sex
客人性别
char
2
tel
客人联系方式
char
11
SID
客人身份证号
char
18
ClientRecord(客人入住记录表):
记录客人的入住记录。
如下表所示。
表5ClientRecord表
数据项名称
含义说明
类型
长度
主键
允许Null
ClientID
客人ID号码
char
9
√
ClientName
客人姓名
varchar
10
RoomID
客房编号
char
4
InDate
客人入住时间
datetime
8
CheckDate
客人退房时间
datetime
8
√
TotalMoney
客人结算金额
money
8
√
Remark
备注
varchar
50
√
Employee(员工信息表):
记录员工信息。
如下表所示。
表6Employee表
数据项名称
含义说明
类型
长度
主键
允许Null
EmployeeName
员工姓名
varchar
10
√
sex
员工性别
char
2
tel
员工联系方式
char
11
addr
员工住址
varchar
50
Post
员工职位
varchar
20
SID
员工身份证号
char
18
(2)数据流说明
数据流说明如下表所示。
表7数据流说明
数据流名称
含义
来源
去向
组成
登陆
用户进入系统操作
客房管理系统
经理端/前台端
用户名+密码
查询客人
查询客人资料
客人信息表
统计界面
客人信息表
查询房号
查询房间信息
客房信息表
统计界面
客房信息表
查询空房
查询住房状态
客房信息表
统计界面
客房信息表
查询入住记录
查询入住记录
客人信息表
统计界面
客人信息表+客房信息表
计算
计算金额
客房管理系统
前台端
客房管理系统
变更客房类型
修改/删除客房类型
经理端
客房管理系统
系统数据库
变更房间信息
修改/删除房间信息
经理端
客房管理系统
系统数据库
查询员工
查询员工信息
经理端
统计界面
员工信息表
变更员工
修改/删除员工信息
经理端
客房管理系统
系统数据库
统计
统计住房信息
系统数据库
统计界面
系统数据库
(3)数据存储说明
数据存储说明如下表所示。
表8数据存储说明
数据存储名称
含义说明
组成结构
客房类型表
存放客房类型信息
类型名称+额定人数
客房信息表
存放客房当前状态
客房编号+实际人数
客人信息表
存放客人信息
客人信息
入住记录表
存放客房历史的有关信息
客人ID+房间ID+入住时间+结算时间+金额
管理人员表
存放管理员验证信息
用户名+密码
员工信息表
存放员工信息
员工信息
3系统设计
3.1概要设计—E-R图
依据客房管理系统的实际情况,考虑了多方面的因素以后,确定系统的E-R图,如图所示:
(1)用户实体属性图(如下图所示)
图5用户实体属性图
(2)客户实体属性图(如下图所示)
图6客户实体属性图
(3)客房类型实体属性图(如下图所示)
图7客房类型实体属性图
(4)房间实体属性图(如下图所示)
图8房间实体属性图
(5)客人入住记录实体属性图(如下图所示)
图9客人入住记录实体属性图
(6)员工实体属性图(如下图所示)
图10员工实体属性图
(7)整体E-R图(如下图所示)
图11整体E-R图
3.2逻辑设计—E-R图实体转换表/联系转换表
用户(身份,姓名,密码)
客房类型(类型名称,面积,床位,价格,电话,电视,宽带,空调,卫生间,淋浴间)
房间信息(客房编号,客房类型,位置,额定人数,床位,实际人数,备注)
客人信息(客人ID,姓名,性别,联系方式,身份证号)
入住记录(客人ID,客人姓名,房间编号,入住时间,退房时间,金额,备注)
员工信息(员工姓名,性别,联系方式,住址,职位,身份证号)
3.3将关系模型转换成SQL中的表
(1)用户信息表
图12用户信息表
(2)客房类型表
图13客房类型表
(3)房间信息表
图14房间信息表
(4)客人信息表
图15客人信息表
(5)入住记录表
图16入住记录表
(6)员工信息表
图17员工信息表
4系统实现
关键代码
1添加/修改功能:
privatevoidbutton5_Click(objectsender,EventArgse)
{
SqlConnectionmyconn=newSqlConnection(Connection.ConnString);
if(textBox1.Text!
=""&&textBox2.Text!
=""&&textBox3.Text!
=""&&textBox4.Text!
="")
{
try
{
Regexregex1=newRegex("^\\d{1,4}$",RegexOptions.None);
if((!
regex1.IsMatch(textBox2.Text))||(!
regex1.IsMatch(textBox3.Text))||(!
regex1.IsMatch(textBox3.Text)))
{
MessageBox.Show("输入参数的格式有误!
","提示");
panel1.Enabled=false;
return;
}
myconn.Open();
stringroomtypename=textBox1.Text;
intarea=Int32.Parse(textBox2.Text);
intbednum=Int32.Parse(textBox3.Text);
floatprice=Convert.ToSingle(textBox4.Text);
intno1=Convert.ToInt32(checkBox1.Checked);
intno2=Convert.ToInt32(checkBox2.Checked);
intno3=Convert.ToInt32(checkBox3.Checked);
intno4=Convert.ToInt32(checkBox4.Checked);
intno5=Convert.ToInt32(checkBox5.Checked);
intno6=Convert.ToInt32(checkBox6.Checked);
if(create==true)
{
stringmysql0="select*fromRoomTypewhereRoomTypeName='"+roomtypename+"'";
SqlCommandmycmd0=newSqlCommand(mysql0,myconn);
SqlDataReadermyreader=mycmd0.ExecuteReader();
if(myreader.Read())
{
MessageBox.Show("房间类型已经存在!
","提示");
panel1.Enabled=false;
myconn.Close();
return;
}
myreader.Close();
stringmysql="insertintoRoomTypevalues('"+roomtypename+"',"+area+","+bednum+","+price+","+no1+","+no2+","+no3+","+no4+","+no5+","+no6+")";
SqlCommandmycmd=newSqlCommand(mysql,myconn);
mycmd.ExecuteNonQuery();
MessageBox.Show("添加成功!
","提示");
}
else
{
stringmysql="updateRoomTypesetRoomTypeName='"+roomtypename+"',Area="+area+",BedNum="+bednum+",Price="+price+",Phone="+no1+",Television="+no2+",Net="+no3+",AirCondition="+no4+",WashRoom="+no5+",Toilet="+no6+"whereRoomTypeName='"+selroomtype+"'";
SqlCommandmycmd=newSqlCommand(mysql,myconn);
mycmd.ExecuteNonQuery();
MessageBox.Show("修改成功!
","提示");
}
UpdateListView();
}
catch(Exceptionmyex)
{
MessageBox.Show(myex.ToString());
}
finally
{
myconn.Close();
}
}
else
{
MessageBox.Show("请将信息填写完整!
","提示");
}
panel1.Enabled=false;
}
2删除功能:
privatevoidbutton3_Click(objectsender,EventArgse)
{
for(inti=0;i { if(listView1.Items[i].Selected==true) { SqlConnectionmyconn=newSqlConnection(Connection.ConnString); try { myconn.Open(); stringmysql="deletefromRoomTypewhereRoomTypeName='"+listView1.Items[i].SubItems[0].Text+"'"; SqlCommandmycmd=newSqlCommand(mysql,myconn); mycmd.ExecuteNonQuery(); } catch(Exceptionmyex) { MessageBox.Show(myex.ToString()); } finally { myconn.Close(); } } } MessageBox.Show("删除成功! ","提示"); UpdateListView(); } 3查询功能(精确查询和条件查询) publicpartialclassRoomSearch: Form { publicRoomSearch() { InitializeComponent(); } privatevoidUpdateListView(stringmysql) { boolempty=true; listView1.Items.Clear(); SqlConnectionmyconn=newSqlConnection(Connection.ConnString); myconn.Open(); SqlCommandmycmd=newSqlCommand(mysql,myconn); SqlDataReadermyreader=mycmd.ExecuteReader(CommandBehavior.CloseConnection); try { while(myreader.Read()) { empty=false; ListViewItemli=newListViewItem(); li.SubItems.Clear(); li.SubItems[0].Text=myreader["RoomID"].ToString(); li.SubItems.Add(myreader["RoomTypeName"].ToString()); li.SubItems.Add(myreader["RoomPosition"].ToString()); li.SubItems.Add(myreader["PeopleNum"].ToString()); li.SubItems.Add(myreader["FactPeopleNum"].ToString()); li.SubItems.Add(myreader["Remark"].ToString()); listView1.Items.Add(li); } if(empty) { MessageBox.Show("没有找到符合条件的房间! ","提示"); return; } } catch(Exceptionmyex) { MessageBox.Show(myex.ToString()); } finally { myreader.Close(); } } privatevoidbutton6_Click(objectsender,EventArgse) { this.Close(); } privatevoidRoomSearch_FormClosed(objectsender,FormClosedEventArgse) { listView1.Items.Clear(); Forminitial=newInitialForm(); initial.MdiParent=this.MdiParent; initial.WindowState=FormWindowState.Maximized; initial.Show(); } privatevoidRoomSearch_Load(objectsender,EventArgse) { SqlConnectionmyconn=newSqlConnection(Connection.ConnString); try { myconn.Open(); stringmysql="selectRoomTypeNamefromRoomType"; SqlCommandmycmd=newSqlCommand(mysql,myconn); SqlDataReadermyreader=mycmd.ExecuteReader(); while(myreader.Read()) { comboBox1.Items.Add(myreader["RoomTypeName"].ToString()); } } catch(Exceptionmyex) { MessageBox.Show(myex.ToString()); } finally { myconn.Close(); } } privatevoidbutton1_Click(objectsender,EventArgse) { if(textBox1.Text==""&&comboBox1.Text==""&&comboBox2.Text==""&&comboBox3.Text==""&&comboBox4.Text==""&&textBox2.Text=="") { MessageBox.Show("请至少添写一项内容! ","提示"); return; } boolfirst=false; stringmysql="select*fromRoomwhere"; if(textBox1.Text! ="") { mysql+="RoomID='"+textBox1.Text+"'"; first=true; } else { if(comboBox1.Text! ="") { if(first==false) { mysql+="RoomTypeName='"+comboBox1.Text+"'"; } else { mysql+="andRoomTypeName='"+comboBox1.Text+"'"; } first=true; } if(comboBox2.Text! ="") { if(first==false) { mysql+="RoomPosition='"+comboBox2.Text+"'"; } else { mysql+="andRoomPosition='"+comboBox2.Text+"'"; } first=true; } if(comboBox3.Text! ="") { if(first==false) { mysql+="PeopleNum="+comboBox3.Text; } else { mysql+="andPeopleNum="+comboBox3.Text; } first=true; } if(comboBox4.Text! ="") { if(firs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 客房 管理 系统