酒店管理系统的设计与实现毕业论文_第1页
酒店管理系统的设计与实现毕业论文_第2页
酒店管理系统的设计与实现毕业论文_第3页
酒店管理系统的设计与实现毕业论文_第4页
酒店管理系统的设计与实现毕业论文_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、*酒店管理系统的设计与实现(正文+部分源代码)目 录摘 要IIIAbstractIV引 言1第一章 绪 论21.1 系统开发背景21.2 课题研究目的与意义21.3 国内外现状与发展动态31.4 系统开发工具与相关技术41.4.1 系统开发工具41.4.2 数据库开发工具41.4.3 C#开发语言介绍5第二章 系统分析72.1 需求分析72.1.1系统的主要功能72.1.2系统的实现目标72.1.3系统的性能需求82.1.4运行环境92.2 可行性分析102.3 数据需求分析112.4 数据字典132.5 数据流图14第三章 系统设计153.1 系统功能结构设计153.2 数据库设计163.3

2、 系统流程图20第四章 系统详细设计与实现214.1 用户登录214.3客房管理244.3.1客房信息修改244.3.2 入住管理284.3.3 退租管理324.3.4 客房类型管理344.4 员工管理374.5财务管理434.6 酒店初始化454.7用户密码更改47第五章 系统测试505.1测试的作用和意义505.2测试方法505.3系统测试51结束语55参考文献56致谢57附录58摘 要该软件采用ASP.NET应用开发技术,具有一些客房查询、入住、退房等功能,尤其依靠ASP.NET的优点来为酒店更好的进行管理,稳定性,可扩展性,安全性,健壮性,都是该酒店管理的优势所在。数据库采用的 SQL

3、 Server 2008,SQL SERVER是大数据库,它也属于中型数据库,应用于中小型企业。SQL SERVER的分布式、复制、全文检索、DTS都可以满足中型的应用。所以使用SQL SERVER作为酒店管理系统的数据库再合适不过。系统基于CS架构,以C#语言并使用Microsoft Visual Studio 2010平台和SQL Server 2008数据库;实现了酒店管理的客房管理、员工管理、财务管理、前台管理以与相关的资料的管理,并经过在本机Win7系统上运行测试可以很好的应用。本文档很好的介绍了系统分析、数据流程分析、功能设计、数据库设计、系统实现和系统测试等内容。关键字:酒店管理

4、系统,SQL Server 2008,Microsoft Visual Studio 2010,CS架构。AbstractThe software uses ASP.NET application development technology, with some rooms, check-in, check-out and query function, especially on the advantages of ASP.NET for meet medium application. So the use of SQL SERVER as a C S architecture, C M

5、icrosoft Visual # language and using Studio2010 platform and SQL Server 2008 database; the management, and through this machine Win7system running test can be a very good application. This document is a very good introduction of the system analysis, data flow analysis, functional design, database de

6、sign, system realization and system test etc.Keywords:m 1 mnn11m图2.8总体E-R图2.4 数据字典数据字典是系统中给类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。下面以数据字典卡片来描述。表3.7 房间信息数据字典 表 3.8酒店信息信息数据字典 名字:房间信息别名:描述:用来存储房间信息定义:房间信息=房间编号+房间类型+入住人数+床铺个数+状态标记+描述位置:数据库名字:酒店信息别名:描述:用来存储酒店信息定义:酒店信息=酒店名称+酒店老板+联系+酒店地址+酒店描述位置:数据库表3.9 入住信息表数据字典

7、 表 3.10 房间类型信息数据字典 名字:入住信息表别名:描述:用来存储客人入住信息定义:入住信息=序号id+客人XX+XX+房间编号+床号+押金+入住时间+退房时间+备注+付款位置:数据库名字:房间类型信息别名:描述:用来存储房间类型信息定义:房间类型信息=房间类型+床位数+价格+图片位置:数据库表3.11房间类型删除信息数据字典 表 3.12 用户信息数据字典 名字:房间类型删除信息别名:描述:用来存储房间类型删除信息定义:房间类型删除信息=房间类型+删除时间位置:数据库名字:用户信息别名:描述:用来存储用户信息定义:用户信息=用户id+用户密码+用户XX+角色+位置:数据库2.5 数据

