酒店管理系报告册.doc_第1页
酒店管理系报告册.doc_第2页
酒店管理系报告册.doc_第3页
酒店管理系报告册.doc_第4页
酒店管理系报告册.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录1 绪论:.11.1 项目背景.11.2 项目主要目的.12 系统相关技术介绍.22.1 C#窗体应用程序技术简介.22.2 SQL技术.22.2.1 数据库的基本概念.23 系统分析.33.1 技术可行性分析.33.2 系统逻辑结构图.43.3 程序流程图.44 数据库设计.54.1 数据库概念结构设计.54.2 数据库逻辑结构设计.65 系统各模块的实现.65.1 登录.65.2 主界面.75.3 新增客房类型窗体.75.4 客房管理信息.85.5 入住登记窗体.85.6 房间信息窗体.85.7 入住信息窗体.95.8 新增房间.95.9 客房管理.95.10 关于.96 系统测试.11 6.1 测试目的.11 6.2 测试方法.11 6.3 测试实例.117 总结.128 附录.12绪论1.1 项目背景: 21世纪是以网络的广泛、全面、深入运用为特征的信息化社会。近十年来随着我国经济的快速发展以及“黄金周”休息日的增多,人们的消费能力和消费水平有了极大的提升,商务、度假、旅游等活动使我国城市酒店业得到了快速的发展,这一切都给我国酒店业的发展带来了无穷的契机。现代星级酒店作为一个城市的名片和对外窗口,其酒店形象、服务水平和周边旅游都至关重要。能为消费者提供周到、便捷、全方位的服务,满足消费者“个性化服务,信息化服务”的需要,是现代酒店业发展的方向。这就要求酒店管理需要使用更有效的信息化手段,广泛拓展经营空间,进一步降低运营成本。针对酒店的运营质量和管理效率需求,文章采用C#语言编写、结合.NET三层架构,利用SQL Server 2008数据库存储数据设计并实现酒店管理系统。文章首先对系统进行分析,然后依次对系统、数据库、及界面进行设计,最后实现了基于.NET三层架构的酒店管理系统。随着商品化经济的发展,再加上入境旅游的人也越来越多,入境从事商务活动的外宾也越来越多。传统的手工已不适应现代化酒店管理的需要。及时、准确、全方位的网络化信息管理成为必需。旅游规模的不断扩大,随之而来的就是酒店管理的问题,只依靠人工的记账管理体制已经无法适应当代酒店的发展,这就需要有一个先进的管理系统来管理如此繁杂的信息。在酒店业竞争日益激烈的今天,酒店管理成为留住客人的一个重要因素。酒店管理系统的应用,将使得酒店在管理方面迈上一个新的台阶,成为提高酒店的管理效率、改善服务水准的重要手段之一。目前及将来,酒店竞争将主要在智能化,信息化方面展开,酒店信息化的发展势在必行。 整个系统从符合操作简便、界面简洁明了、灵活、实用、安全的要求出发。在功能上系统可以完成管理员登陆对相关信息的浏览、退出,添加、删除、修改等功能。账户管理,酒店管理1.2 项目主要目的 1.课程设计目的 数据库课程设计是数据库系统原理实践环节的极为重要的部分,其目的是:(1)培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计。 (2) 培养学生能够应用数据库系统在概念设计的基础上应用关系规范化理论对系统进行逻辑设计。(3)培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,并且能够应用事务处理,存储过程,触发器以保证数据库系统的数据完整性,安全性,一致性,保证数据共享和防止数据冲突;(4)培养学生理论与实际相结合的能力,使之能够熟练掌握一种数据库系统(如SQL SERVER)的使用,培养学生开发创新能力。(5)通过设计实际的数据库系统应用课题,使学生进一步熟悉数据库管理系统的操作技术,提高学生独立分析问题,解决问题,查阅资料以及自学的能力,以适应计算机产业日新月异发展的形势;提高和加强学生的计算机应用与软件开发能力。2 基本要求: (1)要求在VS2012环境下调试完成; (2)要求划分功能模块,各个功能分别使用函数来完成; (3)源代码程序要求必要的注释。(4)构建布局合理美观的Windows窗体(5)使用ADO.NET操作数据(6)在ADO.NET中使用存储过程(7).NET 中Excel 的导入导出(8)DataGridView数据的筛选 (9)异常处理 3.设计方法与基本原理1 课题功能描述 设计一个酒店管理系统,要求实现的功能包括:a.用户需在登陆页输入用户名、密码,通过身份验证后才可对酒店客房进行管理操作。b.基础信息维护功能房间房间编号房间类型c.房间类型退房功能入住信息查询记录房款 将订房状态改为结账状态 d.入住登记窗体可录入身份证号、姓名、押金、房间和入住时间入住时间可使用日历输入下拉方式选择空闲房间4.问题的解决方案: 根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。5.系统概述:实现酒店房间入住登记和退房实现酒店房间基础信息维护房间类型房间维护实现房间状态查看系统角色:管理员 2 系统相关技术介绍:2.1 .Net三层架构应用程序技术简介.NET是MicroSoft公司为适应Internet高速发展的需要,而隆重推出的新的开发平台,是目前最流行的Windows平台应用程序开发环境。可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件等。B/S架构的应用因为客户端的免安装而广受欢迎,而对于业务处理繁琐、客户交互复杂的应用系统,三层架构的受客户端模式则是更为适用的方式。三层是指:数据数据访问层,业务逻辑层,表示层。 DAL(数据数据访问层)操作数据 BLL(业务逻辑层)调用DAL UI(表示层)调用BLLModel层贯穿三层。2.2 SQL技术:2.2.1数据库的基本概念 SQL结构化增删改查,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 SQL语言包括:数据定义语言、数据操作语言、数据查询语言、数据控制语言四部分。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所有具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能。3 系统分析3.1技术可行性分析:本系统采用目前被广泛使用的C#开发技术、SQLServer2008数据库技术。同时使用VisulStudio2012作为开发平台运用.NET三层架构做得一个酒店管理系统,采用SQLServer2008数据库。到目前为止,SQL数据库仍然是使用最广泛的一种数据库语言,因此本系统采用SQLServer2008,在系统安全性、可用性和高稳定性上又有了很大的提升。 3.2 系统逻辑结构图: 酒店管理系统 基础设置帮助业务管理房间类型管理退出房间信息管理房间状态查看关于入住登记入住信息查询退出新增房客类型退出客房信息管理图3-2:系统逻辑结构图3.3 程序流程图:如图:开始退出否是是否退出?失败用户登录 成功 业务管理退出主界面基础设置 入住信息查询入住登记房间状态查看退出房间类型管理房间信息管理退出客房信息管理新增房客类型退出图3-3:程序流程图 4数据库设计 4.1数据库概念结构设计本系统中,为了保证系统的安全性,在登录系统的时候用户需要输入正确的用户名和密码。因此,需要一个数据库表用来记录用户的用户名和密码。登录表图如图所示:编号登录名名管理员密码 图4-1-1:管理员登录表编号编号房间类别类别名称 图4-1-2:房间类别表编号商品商品名称 图4-1-3:房间情况信息表编号结账信息名称 图4-1-3:结账情况信息表 4.2数据库逻辑结构设计:根据上面设计的图表,便可以在数据库中创建相应的数据库表,本系统的各数据表的结构如下:管理员:编号,登录名,密码,其结构如下图所示。列名数据类型可否为空说明LoginIdint否Id号LoginNamenvarchar(50)否登录名LoginPwdnvarchar(50)否登录密码如:GuestRecord 顾客记录表结构列名数据类型可否为空说明GuestIDint否入住号IdentityIDvarchar(50)否身份证号GuestNamenchar(20)否入住人的姓名RoomIDint是房间号ResideIDint是入住状态IDResideDatedatatime是入住时间LeaveDatadatatime是离开时间Depositdecimal(18, 2)是押金TotalMoneydecimal(18, 2)是金额如:ResideState 入住状态表结构列名数据类型可否为空说明ResideIdint否入住状态idResideNamenchar(50)是入住状态名称Room房间信息表列名数据类型可否为空说明RoomIDint否房间idBedNumint是床位数Descriptionnvarchar(200)否房间描述RoomStateIDint否房间状态idGuestNumint是房客数目RoomTypeIDInt否房客类型id 如:RoomState 房间状态表结构列名数据类型可否为空说明RoomStateIDint否房间状态idRoomStateNamenchar(20)是房间状态名如:RoomType 房间类型表结构列名数据类型可否为空说明TypeIDint否客服类型idTypeNamenvarchar(50)是客房类型名称TypePricedecimal(18, 2)是客房类型价格如:数据库关系图如下:5系统各模块的实现5.1 登录:用户登录模块在本系统的首页。用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面注释:当未输入用户名时提示请输入用户名,输入用户名但没有输入密码时提示请输入密码,验证用户名和密码非空时,连接数据库验证用户名和密码是否正确,如果正确进入主菜单,反之提示用户名或密码有误。 主要实现代码如下:public FrmLogin()InitializeComponent();#region 取消private void btnCancel_Click(object sender, EventArgs e)this.Dispose();#endregion#region 数据验证/ / / 返回布尔类型public bool CheckInputNotEmpty()if (this.txtUserName.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入用户名, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtUserName.Focus();return false;else if (this.txtPwd.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入密码, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtPwd.Focus();return false;elsereturn true;#endregion#region 登录private void btnLogin_Click(object sender, EventArgs e)tryif (!CheckInputNotEmpty()return;bool bAdmin = AdminManager.CheckAdminLogin(this.txtUserName.Text.Trim(), this.txtPwd.Text.Trim();if (!bAdmin)MessageBox.Show(用户名或密码不存在, 登录失败, MessageBoxButtons.OK, MessageBoxIcon.Error);return;elseFrmMain frmMain = new FrmMain();frmMain.Show();this.Hide();catch(Exception ex)MessageBox.Show(ex.Message, 登录失败, MessageBoxButtons.OK, MessageBoxIcon.Error);return;#endregion 5.2 主窗体:酒店管理界面客房管理窗体部分代码如下:#region 数据绑定public void BindRoomTypes()string flag = this.txtTypeNam.Text.Trim();List rmtList = new List();if (String.IsNullOrEmpty(flag)rmtList = RoomTypeManager.GetAllRoomType();elsermtList = RoomTypeManager.GetRoomTypeByName(flag);this.dgvRoomType.DataSource = rmtList;#endregionprivate void FrmRoomType_Load(object sender, EventArgs e)this.BindRoomTypes();private void btnQuery_Click(object sender, EventArgs e)this.BindRoomTypes();private void tsbExit_Click(object sender, EventArgs e)this.Close();private void tsbAddRoomType_Click(object sender, EventArgs e)FrmAddRoomTyep frmAddRoomTyep = new FrmAddRoomTyep();frmAddRoomTyep.queryDelegate = this.BindRoomTypes;frmAddRoomTyep.Show();#region 删除客房类型private void tsmiDel_Click(object sender, EventArgs e)if (this.dgvRoomType.SelectedRows.Count = 0)return;int typeId = Convert.ToInt32(this.dgvRoomType.CurrentRow.CellsTypeID.Value.ToString();if (RoomTypeManager.DelRoomType(typeId) 0)MessageBox.Show(删除成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.BindRoomTypes();elseMessageBox.Show(删除失败, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);#endregionprivate void dgvRoomType_CellClick(object sender, DataGridViewCellEventArgs e)int typeId = Convert.ToInt32(this.dgvRoomType.CurrentRow.CellsTypeID.Value.ToString();RoomType roomType = RoomTypeManager.GetRoomTypeByTypeId(typeId);this.txtTypeName.Text = roomType.TypeName;this.txtTypePrice.Text = roomType.TypePrice.ToString();#region 数据验证/ / / 返回布尔类型public bool CheckInputNotEmpty()if (this.txtTypeName.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入客房类型, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtTypeName.Focus();return false;else if (this.txtTypePrice.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入价格, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtTypePrice.Focus();return false;elsereturn true;#endregionprivate void btnOK_Click(object sender, EventArgs e)if (!CheckInputNotEmpty()return;RoomType roomType = new RoomType();roomType.TypeID = Convert.ToInt32(this.dgvRoomType.CurrentRow.CellsTypeID.Value.ToString();roomType.TypeName = this.txtTypeName.Text.Trim();roomType.TypePrice = Convert.ToDecimal(this.txtTypePrice.Text.Trim();if (RoomTypeManager.UpdateRoomType(roomType) 0)MessageBox.Show(修改成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.BindRoomTypes();elseMessageBox.Show(修改失败, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);5.3 新增客房类型窗体:部分代码如下:#region 数据验证/ / / 返回布尔类型public bool CheckInputNotEmpty()if (this.txtBedNum.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入床位数, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtBedNum.Focus();return false;else if (this.txtDescription.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入客房描述, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtDescription.Focus();return false;elsereturn true;public bool Check()tryConvert.ToInt32(this.txtBedNum.Text.Trim();catch (Exception ex)return false;return true;#endregion#region 数据绑定public void RoomTypeDataBind()tryList rmStates = RoomTypeManager.GetAllRoomType();this.cboRoomType.DataSource = rmStates;this.cboRoomType.DisplayMember = TypeName;this.cboRoomType.ValueMember = TypeID;this.cboRoomType.SelectedIndex = 0;catch (Exception ex)MessageBox.Show(ex.Message, 操作错误, MessageBoxButtons.OK, MessageBoxIcon.Error);throw;#endregionprivate void FrmAddRoom_Load(object sender, EventArgs e)this.RoomTypeDataBind();private void btnOK_Click(object sender, EventArgs e)if (!CheckInputNotEmpty()return;if (!Check()MessageBox.Show(添加数据类型错误, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);return;Room room = new Room();room.BedNum = Convert.ToInt32(this.txtBedNum.Text.Trim();room.RoomTypeID = Convert.ToInt32(this.cboRoomType.SelectedValue);room.Description = this.txtDescription.Text.Trim();if (RoomManager.AddRoom(room) 0)MessageBox.Show(添加成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.queryDelegate();this.Close();elseMessageBox.Show(添加失败, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.Close();5.4 客房管理信息:部分代码如下:public void BindRoom()string flag = this.txtRoomID.Text.Trim();List rmtList = new List();rmtList = RoomManager.GetRoomList(flag);this.dgvRoom.DataSource = rmtList;this.SetRoomStateAndRoomType();public void SetRoomStateAndRoomType()foreach (DataGridViewRow row in this.dgvRoom.Rows)int id = (int)(row.CellsRoomTypeID.Value);row.CellsRoomType.Value = RoomTypeManager.GetRoomTypeByTypeId(id).TypeName;DataGridViewComboBoxColumn cbo = (DataGridViewComboBoxColumn)this.dgvRoom.ColumnsRoomStateID;cbo.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;cbo.DataSource = RoomStateManager.GetRoomStates();cbo.DisplayMember = RoomStateName;cbo.ValueMember = RoomStateID;#endregionprivate void btnQuery_Click(object sender, EventArgs e)this.BindRoom();private void tsbAddRoom_Click(object sender, EventArgs e)FrmAddRoom frmAddRoom = new FrmAddRoom();frmAddRoom.queryDelegate = this.BindRoom;frmAddRoom.Show();private void tsbExit_Click(object sender, EventArgs e)this.Close();#region 数据验证/ / / 返回布尔类型public bool CheckInputNotEmpty()if (this.txtBedNum.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入床位数, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtBedNum.Focus();return false;else if (this.txtDescription.Text.Trim().Equals(string.Empty)MessageBox.Show(请输入客房描述, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.txtDescription.Focus();return false;elsereturn true;#endregion#region 数据绑定public void RoomTypeDataBind()tryList rmStates = RoomTypeManager.GetAllRoomType();this.cobRoomType.DataSource = rmStates;this.cobRoomType.DisplayMember = TypeName;this.cobRoomType.ValueMember = TypeID;this.cobRoomType.SelectedIndex = 0;catch (Exception ex)MessageBox.Show(ex.Message, 操作错误, MessageBoxButtons.OK, MessageBoxIcon.Error);throw;#endregionprivate void dgvRoom_CellClick(object sender, DataGridViewCellEventArgs e)int roomId = Convert.ToInt32(this.dgvRoom.CurrentRow.CellsRoomID.Value.ToString();Room room = RoomManager.GetRoomByRoomId(roomId);this.txtBedNum.Text = room.BedNum.ToString();this.txtDescription.Text = room.Description.ToString();this.cobRoomType.SelectedValue = room.RoomTypeID;private void FrmRoom_Load(object sender, EventArgs e)this.dgvRoom.AutoGenerateColumns = false;this.RoomTypeDataBind();#region 修改private void btnOK_Click(object sender, EventArgs e)if (!CheckInputNotEmpty()return;Room room = new Room();room.RoomID = Convert.ToInt32(this.dgvRoom.CurrentRow.CellsRoomID.Value.ToString();room.BedNum = Convert.ToInt32(this.txtBedNum.Text.Trim();room.RoomTypeID = Convert.ToInt32(this.cobRoomType.SelectedValue);room.Description = this.txtDescription.Text.Trim();if (RoomManager.UpdateRoom(room) 0)MessageBox.Show(修改成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.BindRoom();elseMessageBox.Show(修改失败, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);#endregion#region 删除private void tsmiDel_Click(object sender, EventArgs e)if (this.dgvRoom.SelectedRows.Count = 0)return;int roomId = Convert.ToInt32(this.dgvRoom.CurrentRow.CellsRoomID.Value.ToString();if (RoomManager.DelRoom(roomId) 0)MessageBox.Show(删除成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);this.BindRoom();elseMessageBox.Show(删除失败, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information);#endregionprivate void btnExport_Click(object sender, EventArgs e)tryif(this.dgvRoom.RowCount=0)MessageBox.Show(无数据导出!, 操作失败, MessageBoxButtons.OK, MessageBoxIcon.Error);return;ExcelHandle excleHandle = new ExcelHandle();excleHandle.GetRooms(this.dgvRoom);catch(Exception ex)MessageBox.Show(ex.Message, 操作失败, MessageBoxButtons.OK, MessageBoxIcon.Error);return;public string GetUserSelectFile()Open

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论