宾馆管理系统.docx
- 文档编号:6649856
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:46
- 大小:482.29KB
宾馆管理系统.docx
《宾馆管理系统.docx》由会员分享,可在线阅读,更多相关《宾馆管理系统.docx(46页珍藏版)》请在冰豆网上搜索。
宾馆管理系统
目录
1可行性分析报告1
1.1技术上可行性1
1.2经济上可行性1
1.3管理上的可行性1
2需求分析3
2.1需求陈述3
2.2分析建模4
2.2.1主模块4
2.2.2公共辅助模块5
2.2.3功能模块5
3总体设计9
3.1系统功能结构设计9
3.2系统软件结构图10
3.2.1预订房间模块结构10
3.2.2客人退房模块结构11
3.2.3客人入住模块结构12
3.2.4客人更换3.3系统硬件结构设计13
4详细设计15
4.1结构模块()15
4.2登录模块()16
4.3管理模块()17
房间模块的结构13
4.4业务模块()24
5实现30
5.1注册界面()30
5.2登陆界面()32
5.3管理模块()34
5.4订房模块()36
6系统测试38
6.1测试说明38
6.2功能测试38
6.2.1用户登录38
6.2.2客房标准管理38
7总结45
7.1小组总结45
7.2个人总结45
1可行性分析报告
1.1技术上可行性
编写语言:
采用C#语言进行编写。
C#是一种安全的、稳定的、简单的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模块,不允许多重继承)。
C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
由于对C#技术比较熟练,对于系统较为简单的,但基本功能较为完善的现代酒店管理系统来说是基本没有问题的。
编程平台:
编程平台采用VisualStudio2005.它已被证明是一个极其强大和成功的开发平台,其成熟稳定能够充分保证软件设计的顺利进行。
数据库:
数据库采用微软的SQLServer2000,虽然该数据库版本不是最新的,但其工作稳定,功能强大,资源耗费较少,所以能够充分满足目前的需要。
以上所用技术都是成熟的,先进的,稳定的。
因此,开发本系统在技术上是可行的。
1.2经济上可行性
经济上主要考虑本系统带来的效益是否大于开发本系统的成本,由于本系统的开发以课程设计为依托,参与人员的目的以学习为主,投入成本比较小。
另外,系统管理员和业务员都拥有计算机的专业知识,酒店前台工作人员和管理人员不需要经过培训或只需要经过少量培训即可操作本软件。
这样可以为开发本系统节省资金。
同时无纸化办公可以节省资源,减少后期资源浪费。
因此,开发本系统在经济是可行的。
1.3管理上的可行性
由于本系统功能比较简单,对于工作人员不存在太大难度。
加上业务员一直在使用原来老版本的酒店管理系统,对该类软件操作是很熟悉的。
对于系统管理员来说,因为系统管理员拥有维护数据库系统的技能,对数据库中的数据进行添加、删除、更新等操作是没有问题的。
因此,开本系统在管理上是可行的。
在本系统的运营阶段,使用系统的工作人员,除了需要具备在Windows平台上使用个人电脑的知识,并不需要特别的技术能力。
这方面的知识,在该酒店与本项目运营相关的直接人员中已经具备。
系统技术维护支持工作,在初期仍由硬件供应商及本人完成。
在酒店信息化建设及业务拓展到适当规模后,将由酒店雇用专业技术人员担任此项工作。
在具体实施过程中,公司同意建立这样的运营管理机制:
由公司管理层一名高级管理人员领导;同时,采购部负责对系统运营过程中的计算机耗材的供应。
综上所述,开发本系统,在经济上、技术上、管理上都是可行的。
2需求分析
2.1需求陈述
系统功能主要包括登录功能、房间类型的管理、房间的管理、开房、退房、数据操作、预订房、换房间八个部分。
以下按照不同的功能处理对具体功能进行描述。
(1)登录功能
只有在输入正确的户名和密码才可登录进入操作界面。
(2)房间类型的管理
可以对房间类型进行增添、删除、修改、查询功能。
(3)房间信息的管理
可以对房间信息进行增添、删除、修改、查询功能。
(4)开房功能
记录住户信息,并把相应的房间状态改为“入住”。
(5)退房
a)退房时算出总费用(房间价格+加床价格)*天数。
b)退房时要判断当前退房的时间,一般酒店是在中午12点退房,超过12点理论上要多算一天.可弹出提示“是否多加一天”。
c)退房成功后把相应的房间状态改为“空闲”。
d)更新用户消费总金额。
e)更新用户的VIP状态。
(6)数据操作
a)可按月查看入住记录。
b)可查看指定日期的入住记录。
c)可搜索指定姓名住户的入住记录。
(7)预订房功能
a)提前预定房间,注意房间的状态,预定日期前还是可以由其他房客入住。
b)预定房间到期时未入住的处理。
(8)换房间
可以在住户需要时办理换房间业务。
(9)性能需求
整个系统应当操作简便,界面友好,维护简便。
数据库要求运行稳定,执行速度快,数据安全性高。
软件系统本身运行对计算机硬件平台和操作系统平台要求适中。
2.2分析建模
酒店管理系统层次模块图,如图2-1所示
图2-1层次模块图
2.2.1主模块
主模块设计如表2-1所示
表2-1
模块
子模块
功能
主模块
整体设计总界面
对功能模块和公共辅助模块有整体的概览和认知
2.2.2公共辅助模块
公共模块设计如表2-2所示
表2-2
模块
子模块
功能
公共辅助模块
1.查询模块
2.信息浏览模块
1.查询客房等基本信息
2.便于工作人员及时掌握客房及客人信息
2.2.3功能模块
功能模块设计如表2-3所示
表2-3
功能模块
用户登录
用户登录
换房间功能模块
用户需要时更换房间处理
预订房功能模块
1.注意房间状态,预定日期前还可以由其他房客入住
2.预定房间到期未入住的处理
房间类型管理模块
1.增添房间类型
2.修改房间类型
3.删除房间类型
4.查询房间类型
房间信息管理模块
1.增添房间信息
2.修改房间信息
3.删除房间信息
4.查询房间信息
开房功能模块
记录用户信息并将房间状态改为“入住”
退房功能模块
1.算出总费用
2.判断当前退房的时间
3.退房成功后把相应的房间该为“空闲”
4.更新用户消费总金额
5.更新用户VIP状态
数据操作模块
1.可按月查询入住记录
2.可查看指定日期的入住记录
3.可搜索指定姓名住户的入住记录
数据库设计
数据库的表结构是非常重要的环节,一个良好的数据库设计,可以提高效率,方便维护,并且为以后进行功能的扩展留有余地。
表2-4是系统数据库表的清单。
表2-4
序号
数据表名称
说明
1
Room
对房间信息进行记录
2
Roomtype
对房间类型进行记录
3
客户信息表
对客户信息进行记录
4
历史记录表
历史入住记录
5
预定记录
预定信息记录
6
住户登记信息
对住户入住信息进行记录
以下对各个信息表做详细介绍。
房间信息表,如表2-5
表2-5
字段名
数据类型
字段说明
备注
RoomID
int
房间信息
不允许为空
Number
varchar(50)
房间号
主键自动增加1
BedNumber
int
床位号
不允许为空
Description
varchar(255)
房间描述
不允许为空
State
varchar(50)
房间状态
不允许为空
GuestNumber
int
住户编号
不允许为空
TypeID
int
房间类型
不允许为空
房间类型表,如表2-6
表2-6
字段名
数据类型
字段说明
备注
TypeID
int
类型信息
主键自动增加1
TypeName
varchar(50)
类型名称
不允许为空
TypePrice
money
类型价钱
不允许为空
IsAddBed
varchar(20)
是否加床
不允许为空
AddBedPrice
money
加床费
不允许为空
Remark
Varchar(50)
备注
不允许为空
客户信息表,如表2-7
表2-7
字段名
数据类型
字段说明
备注
客户编号
int
客户编号
主键自动增加1
姓名
varchar(50)
姓名
允许为空
性别
Varchar(10)
性别
允许为空
身份证号
Varchar(22)
身份证号
允许为空
联系电话
Varchar(50)
联系电话
允许为空
VIP
Varchar(50)
VIP
允许为空
消费总金额
Money
消费总金额
允许为空
历史记录表,如表2-8
表2-8
字段名
数据类型
字段说明
备注
客户姓名
varchar(50)
客户姓名
主键自动增加1
入住房号
varchar(50)
入住房号
允许为空
入住时间
Varchar(50)
入住时间
允许为空
预退订时间
Varchar(50)
预退订时间
允许为空
退房时间
Varchar(50)
退房时间
允许为空
是否加床
varchar(50)
是否加床
允许为空
押金
varchar(50)
押金
允许为空
总费用
money
总费用
允许为空
说明
Varchar(250)
说明
允许为空
ID
int
ID
不允许为空
预订记录表,如表2-9
表2-9
字段名
数据类型
字段说明
备注
房间号
varchar(50)
类型信息
允许为空
预订入住时间
varchar(50)
类型名称
允许为空
预订退房时间
varchar(50)
类型价钱
允许为空
客户编号
int
是否加床
允许为空
ID
int
加床费
主键自动增加1
住户登记信息表,如表2-10
表2-10
字段名
数据类型
字段说明
备注
客户编号
int
客户姓名
允许为空
押金
Money
入住房号
允许为空
入住房号
Varchar(50)
入住时间
允许为空
入住时间
Varchar(50)
预退订时间
允许为空
预定退房时间
Varchar(50)
退房时间
允许为空
退房时间
varchar(50)
是否加床
允许为空
是否加床
varchar(50)
押金
允许为空
总费用
money
总费用
允许为空
备注
Varchar(50)
说明
允许为空
ID
int
ID
主键自动增加1
3总体设计
3.1系统功能结构设计
根据上述系统功能分析,能得出下面系统流程图如3-1所示
登陆系统
酒店前台接待
输入预订房间号
输入正确
查找预订房间信息
显示预订信息错误
没有查到
重新输入
查到
三次输入
显示客人预订房间信息
请客人确认信息
保存并打印客人信息
打印发票
三次输入错误
退出系统
图3-1系统如路程图
3.2系统软件结构图
根据上述系统功能分析,能得出下面系统软件结构图如图3-2所示
图3-2系统软件结构图
3.2.1预订房间模块结构
房间预订模块由客人提前电话预订或者直接到酒店前台预定房间
如果客人已提前预订房间,则酒店接待人员要根据客人的提供信息对房间进行查找,并由客人确定查找的房间是否为客人所预定的,并确定客人的付款方式(现金、支票或刷卡),收受押金;如果客人未提前预订房间,则酒店前台接待人员则首先进行空房查找(去除预订房间),然后输入客人信息,确定客人付款方式(现金、支票或刷卡);如果客人已提前预订房间,但是出现错误(即事故)是,同未预定房间的客人的处理过程一样(同上)。
客人已提前预订房间顺序图如图3-3所示
3.2.2客人退房模块结构
首先,前台管理人员要输入要退房的客人的信息并由客人确定,调用管家系统查看房间设施状况(如有损坏则需要客人进行赔偿)。
再调用帐务管理系统对客人的所有消费结帐,显示及打印账目清单,客人确定后进行结帐。
最后将刚退房间状态设置为空。
客人退房活动图如图3-4所示
图3-4客人退房活动图
3.2.3客人入住模块结构
查询客人预订信息后(重复预订房间模块),可以对信息进行修改(比如说:
对房间有新的要求、预订的房间不满意等),客人确认后打印电子钥匙,再由酒店服务人员帮助客人完成其他等工作。
如果客人想要换房,可以和酒店前台服务人员联系,进行换房服务。
客人入住顺序图如图3-5所示
图3-5客人入住顺序图
3.2.4客人更换房间模块的结构
首先前台工作人员输入客人的信息,确认正确后,查询房间信息。
1、有空房间请用户确认是否要更换此房间,如果是则更改客人信息和住宿信息,如果客人不满意更换的房间则继续查询直到满意为止或者不更换;
2、没有空房间则不更换。
3.3系统硬件结构设计
处理器:
奔三1.0G或更高
内存:
128M或更高
硬盘:
4G或更高
输入输出设备:
键盘、扫描仪、打印机、显示器等。
数据库软件:
MicrosoftSQLServer2005
编程工具、编程语言:
C#
编译软件:
MicrosoftVisualStudio6.0
操作系统:
MicrosoftWindowsXP
4详细设计
4.1结构模块()
整个系统的布局采用了框架结构。
顶部框架里是系统的标题。
主框架又分左右两部分。
左部框架是树型功能菜单,整个系统功能模块的跳转主要在这里完成。
右部框架用来显示和操作各主要功能模块。
整个页面看起来简单明了,界面简洁,容易操作。
整个系统在几乎所有的模块中都会涉及到大量类似的数据库操作。
所以把几个常用的方法抽出,放到一个公共的类中,供所有的模块调用。
首先建立一个和SQLServer数据库之间的连接。
代码如下:
SqlConnectionsqlconn=newSqlConnection("DataSource=.\\sqlexpress;
InitialCatalog=bm;PersistSecurityInfo=True;UserID=sa;Password=123");
DataCom方法用来返回受影响的结果的行数,但不返回任何东西。
操作过程是首先打开连接,之后建立一个对SQLServer数据库执行的一个SQL语句的对象,执行SQL语句,然后关闭数据库连接。
具体代码如下:
publicvoidDataCom(stringsqlstr)
{sqlconn.Open();
SqlCommandsqlcom=newSqlCommand(sqlstr,sqlconn);
sqlcom.ExecuteNonQuery();
sqlconn.Close();}
rowNumber方法用来返回受影响的行数。
但是和DataCom不同的是回返回一个具体的int类型的行数。
rowFirst方法用来返回一个object类型的查询后的第一行的第一列的结果。
代码和上面的两个方法类似,只是执行ExecuteScalar方法来取得第一行的第一列的结果。
在此系统中有连个用户类型,即普通登录人员和管理人员,我们通过一段代码来实现不同的登录类型进行登录,进行不同的操作。
代码如下:
if(Session["leave"]!
=null)
{leave=Session["leave"].ToString();
name=Session["user_ID"].ToString();
if(leave=="1")
{Response.Redirect("tsxx.aspx");}
}
else
{Response.Redirect("main.aspx")}
4.2登录模块()
登录页面的功能主要是供合法的用户根据自己的用户类型及用户名和密码来进行登录,如果输入错误则会有提示。
如果用户在没有登录的情况下选择其它功能模块会退回到登录界面。
如果用户已经登录,可以在登录模块进行退出登录的操作。
如果用户类型错误将会有错误提示。
在登录到这个页面或者刷新这个页面的时候,首先要进行一次session的判断。
在输入用户名密码后,先确认输入框中有数据,将把输入框中的数据和数据库中的数据进行比较验证。
如果一切通过,将产生两个session分别用来存放用户名和用户类型。
之后跳转到相应的登录成功的页面。
主要运行代码:
SqlConnectionsqlconn=newSqlConnection(ConfigurationManager.ConnectionStrings["bmConnectionString"].ToString());;
sqlconn.Open();
SqlCommandsqlcmd=newSqlCommand("selectleavefromuserswherename='"+TBusers.Text+"'andpassword='"+TBpass.Text+"'",sqlconn);
stringleave=Convert.ToString(sqlcmd.ExecuteScalar());
SqlCommandsqlcmd2=newSqlCommand("selectuser_IDfromuserswherename='"+TBusers.Text+"'andpassword='"+TBpass.Text+"'",sqlconn);
intcount=Convert.ToInt32(sqlcmd2.ExecuteScalar());
使用户能够及时修改密码,保护密码的安全性以防自己信息泄露。
在次界面中运用了验证控件,更容易操作和管理。
在使用不同的验证控件时要注意验证控件的属性设置,使其运用正确。
主要执行代码:
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=ConfigurationManager.ConnectionStrings["bmConnectionString"].ToString();
conn.Open();
SqlCommandcmd=newSqlCommand("selectpwdfromteawherename='"+TextBox4.Text+"'",conn);
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
{yp=dr.GetString(0);
if(TextBox1.Text.ToString()!
=yp)
{Response.Write("")}
else{dr.Close();
cmd.CommandText="updateteasetpwd='"+TextBox2.Text+"'wherename='"+TextBox4.Text+"'";
cmd.ExecuteNonQuery();conn.Close();
Response.Write("");}
4.3管理模块()
宾馆管理系统基础设置模块包括五个子模块,分别是客房类型设置、客房信息设置、客户详细信息、住户登记设置、预订信息设置。
主要功能是完成各种信息的设置。
本界面主要是基础设置部分,其中客房类型设置可以对客房类型进行添加、删除、修改、查询等操作。
包括类型信息、类型名称、其关键代码:
publicstaticTypeRoomSelectRoomType(stringID){
SqlParameterp1=newSqlParameter("@TypeID",int.Parse(ID));
DataTabletable=DBHelp.Select("GetAllByRoomTypeID",p1);
DataRowrow=table.Rows[0];
TypeRoomro=newTypeRoom();
if(row["TypeId"]!
=DBNull.Value)
{ro.TypeId=row["TypeId"].ToString();}
if(row["TypeName"]!
=DBNull.Value)
{ro.TypeName=row["TypeName"].ToString();}
if(row["TypePrice"]!
=DBNull.Value)
{ro.TypePrice=row["TypePrice"].ToString();}
if(row["IsAddBed"]!
=DBNull.Value)
{ro.IsAddBed=row["IsAddBed"].ToString();}
if(row["AddBedPrice"]!
=DBNull.Value)
SqlParameterp4=newSqlParameter("@AddBedPrice",double.Parse(ty.AddBedPrice));
SqlParameterp5=newSqlParameter("@Remark",ty.Remark);
SqlParameterp6=newSqlParameter("@TypeID",int.Parse(ty.TypeId));
returnDBHelp.Excurt("UpdateRoom",p1,p2,p3,p4,p5,p6);}
在类型名称内输入相应的房间类型名称,点击查询按钮,便可看到对应类型房间的详细信息。
点击新增按钮,可以对房间类型进行添加,点击修改按钮,可以对对应房间类型信息进行修改,修改完后点击保存,便可保存修改后信息,提示“修改完成”。
点击删除按钮,可对房间类型信息做删除。
其中客房信息设置可以对客房信息进行添加、删除、修改、查询等操作。
包括房间信息、房间号、床号、状态、客户编号、描述、类型名称等。
其关键代码:
List
DataTabletable=DBHelp.Select("SelectRoom");
foreach(DataRowrowintable.Rows)
{roomrm=newroom();
if(row["Roomid"]!
=DBNull.Value)
{rm.RoomId=row["Roomid"]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 管理 系统