8、流图系统顶层数据流图如下:后台管理员向酒店管理系统添加数据,系统存储数据信息,前台用户通过向系统输入用户名和密码后就让系统后,通过客房管理模块输入信息,系统把前台用户输入的信息以列表形式返回给用户。用户名、密码列表显示查询 登陆、查询、修改存入读取图2.9 系统顶层数据流图第三章 系统设计3.1 系统功能结构设计采用本系统可以大大减少前台的服务人员的人数,直接和后勤联系加快入住登记速度。由于采用计算机操作,可以大大提高操作速度。为了能够适应信息化发展的需要,提高服务行业的工作效率,引入了该信息系统。酒店管理系统功能结构如图3.1所示。图3.1 功能模块图本系统包括以下功能模块。1、前台管理:主

9、要包括客户入住登记,结账开单,房间查询,房间基本信息修改等。2、客房管理:主要是对酒店客房类型管理增加、修改、删除,客房添加。3、员工管理:主要是对酒店员工进行信息修改、删除、添加的管理。3、财务管理:主要是对酒店财务方面的管理。包括一段时间内客户数量统计、客户入住月报、客户入住与退出数量统计。4、酒店初始化:主要是对酒店的基础设置信息的管理。包括酒店名称设置,酒店老板XX设置,酒店设置,酒店地址设置,酒店描述设置。5、密码修改:主要是用户密码修改功能。6、工具:主要是方便用户时间查询,数据计算功能。7、帮助:主要是展示酒店信息,软件的信息。3.2 数据库设计数据库技术的发展,已成为先进信息技

10、术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。下面对数据库的需求、概念设计、逻辑设计加以说明。1数据库的需求分析现代的、成熟的和广泛占领市场的数据库产品一般都是关系数据库产品。本系统选择SQL Server 2008作为后台数据库,其强大的管理功能能够对大量的数据进行有效管理,并且与Visual Studio 2010无缝集成,使用起来非常方便。酒店管理系统核心功能主要涉与到6个表,即:房间信息表、酒店信息表、客户信息登记表、房间类型表、用户信息表。房间信息表:这X表是用来存储客房信息的。客房添加以后它的信息就会储存到这X表中,其中包含:客房编号、客房类型、入住人数、价格

11、、床铺个数、状态标记、客房描述。酒店信息表:这X表是用来存酒店名称、酒店老板、联系、地址、酒店描述。会员信息表:这X表是用来存储客户XX、客户证件、所交押金、住房编号、入住时间、退租时间。房间类型表:这X表是用来存储房间编号、房间类型、房间单价。用户信息表:这X表是用来存储各各用户与员工的编号、XX、密码、角色标记、联系。房间类型删除记录表:主要记录删除的房间类型、删除时间。2数据库逻辑设计本系统的后台数据库使用SQL Server 2008作为数据库管理工具。该数据库包括以下几个表。(1)酒店信息表():此表主要是记录房间具体信息。房间编号roommid为主键,后台管理员在进行房间添加时,系

12、统会对房间编号进行检测。如果所填写的房间编号在系统中已经存在,那么系统将会提醒用户重新输入房间编号,所以房间编号是唯一的,这样既避免了主键冲突的情况发生也利于客房管理,同样也有利于客房有效管理。下表3.3为房间信息表(room)详细设计与说明:表3.3 房间信息表(room)列名数据类型长度主键否允许空注释roomidInt4是不允许房间idroomtypeVarchar30否允许房间类型currPeopleInt4否允许可住人数bedNumberInt4否允许床位数tvInt4否允许电视telInt4否允许compInt4否允许电脑toilInt4否允许热水器aircondtionInt4否

