酒店管理系统.docx
《酒店管理系统.docx》由会员分享,可在线阅读,更多相关《酒店管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
酒店管理系统
酒店管理系统
摘要:
设计报告论述了分析、开发、设计一个酒店管理系统的过程。
该系统十分明确的实现了酒店管理的需求,可以提高酒店管理的效率,该系统可以记录酒店的入住、客房管理、客户查询等功能,使酒店管理的各项业务规范化,科学化。
综合先进的计算机技术,采用MicrosoftVisualStudio2010和SQLServer2008开发而成。
设计报告介绍了课题相关内容,并通过设计分析,将系统划分为五个功能模块:
客房管理、客房查询、客户查询、客户入住、客户结算。
着重叙述了客房查询与客户入住这两个功能模块的功能实现,这些模块基本上满足了用户(酒店)的管理功能,系统中的各个模块相互连接,通过查询等功能完成了客户的入住与结算等功能,并运用了C#中ADO.NET和数据集等功能实现了数据库中的数据的显示,增,删,改,查的功能。
关键词:
酒店管理;数据库;ADO.NET;数据集
目录
1系统需求分析5
1.1项目背景5
1.2系统目标5
1.3可行性分析5
2系统概念设计6
2.1系统框架6
2.1.1经济可行性分析6
2.2系统功能模块设计6
2.3系统总体设计7
3数据库设计8
3.1设计思想8
3.2项目概念设计9
3.3项目逻辑结构设计10
3.4项目物理结构设计10
3.4.1系统数据库表及功能10
3.4.2客户信息表11
3.4.3客房信息表11
4编码及项目测试12
4.1主界面及实现代码12
4.2客房查询界面及实现代码14
4.3客户查询界面和实现代码19
4.4客户入住界面和实现代码21
4.5客户结算界面和实现代码23
5总结26
致谢27
参考文献28
指导教师评语29
1系统需求分析
1.1项目背景
科学技术迅速发展的今天,人们的衣食住行发生了很大变化。
离家出门已经非常普遍,无论繁华都市还是僻静乡村都有酒店开张以满足市场需求。
而一个好的酒店管理系统,为酒店提供了简单易用,高度灵活的应用工具。
在工作人员具备一定的计算机操作能力的前提下,特编此酒店管理系统软件以提高酒店的管理效率和节约酒店的运行成本。
1.2系统目标
此次设计将要模拟完成建立一个酒店管理系统系统,实现信息化。
酒店日常管理中所涉及到的大量数据都由数据库管理系统管理。
本文中数据库服务器端采用了商业流行的SQLServer2008作为后台数据库,结合SQL语句强大的处理功能实现酒店管理中各个对象的分类、添加、删除、修改等操作,采用免费的VS2010编程平台,使开发成本降到最小。
经过对酒店管理业务的具体分析,精心对相关信息的学习和在同学的帮助下多次改进终于开发制作了这个酒店管理系统,本系统的设计中运用C#技术和SQL语言操作后台数据库。
该系统的操作界面简洁,适合各类管理人员应用。
本系统有以下特点:
系统中模块划分明确,模块功能设计有较强的针对性。
系统操作界面简单,灵活性好、响应时间短,运行稳定。
1.3可行性分析
系统的可行性分析是对课题的通盘考虑,是系统开发者进行进一步工作的前提,是系统设计与开发的前提与基础。
系统的可行性分析可以使系统开发者尽可能早的估计到课题开发过程中的困难,并在定义阶段认识到系统方案的缺陷,这样就能花费较少的时间和精力,也可以避免许多专业方面的困难。
所以,系统的可行性分析在整个开发过程中是非常重要的。
2系统概念设计
2.1系统框架
2.1.1经济可行性分析
模拟酒店管理系统的开发从长远的角度来看,投资可以完全收回,并可以节省管理费用,避免了人工填单操作所带来的一系列不必要的麻烦,节省了用户和相关工作人员的时间,能够很好地提高工作效率,改进决策质量。
同时也对酒店的灵活管理有了很大的提升,有利于提高酒店的运营和服务效率,其开发前景良好并能产生很好的经济和社会效益。
本系统采用C#编程技术和微软商业数据库。
数据库SQLServer2008是个成熟的数据库管理软件,其安全性,可靠性和实用性满足酒店管理系统的设计要求,估计利用现有技术条件应完全可以达到该系统的功能目标。
VS2010编程平台使得开发成本大大减少。
VS2010和SQL2008都可以从Microsoft公司的网站中直接免费下载。
2.2系统功能模块设计
根据自己的实际调查和查找相关资料,酒店管理系统的各个部分的具体功能的系统结构图,如下图所示。
2.3系统总体设计
通过在需求阶段对系统的总体功能的要求,我们得到了这个信息管理软件的总体功能结构,它应包括6大基本功能:
客房管理:
完成对房间的查询工作,房间号、房间类型、房间楼层,人数查询。
客户查询:
输入客户的账号,可以查询到客户的相关信息。
客户入住:
完成顾客的入住登记操作,主要是记录顾客信息、分配房间和其他信息。
客户结算:
完成顾客的退房结算操作,主要是根据入住登录信息,计算房费信息。
系统帮助:
完成系统的设计者和电话的要求。
退出系统:
完成退出当时的系统,达到退出的目的。
2.4数据流图
收款
3数据库设计
3.1设计思想
系统采用SQLServer2008作为后台数据库。
针对一般酒店管理系统的要求,通过对酒店管理工作过程的内容和数据流程分析,设计如下面的主要数据项和数据结构:
客户信息:
包括客户的房间号,顾客ID,姓名,性别,籍贯,入住时间以及客户的备注等。
客房信息:
包括客房的号码,客房类型,客房的位置以及客房的状态。
3.2项目概念设计
通过建立系统的数据模型(E-R图)来理解和表示问题的信息域。
通过对酒店管理系统的分析,可以得出该系统涉及三个实体:
客户、酒店。
通过对各实体数据关系的整理,我们可以画出如下E—R图:
m
n
图3.1入住登记的初始局部E-R图
m
n
图3.2查询登记的初始局部E-R图
3.3项目逻辑结构设计
在本酒店管理系统中,“客人”联系与“客房”联系是多对多联系,将它们转换为关联模式如下:
由E-R图及由其导出一般关系模型的基本原则,可得以下关系模型:
入住(凭证号码、姓名、房间号、入住日期、籍贯、性别、备注)
房间类型(类型编号、客房类型、价格、备注)
3.4项目物理结构设计
3.4.1系统数据库表及功能
使用SQLServer2008新建一个数据库,将其命名为HotleManage。
酒店管理系统数据库中包含的数据表及其功能如下表所示。
数据表
功能
客房信息
存放客房信息
客户信息
存放客户信息
3.4.2客户信息表
客户信息表是存放客户信息的表,包括客户的编号,姓名,性别,籍贯。
表3-3客户信息表
字段名
类型
大小
说明
客户ID
文本
16
客户凭证号
姓名
文本
50
客户姓名
性别
文本
2
客户性别
籍贯
文本
20
客户归属地
3.4.3客房信息表
客房信息表是存放客房信息的表,包括客房的房间号,类型,楼层,额定人数和已入住人数。
表3-4客房信息表
字段名
类型
大小
说明
房间ID
文本
4
房间号
房间类型
文本
20
客房的类型
房间位置
文本
20
客房楼层
额定人数
文本
额定人数
实际人数
文本
已住人数
床铺信息
文本
单双人床
客房备注信息
备注
20
客房备注信息
4编码及项目测试
4.1主界面及实现代码
下面是系统登录的主页面:
代码:
privatevoidbutton6_Click(objectsender,EventArgse)
{
ClientCheckcheck=newClientCheck();
check.Show();
}
privatevoidRoomTypeManage_Click_1(objectsender,EventArgse)
{
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Searchinfo=newSearch();
info.Show();
}
privatevoidbutton7_Click(objectsender,EventArgse)
{
Helphelp=newHelp();
help.Show();
}
privatevoidbutton8_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidClientBookInManage_Click(objectsender,EventArgse)
{
ClientBookInManagechechin=newClientBookInManage();
chechin.Show();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
ClientRecordrecord=newClientRecord();
record.Show();
}
privatevoidRoomSearch_Click(objectsender,EventArgse)
{
Searchsearch=newSearch();
search.Show();
}
privatevoidClientBookInManage_Click_1(objectsender,EventArgse)
{
ClientBookInManagecb=newClientBookInManage();
cb.Show();
}
4.2客房查询界面及实现代码
客房查询界面实现了查找指定房间的截图如下所示:
代码:
//查找
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringc="InitialCatalog=HotleManage;DataSource=localhost;IntegratedSecurity=SSPI;";
SqlConnectionsql=newSqlConnection(c);
try
{
sql.Open();
stringc1="select*fromRoomwhereRoomID='"+textBox1.Text.Trim()+"'";
SqlCommandcmd=newSqlCommand(c1,sql);
SqlDataReadersd=cmd.ExecuteReader();
while(sd.Read())
{
ListViewItemview=newListViewItem(sd["RoomID"].ToString().Trim());
view.SubItems.AddRange(newstring[]{sd["RoomTypeName"].ToString(),sd["RoomPosition"].ToString(),
sd["PeopleNum"].ToString(),sd["FactPeopleNum"].ToString(),sd["Reamak"].ToString()});
listView1.Items.Add(view);
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sql.Close();
}
}
privatevoidlabel6_Click(objectsender,EventArgse)
{
}
privatevoid客房查询_Load(objectsender,EventArgse)
{
}
//空闲
privatevoidbutton3_Click(objectsender,EventArgse)
{
listView1.Items.Clear();
stringstr="DataSource=.;InitialCatalog=HotleManage;IntegratedSecurity=SSPI;";
SqlConnectionsql=newSqlConnection(str);
sql.Open();
stringc3="select*fromRoomwhereFactPeopleNum=0";
SqlCommandcmd=newSqlCommand(c3,sql);
SqlDataReadersd=cmd.ExecuteReader();
while(sd.Read())
{
ListViewItemview=newListViewItem(sd["RoomID"].ToString().Trim());
view.SubItems.AddRange(newstring[]{sd["RoomTypeName"].ToString(),sd["RoomPostion"].ToString(),
sd["PeopleNum"].ToString(),sd["FactPeopleNum"].ToString(),sd["Remak"].ToString()});
listView1.Items.Add(view);
}
}
//未满
privatevoidbutton4_Click(objectsender,EventArgse)
{
listView1.Items.Clear();
stringstr="DataSource=.;InitialCatalog=HotleManage;IntegratedSecurity=SSPI;";
SqlConnectionsql=newSqlConnection(str);
sql.Open();
stringc2="select*fromRoomwherePeopleNum!
=FactPeopleNum";
SqlCommandcmd=newSqlCommand(c2,sql);
SqlDataReadersd=cmd.ExecuteReader();
while(sd.Read())
{
ListViewItemview=newListViewItem(sd["RoomID"].ToString().Trim());
view.SubItems.AddRange(newstring[]{sd["RoomTypeName"].ToString(),sd["RoomPostion"].ToString(),
sd["PeopleNum"].ToString(),sd["FactPeopleNum"].ToString(),sd["Remak"].ToString()});
listView1.Items.Add(view);
}
}
privatevoidlabel2_Click(objectsender,EventArgse)
{
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
}
privatevoidbutton1_Click_1(objectsender,EventArgse)
{
this.Close();
}
}
4.3客户查询界面和实现代码
此界面实现了查询客户的ID,从而实现查询到客户的姓名,房间号等。
代码:
//取消
privatevoidbutton1_Click(objectsender,EventArgse)
{
textBox1.Text="";
}
privatevoidlabel1_Click(objectsender,EventArgse)
{
}
//查找
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringc="InitialCatalog=HotleManage;DataSource=localhost;IntegratedSecurity=SSPI;";
stringstr="select*fromClientRecordwhereClientID='002'";
SqlConnectionsql=newSqlConnection(c);
sql.Open();
SqlCommandcmd=newSqlCommand(str,sql);
SqlDataReaderred=cmd.ExecuteReader();
while(red.Read())
{
ListViewItemview=newListViewItem(red["ClientID"].ToString().Trim());
view.SubItems.AddRange(newstring[]{red["ClientID"].ToString(),red["ClientName"].ToString(),red["RoomID"].ToString(),red["InDate"].ToString(),red["CheckDate"].ToString(),red["TotalMoney"].ToString()});
listView1.Items.Add(view);
}
sql.Close();
}
//全部
privatevoidbutton3_Click(objectsender,EventArgse)
{
stringc="InitialCatalog=HotleManage;DataSource=localhost;IntegratedSecurity=SSPI;";
stringstr="select*fromClientRecord";
SqlConnectionsql=newSqlConnection(c);
sql.Open();
SqlCommandcmd=newSqlCommand(str,sql);
SqlDataReaderred=cmd.ExecuteReader();
while(red.Read())
{
ListViewItemview=newListViewItem(red["ClientID"].ToString().Trim());
view.SubItems.AddRange(newstring[]{red["ClientID"].ToString(),red["ClientName"].ToString(),red["RoomID"].ToString(),red["InDate"].ToString(),red["CheckDate"].ToString(),red["TotalMoney"].ToString()});
listView1.Items.Add(view);
}
sql.Close();
}
//退出
privatevoidbutton6_Click(objectsender,EventArgse)
{
this.Close();
}
4.4客户入住界面和实现代码
此界面实现了客户的入住,操作界面如下图所示:
代码:
//入住
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringc="InitialCatalog=HotleManage;DataSource=localhost;IntegratedSecurity=SSPI;";
SqlConnectionsql=newSqlConnection(c);
sql.Open();
strings1=String.Format("insertintoClientvalues('{0}','{1}','{2}','{3}')",textBox2.Text,textBox3.Text,comboBox1.SelectedItem.ToString(),comboBox2.SelectedItem.ToString());
SqlCommandcmd=newSqlCommand(s1,sql);
if(cmd.ExecuteNonQuery().ToString()=="1")
{
MessageBox.Show("入住成功,欢迎您!
");
}
else
{
MessageBox.Show("很抱歉,您入住失败!
");
}
}
//取消
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
//重置
privatevoidbutton1_Click(objectsender,EventArgse)
{
textBox1.Text="";
textBox2.Text="";
textBox3.Text="";
textBox4.Text="";
}
}
4.5客户结算界面和实现代码
此界面实现了客户离开酒店时的结算功能,操作界面如下图所示:
代码:
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
//确定
publicstringtotal;
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringc="InitialCatalog=HotleManage;DataSource=localhost;IntegratedSecurity=SSPI;";
stringstr="select*fromC