基于C#的酒店管理系统.docx
- 文档编号:11798320
- 上传时间:2023-04-02
- 格式:DOCX
- 页数:23
- 大小:346.77KB
基于C#的酒店管理系统.docx
《基于C#的酒店管理系统.docx》由会员分享,可在线阅读,更多相关《基于C#的酒店管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
基于C#的酒店管理系统
引言
酒店业是一个前景广阔而又竞争激烈的行业。
改革开放以来,我国的酒店业迅速发展,已经成为一个具有相当规模的产业。
由于我国的旅游业迅速发展,通过调查,我国在2020年将成为世界上第四大旅游国家;同时我国加入世界贸易组织,酒店业将完全开放,这个时候,我国的酒店业将面临着前所未有的机遇和挑战。
但是,现在甚至还有一些酒店还停留在由人工操作和管理阶段,这样已经无法适应当前的发展趋势。
因此,要想使酒店的工作质量和效率提高,采用先进的计算机网络通信技术改变酒店业务模式,实现酒店业务管理的自动化已经成为一种必然。
酒店客房管理系统是根据酒店对客房管理的实际情况进行设计的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店管理的工作效率。
酒店客房管理的科学化、系统化、信息化成为各个酒店追求的目标。
因此,而要实现这些功能,就要求各个酒店配备一套客房管理系统,以便在酒店内实施良好、完善的管理,最快地速度响应客户的需求,及时为他们提供服务,为他们提供一个高效、便捷的居住环境。
客房管理信息系统(MIS)是各个酒店软件建设中一个重要的应用系统,它大大的改善酒店管理的基础环境。
对客房管理系统的若干基本问题进行研究,主要包括客房管理系统的功能组成、系统开发条件、步骤及其总体规划等内容。
第一章概述
1.1现状与前景
随着人们的生活水平的提高,假日经济已成为人们消费的热点,使得宾馆酒店业得到快速发展。
随着宾馆酒店增多,人们要求提高,宾馆酒店业的竞争也更加激烈。
宾馆酒店要在的竞争中谋求生存与发展,就必须要提高其服务管理水平。
引入全方位的电脑服务和电脑管理日益流行。
酒店引入电脑服务和管理取得了优良的经济效益和社会效益。
因此,国家建设部已于最近作出明确规定:
凡星级酒店在项目审批时,其设计方案必须包括电脑管理系统,否则不予立项。
可见,酒店管理电脑化势在必行。
酒店管理系统将先进的电脑技术与现代酒店服务管理完美地结合起来,实现了住宿全新概念的服务和管理方式。
传统的酒店管理往往令管理者花大量的时间来处理顾客投诉,例如错误查询、烦琐的登记和结帐手续、旅客费用计算错误、空余客房资料不能及时提供等,从而影响出租率,使管理人员不得不集中精力规划管理运行策略和进行决策。
酒店管理系统能提高员工工作效率,加速资金周转、降低各项成本及改善服务质量都有十分积极的作用。
1.2研究内容
本系统为管理者提供了完整的管理平台。
其提供的主要功能有:
客房类型管理,客房状态管理,客房预定管理,客房入住管理,客户换房管理,客房结算管理,退出系统。
第二章系统分析
2.1系统相关技术介绍
本管理信息系统将采用技术成熟的C#作为前台开发工具。
后台数据库采用微软公司的SQLServer数据库,因为它的灵活性、安全性和易用性为数据库编程提供了良好的条件。
因此,系统的软件开发平台已成熟可行。
硬件方面,科技的飞速发展使硬件的更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
系统采用的是原型法的开发方法。
本着开发人员对用户需求的理解,通过简单的系统反洗、系统设计,快速实现一个原型系统,然后通过反复修改来实现管理信息系统。
2.2可行性分析
1、管理上的可行性
酒店管理系统能记录酒店客人的基本信息,提供查询、删除等工作,使工作人员从烦琐的手工操作中解脱出来,同时,能为企业的运作提供提供管理和决策支持。
由于酒店电脑系统24小时连续运行,数据量大,可靠性要求高,因此整个电脑系统供电需采用专线方式,加配UPS(不间断供电系统)合理接地,以便保障整套系统的正常运行。
2、技术上的可行性
技术采用成熟的C#作为前台开发工具。
后台数据库采用SQLServer2005数据库,灵活性、安全性和易用性为数据库编程提供了良好的条件。
3、经济上的可行性
本系统由作者自主开发,界面易操作,操作人员只需简单培训即可上岗。
2.3系统的需求分析
2.3.1性能需求
(1)本软件主要用于管理,不是科学计算,要求计算的精度不是很苛刻。
所以输入,输出数据精度不是很高,用于计算的数用浮点数就可以了。
(2)本软件运行的响应时间不超过1~2秒,基本实现就可以。
(3)该系统只支持在window系统上运行,后台数据库只支持SQLServer2008。
2.3.2功能需求
酒店住房业务的基本流程主要包括:
客房的预定,顾客通过电话或者其他途径向酒店进行客房预定,接待人员查询客房状态表后确定有空房则接受预定,预定成功后发给顾客预定凭证,并对客房状态表做出相应的变化。
客房的入住,如果顾客已经预定房间,则根据预定凭证进行预定入住操作,发给顾客房卡,客房状态由“预定”变为“入住”。
如果顾客没有预定房间,接待人员查询客房状态后,有空房则进行客房登记操作,发给顾客房卡,客房状态由“空房”变为“入住”。
顾客换房,如果顾客对入住的客房条件不满意,则可进行顾客换房操作。
接待人员将顾客的房间进行更换,并更换顾客房卡,客房状态也进行相应的调整。
补交押金,如果顾客换房后押金太少,则要补交押金。
顾客交纳押金,接待人员开具押金凭证。
顾客退房,顾客退房时,接待人员根据顾客的房卡,进行退房登记。
计算顾客入住期间的房费,餐费,话费,各种消费和押金总额。
对顾客收取费用或者退回押金。
顾客信息转存到历史顾客表中。
客房状态由“入住”转为“空房”。
图3-1业务流程分析图
第三章系统设计
3.1系统设计
图3-2系统功能模块图
从(图3-2)中可以看出,系统总共分为8个模块。
客房类型模块:
可以对房型、房价等情况等进行查询、修改等操作。
客房查询模块:
实现对所有房间的基本情况进行查询。
客户预定模块:
实现对客户预定情况进行全面管理。
客户入住模块:
可以查询所有客户入住情况。
客房更改模块:
实现客户换房的一些相关操作。
客房状态模块:
可以对客房空房、预定、入住等情况等进行修改等操作。
客户结算模块:
实现酒店客房账务结算。
注册帐号模块:
实现用户注册的功能。
3.2数据库设计
本软件的数据库名称为:
Hotel-DB,包含6个数据表,分别是:
BookIn、CheckIn、CheckOut、Room、RoomType、UserInfo。
具体表结构如下:
表3-1用户表[UserInfo]
列名
数据类型
允许为空
说明
UserId
int
否
用户ID(主键)
UserName
varchar(50)
否
用户姓名
Password
varchar(50)
否
密码
IsAdmin
bit
否
是否管理员
表3-2客户入住表[CheckIn]
列名
数据类型
允许为空
说明
CustomerId
int
否
客户ID(主键)
Name
varchar(10)
否
姓名
Sex
char
(2)
否
性别
PType
varchar(50)
否
证件类型
P_ID
varchar(50)
否
证件号码
Tel
varchar(50)
否
电话号码
CType
varchar(50)
否
客户类型
RoomNum
int
否
房间号
Indate
datetime
否
入住时间
Days
int
否
入住天数
Dmoney
money
否
押金
Remark
varchar(50)
是
备注
表3-3客户结算表[CheckOut]
列名
数据类型
允许为空
说明
Id
int
否
客户结算ID(主键)
CustomerId
int
否
客户Id
Name
varchar(10)
否
姓名
列名
数据类型
允许为空
说明
Sex
char
(2)
否
性别
Tel
varchar(50)
否
电话号码
CType
varchar(50)
否
客户类型
RoomNum
int
否
房间号
Indate
datetime
否
入住时间
Days
int
否
入住天数
Discount
float
否
折扣
Addmoney
money
否
额外费用
SunMoney
money
否
总金额
Rem
varchar(50)
否
备注
表3-4客房预定表[BookIn]
列名
数据类型
允许为空
说明
BookId
int
否
预定号(主键)
Name
varchar(10)
否
姓名
Sex
char
(2)
否
性别
PType
varchar(50)
否
证件类型
P_ID
varchar(50)
否
证件号码
Tel
varchar(50)
否
电话号码
RoomNum
int
否
房间号
Indate
datetime
否
入住时间
Days
int
否
入住天数
Dmoney
money
否
押金
Remark
varchar(50)
是
备注
表3-5房间状态表[Room]
列名
数据类型
允许为空
说明
RoomId
int
否
房间号(主键)
RoomType
varchar(10)
否
房间类型
RoomNum
int
否
房间号
Book
char
(2)
否
是否预定
列名
数据类型
允许为空
说明
Empty
char
(2)
否
是否空
Stop
char
(2)
否
是否停用
Remark
varchar(50)
是
备注
表3-6房间类型表[RoomType]
列名
数据类型
允许为空
说明
RoomTypeId
int
否
房间类型ID(主键)
RoomType
varchar(10)
否
房间类型
Area
int
否
房间面积
Bed
int
否
床位
UnitPrice
money
否
单价
Broadband
char
(2)
否
是否有宽带
Remark
varchar(50)
是
备注
第四章系统实现
4.1登陆界面
1、功能
只有本系统的管理员和进行认可的操作员使用自己相应的用户名与密码才能登陆到此系统进行相关权限下的操作。
2、界面
图4-1系统登陆界面
3、操作指南
(1)用户在登录窗口中输入正确的用户名和密码后可以登录系统(如图4-1),根据输入的用户名是系统管理员还是操作员给予不同的操作权限。
(2)系统管理员可以根据实际情况增加相应的操作员。
4.2系统主界面
图4-2前台操作
4.2.1客房查询
1.功能
通过客房号查询房间的基本类型与状态。
2.界面
图4-3客房查询
3.操作指南
(1).在文本框中输入客房号,点击查询,可以查询到该房间的一些基本情况。
(2).点击空房按钮的时候,会把数据库中所有的空房信息显示出来。
(3).点击未预定按钮的时候,会把数据库中所有的未预定的客房信息显示出来。
(2).点击未停用按钮的时候,会把数据库中所有的未停用的客房信息显示出来。
4.2.2客户预定
1.功能
可以对预定房间的客户信息进行增删改查等操作。
2.界面
图4-4客房预定
3.操作指南
(1)在文本框中输入订单号,点击查询,可以查询到预定的一些基本信息。
(2)当你想对预定信息进行操作时,点击ListView中的数据,将会把ListView中选中的那行数据各个字段显示在上面的文本框和列表框中。
(3)点击修改按钮的时候,将会把修改后的信息添加到数据库中。
(4)点击入住按钮的时候,将会把数据添加到入住表中并且把预定表中的该数据删除并且客房状态表中的预定字段变成“否“,是否为空字段变成“是”。
(5)点击取消预定的按钮的时候,会把入住表中的该数据删除。
4.2.3客户入住
1.功能
可以对客户的入住信息进行查询和添加。
2.界面
图4-5客房入住
3.操作指南
(1)在文本框中输入客户号,点击查询,可以查询到客户入住的信息。
(2)当你想对入住信息进行操作时,点击ListView中的数据,将会把ListView中选中的那行数据的内容显示在输入住信息面板中。
(3)点击入住按钮的时候,将会把入住客户的信息添加到数据库中并且讲客房状态表中是否为空的字段的值变成“否”。
4.2.4客房更改
1.功能
可以实现换房和续住的功能。
2.界面
图4-6客房更改
3.操作指南
(1)在文本框中输入客户号,点击查询,可以查询到入住客户的信息并显示在客户信息面板的控件中。
(2)当点击续住的时候,将会把显示客户信息面板中的天数和押金的值传到续住面板中的原有天数和原有押金中,然后可以实行操作,操作完成后点击确定,将会把值重新传回去。
(3)当点击调房的时候,将会把显示客户信息面板中的客房号和押金的值传到调房面板中的原客房号和原有押金中,然后可以实行操作,操作完成后点击确定,将会把值重新传回去。
(4).点击保存的时候,会把修改后的信息记录到数据库中。
4.2.5客房结算
1.功能
退房并结算费用。
2.界面
图4-7客房结算
3.操作指南
(1)在文本框中输入客户号,点击查询,可以查询到入住客户的信息并显示在结算信息面板的文本框中。
(2)当点击结算,系统会自动算清住宿费和消费总额还有应付款的金额并且显示在对应的文本框中。
(3)点击保存的时候,会把结算的信息记录到数据库中并且把客房状态表中的是否为空字段的值变成“是”。
4.3数据管理模块
4.3.1房间状态
1.功能
对客房的状态进行管理。
2.界面
图4-8客房状态
3.操作指南
(1)在文本框中输入客房号,点击查询,可以查询到客房的一些基本信息。
(2)当选中ListView中的数据时,将会把ListView中选中的数据显示到客房状态信息面板中,以便进行操作。
(3)点击新增按钮的时候,将会把客房状态信息面板中的信息添加到数据库中。
(4)点击删除按钮的时候,会把选中的数据删除。
(5)点击修改按钮的时候,会把修改后的信息传到数据库中。
4.3.2客房类型
1.功能
对客房的类型进行管理。
2.界面
图4-9客房类型
3.操作指南
(1)当你选中ListView中的数据时,会将选中的数据的内容显示在客房类型信息面板中。
以便进行操作。
(2)点击新增按钮的时候,将会把客房类型信息面板中的信息添加到数据库中。
(3)点击删除按钮的时候,会把选中的数据从数据库的表中删除。
(4)点击修改按钮的时候,会把修改后的信息传到数据库中。
4.3.3用户管理
1.功能
对用户进行管理。
2.界面
图4-10用户管理
3.操作指南
(1)当你选中ListView中的数据时,会将选中的数据的内容显示在显示用户信息面板中。
以便进行操作。
(2)点击注册按钮的时候,将会把显示用户信息面板中的信息添加到数据库中(只有管理员才能使用该功能)。
(3)点击修改权限按钮的时候,可以修改用户的权限(只有管理员才能使用该功能)。
(4)点击修改密码的时候,可以修改用户的密码(操作员也可使用此功能)。
第五章系统测试
5.1程序调试
1.测试的基本工作流程
在设计系统的过程中,存在一些错误是必然的。
对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。
但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致。
这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。
5.2程序的测试
5.2.1测试的重要性及目的
测试的重要性:
软件的测试在软件生命周期中占据重要的地位。
近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
测试的目的:
1.软件测试是为了发现错误而执行程序的过程;
2.测试是为了证明程序有错,而不是证明程序无错误;
3.一个好的测试用例是在于它能发现至今未发现的错误;
4.一个成功的测试是发现了至今未发现的错误的测试。
测试并不仅仅是为了要找出错误。
通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。
5.2.2测试的步骤
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。
大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。
因此,大型软件系统的测试基本上由下述几个步骤组成:
1.模块测试在这个测试步骤中所发现的往往是编码和详细设计的错误。
2.系统测试在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
3.验收测试在这个测试步骤中发现的往往是系统需求说明书中的错误。
5.2.3测试的主要内容
为了保证测试的质量,将测试过程分成几个阶段,即:
代码审查、单元测试、集成测试、确认测试和系统测试。
1.单元测试
单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。
2.集成测试
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。
如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。
3.确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。
经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
4.系统测试
软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。
包括恢复测试、安全测试、强度测试和性能测试等。
第六章总结与展望
在设计的过程中,我掌握了很多C#的编程知识,并对这种成熟并广泛应用的技术进行了深入的学习。
设计的过程也是一个再学习的过程,在遇到问题的时候我尽量自己想办法解决,这在很大程度上激发了我们的自学能力;在没有办法解决的情况下,认真的向老师请教,从老师那里我学到了很多的知识,老师对我的指导起到了画龙点睛的作用。
在我的程序设计过程中,我充分的体会到了“实践出真知”这一点,书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。
一个管理信息系统的设计,不可能一步到位,还需要不断的完善和补充。
编程前的深思熟虑是减少程序调试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。
虽然在开始写程序之前我们做了多的准备工作,但在真正的写程序时仍然发现许多问题,有些问题是分析时的疏漏,有些则是如果不做无论如何也想不到的。
参考文献
[1]周琦.SQLServer2005数据库基础及应用技术.北京大学出版社.2010
[2](美)MichaelHalvorson.VisualC#2008从入门到精通.清华大学出版社.2009
[3]王小科.C#项目开发案例全程实录(第2版).清华大学出版社.2011
[4]恭德罗依.SQLServer2005从入门到精通.电子工业出版社.2006
[5]陈圣国编著.信息系统分析与设计.西安电子科技大学出版社.2001
[6]王晟著.VisualC#.NET数据库开发经典案例解析.清华大学出版社.2005
[7]C#从入门到精通.人民邮电出版社.2011
[8]郑阿奇,刘启芬,顾韵华著.SQLServer实用教程.电子工业出版社.2002
致谢
在本次毕业设计(论文)过程中,得到了指导老师的指导与支持。
在此特别感谢XX老师的大力帮助。
指导老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时根我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业设计起到了关键性的作用。
转眼间,大学生活即将结束,回首过去三年的大学生活,真是有苦也有乐,然而更多的则是收获,感谢母校的各位老师不但无私地传授给我们知识,也教会了我们如何做人。
软件技术专业的毕业设计任务繁重,但正是在这几个月紧张而充实的设计中,我感到自己的知识得到了一次升华,我相信:
我的毕业设计会给我的三年大学画上一个圆满的句号。
附录
//登录功能
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(this.textBox1.Text.Trim()=="")
{
MessageBox.Show("请输入用户名!
","提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
if(this.textBox2.Text.Trim()=="")
{
MessageBox.Show("请输入密码!
","提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
else
{
stringuserName=textBox1.Text;
stringpassword=userInfoManager.GetPasswordByUserName(userName);
if(password.Equals(textBox2.Text.ToString()))
{
MainFormmainForm=newMainForm();
MainForm.isRunMain=true;
mainForm.Show();
this.Close();
}
else
{
MessageBox.Show("请输入正确的密码!
","提示",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
//读取选中的listview中的数据
privatevoidtextChangeWithList(inti)
{
if(i>listView1.Items.Count)i=0;
txtRoomId.Text=listView1.Items[i].SubItems[0].Text.ToString();
textR_N.Text=listView1.Items[i].SubItems[1].Text.ToString();
comboRT.Text=listView1.Items[i].SubItems[2].Text.ToString();
if(listVi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C# 酒店 管理 系统