13、允许空调rstateInt4否允许状态remarkVarchar100否允许备注pricedecimal(5, 2)否允许价格(4)房间类型信息表(roomType):此表主要由于存储房间类型的,它包括房间类型、房间床铺数量、单价、房间展示图片。房间类型roomType为主键,后台管理员在进行房间类型添加时,系统会对房间类型进行检测。如果所填写的房间类型在系统中已经存在,那么系统将会提醒用户重新输入房间类型,所以房间类型是唯一的,这样既避免了主键冲突的情况发生也利于客房管理,同样也有利于客房有效管理。下表3.4为房间类型信息表(roomType)详细设计与说明:表3.4 房间类型信息表(roo

14、mType)列名数据类型长度主键否允许空注释roomTypeVarchar30是不允许房间类型bedNumberInt4否允许床位数pricedecimal(5, 2)否允许价格rtimageVarchar50否允许图片(5)房间类型删除信息表(roomType_Tombstone):此表主要存储房间类型删除记录,包括所删除的房间类型、删除时间。表3.5 房间类型删除信息表(roomType_Tombstone)列名数据类型长度主键否允许空注释roomTypeVarchar30否不允许房间类型DeletionDatedatetime7否允许删除时间(6) 用户信息表(UserInfo):此表主

15、要存储用户个人信息,它包括用户编号、用户密码、用户XX、用户角色、用户;其中用户编号为主键,且编号为自动生成,所以这样就保证了用户唯一性,避免了主键冲突,保证了系统和数据安全性。表3.6用户信息表(UserInfo)列名数据类型长度主键否允许空注释u_idint4是不允许用户idu_pwdvarchar10否允许用户密码u_namevarchar10否允许用户XXu_roleint4否允许角色u_telvarchar15否允许3.3 系统流程图系统程序流程图如图3.8所示:管理员员工 功能操作 功能操作是 否是 否否是是是是否否否是 否否是图3.8 系统流程图第四章 系统详细设计与实现4.1

16、用户登录用户通过输入用户编号和密码并选择用户角色登录入系统,如果密码或者用户编号不正确,则不任许用户登录到系统。只有有此系统账号的用户才可以登录到本系统,并把用户的基本信息赋到userInfo中,以便其他工能模块能获得登录用户的基本信息。下图4.1为用户登录流程图,图4.2为用户登录界面图错误正确图4.1 用户登录流程图图4.2 用户登录界面具体程序设计如下:private void btn_login_Click(object sender, EventArgs e) try var userLogin = new UserInfo(); bool result = userLogin.Ch

17、eckUser(txb_id.Text, txb_pwd.Text, cbx_main_role.SelectedIndex.ToString(); if (result) switch (cbx_main_role.Text) case "员工": var f = new frmMain(); f.uid = txb_id.Text; f.uname = checkusername(); Hide(); f.Show(); break; case "管理员": varhm = new HotelManager(int.Parse(txb_id.Text

18、); Hide(); ex) var ms = new MessageShow(this); ms.Show("界面没有得到赋值,请确定数数据库是否正确连接"); 4.2主界面用户成功登陆之后,进入前台主界面。前台主界面主要由三个部分组成:顶端页面、左侧导航栏和右侧内容显示栏。顶端页面主要显示系统的名称、识别登陆用户的名称和身份。左侧导航栏采用分级模式,导航栏中显示整个系统的前台功能点。右侧内容显示栏主要显示客房的信息,其中用了iframe。点击左侧导航栏功能点的时候,不需重新打开窗口,而是在右侧的显示栏中显示内容。1、管理员登录成功后的主界面如图4.3。管理员除了不能登记

19、租房、退房外拥有其他所有最高权限。图4.3 管理员主功能界面2、用户登录成功后进入的主功能界面如图4.4。普通用户一般为酒店员工,所以只能进行客房管理和查看资料以与修改自己的登录密码。图4.4 普通用户主功能界面4.3客房管理用户在成功登录系统后,进入客房管理模块对客房信息修改、添加、删除以与客房入住、退租操作。下图4.4为客房管理流程图:图4.4 客房管理流程图4.3.1客房信息修改前台用户在登录系统后,通过客房信息列表管理,对客房进行修改操作,修改操作截图如图4.5所示:图4.5 客房信息修改图主要程序设计如下: * 房间初始化信息查询 var room = new Room(); Dat

20、aTable dt = room.GetRoomList(); dgwRoomList.DataSource = dt; dgwRoomList.Columns4.Visible = false; dgwRoomList.Columns5.Visible = false; dgwRoomList.Columns6.Visible = false; dgwRoomList.Columns7.Visible = false; dgwRoomList.Columns8.Visible = false; dgwRoomList.Columns10.Visible = false; button2.En

21、abled = false; btnDel.Enabled = false; catch (Exception ec) var ms = new MessageShow(this); ms.Show("查寻宾馆,数据库读取出错." + ec); private void button2_Click(object sender, EventArgs e) 价格一栏中如果不是输入的数字产生异常 try double y = double.Parse(one_price.Text); if (one_price.Text.Trim() = "")价格一栏中如果

22、没有输入东西 var ms = new MessageShow(this); ms.Show("你没有输入单价。"); else if (int.Parse(lblCurrentP.Text) > 0) var ms = new MessageShow(this); ms.Show("当前房间有人,暂时不能修改"); else var room = new Room(); room.RoomId = int.Parse(roomid.Text); room.CurrPeople = int.Parse(lblCurrentP.Text); var

23、rt = new RoomType(); rt.TypeName = cbxroomTYpe.Text; room.RoomTpye = rt; room.Price = double.Parse(one_price.Text); room.Tv = tv3.Checked ? 1 : 0; room.Tel = te3.Checked ? 1 : 0; roomp = co3.Checked ? 1 : 0; room.Toil = to3.Checked ? 1 : 0; room.Aircondtion = air3.Checked ? 1 : 0; room.Rstate = curr

24、e.Checked ? 1 : 0; room.Remark = txtRemark.Text; room.BedNumber = int.Parse(comboBox4.Text); int result = room.UpdateRoom(room); if (result = 1) var ms = new MessageShow(this); ms.Show("修改成功"); DataTable dt = room.GetRoomList(); dgwRoomList.DataSource = dt; else var ms = new MessageShow(th

25、is); ms.Show("不对头"); catch (Exception en) var ms = new MessageShow(this); ms.Show("你的价格输入不正确。" + en); private void dgwRoomList_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) 获取roomid DataGridViewRow selectItem = dgwRoomList.SelectedRows0; MessageShow ms = new Mes

26、sageShow(this);ms.Show(selectItem.Cells.Count.ToString(); MessageShow ms = new MessageShow(this);ms.Show(selectItem); roomid.Text = selectItem.Cells0.Value.ToString(); lblCurrentP.Text = selectItem.Cells2.Value.ToString(); cbxroomTYpe.Text = selectItem.Cells1.Value.ToString(); one_price.Text = selec

27、tItem.Cells11.Value.ToString(); tv3.Checked=selectItem.Cells4.Value.ToString()="1"?true:false; te3.Checked = selectItem.Cells5.Value.ToString() = "1" ? true : false; co3.Checked = selectItem.Cells6.Value.ToString() = "1" ? true : false; to3.Checked = selectItem.Cells7.V

28、alue.ToString() = "1" ? true : false; air3.Checked = selectItem.Cells8.Value.ToString() = "1" ? true : false; curre.Checked = selectItem.Cells10.Value.ToString() = "1" ? true : false; txtRemark.Text = selectItem.Cells9.Value.ToString(); button2.Enabled = true; btnDel.En

29、abled = true; private void btnDel_Click(object sender, EventArgs e) if (MessageBox.Show("系统将会永久的删除,确认删除吗?", "确定?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK) if (int.Parse(lblCurrentP.Text) > 0) var ms = new MessageShow(this); ms.Show("当前房间有人,

30、暂时不能修改"); else var room = new Room(); int result = room.DelRoomById(roomid.Text); if (result = 1) var ms = new MessageShow(this); ms.Show("删除成功"); DataTable dt = room.GetRoomList(); dgwRoomList.DataSource = dt; else var ms = new MessageShow(this); ms.Show("不对头"); else4.3.2 入

31、住管理当前台接受客户入住需求后,根据客户需求信息查询是否有合要求的客房,如有,则登记客户信息,进行入住。下面两个图分别为客房查询截图和入住登记截图。图4.6 客房查询图4.7 客户入住登记主要程序设计如下:public bool blmc = true; true 表示是查寻,而false表示是主页面传过来的数据 public bool customerin = true; 客人来了租房 private bool error_in = true; public int index; public rentmanage(int index) blmc = false;InitializeComp

32、onent();this.index = index; string str =string.Format("select 房间号= room.roomid,房间类型= room.roomtype,当前该房间已住人数= currPeople,当前还可住人数= bedNumber-currPeople ,你的床位号为 =currPeople+1 , 价格为 =price from room where roomid=0", index); DataTable dt = DBhelper.FillTable(str, CommandType.Text); 执行得以数据放在表格中

33、 数据绑定到页面的文本框 if (dt.R 数据绑定到页面的文本框 if (dt.Rows.Count = 0) MessageBox.Show("产生错误 。请联系管理员。"); else groupBox8.Enabled = true; button1_clickin(); tb_inroom_customer.Enabled = true; tb_inroom_customerid.Enabled = true; button4.Enabled = true; customercome.DataSource = dt; tx_inroomid.DataBinding

34、s.Add("text", dt, "房间号", false); tx_inroom_bednumber.DataBindings.Add("text", dt, "你的床位号为", false); tb_inroom_rent.DataBindings.Add("text", dt, "价格为", false); 设置为只读 tx_inroomid.ReadOnly = true; tx_inroom_bednumber.ReadOnly = true; tb_inroo

35、tb_inroom_rent.ReadOnly = true; customerin = false; 标志位 public rentmanage() blmc = true; InitializeComponent(); public void button1_clickin() customercome.DataSource = "" tb_inroom_customer.Text = "" tb_inroom_customerid.Text = "" tx_inroomid.DataBindings.Clear(); tx_in

36、room_bednumber.DataBindings.Clear(); customercome.DataSource="" tx_inroomid.DataBindings.Clear(); tx_inroomid.Text = "" tx_inroom_bednumber.Text = "" tx_inroom_bednumber.DataBindings.Clear(); tb_inroom_rent.DataBindings.Clear(); tb_inroom_rent.Text = "" privat

37、e void button1_Click(object sender, EventArgs e) 当客人租房时查找空房 blmc = true; try lb_inroom_error.Text = "" button1_clickin(); 如果不是第一次执行就移出绑定控件 string check = "" string cob_roomtypestr = cob_roomtype.Text; int tv, tel, comp; tv = tel = comp = 0; check = string.Format( "select 房间号

38、= room.roomid,房间类型= room.roomtype,当前该房间已住人数= currPeople,当前还可住人数= bedNumber-currPeople ,你的床位号为 =currPeople+1 , 价格为 =price from room where "); if (all2.Checked) check += string.Format( " tv=1 and tel=1 and comp=1 and toil=1 and aircondtion=1 and rstate=1 and bedNumber>room.currPeople and

39、roomtype='0'", cob_roomtypestr); else if (tv2.Checked) check += string.Format(" tv=1 and "); if (te2.Checked) check += string.Format(" tel=1 and"); if (co2.Checked) check += string.Format(" comp=1 and "); if (to2.Checked) check += string.Format(" toil=

40、1 and "); if (air2.Checked) check += string.Format(" aircondtion=1 and "); check += string.Format(" rstate=1 and bedNumber>room.currPeople and roomtype='0'", cob_roomtypestr); try DataTable dt = DBhelper.FillTable(check, CommandType.Text); 执行得以数据放在表格中 数据绑定到页面的文本框

41、if (dt.Rows.Count = 0) MessageBox.Show("没有服从条件的."); else button4.Enabled = true; customercome.DataSource = dt customercome.DataSource = dt; tx_inroomid.DataBindings.Add("text", dt, "房间号", false); tx_inroom_bednumber.DataBindings.Add("text", dt, "你的床位号为", false); tb_inroom_rent.DataBindings.Add("text", dt, "价格为", fa

温馨提示

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

评论

0/150

提交评论