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

下载本文档

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

文档简介

酒店管理系统的设计与实现某酒店的设计与开发管理信息系统目录TOC\o"1-3"\u摘要我摘要 二第1章引言11.1发展背景及意义11.2本系统开发软件介绍1第二章系统功能分析与设计32.1系统功能模块图32.2系统流程介绍3第3章数据库设计53.1系统ER图53.2数据库表5第4章系统实现84.1普通类84.2主程序界面设计94.3客房管理模块104.3.1客房设置管理子模块104.3.2客房查询模块设计114.4客人预订和入住管理124.4.1客人预订管理模块124.4.2新客户注册模块144.4.3客人信息查询模块15结论18参考文献19摘要随着计算机技术在各行各业的广泛应用和取得的惊人效益,酒店管理者也争先恐后地专注于利用先进的计算机技术来管理酒店。与传统的人工管理相比,酒店管理系统显示出其独特的优势:方便、快捷、成本低、效率高。本文主要介绍了开发一个酒店管理系统的分析和设计过程。本系统实现了一个简单的酒店管理系统,在单机环境下运行,实现了最基本最核心的功能。本系统主要功能模块包括操作员登录管理、客房类型设置管理、客房状态查询管理、新客人登记管理、客人预订管理、客人信息管理、客人结帐管理等。为管理人员提供快捷高效的服务,减少人工处理的繁琐和错误,及时准确地反映酒店的工作和经营情况。关键词酒店管理,信息系统,客房管理,客户信息管理摘要_随着计算机技术在各个领域的广泛应用,已经获得了巨大的收益。所以酒店管理者努力利用先进的计算机技术带来的便利。与传统的人工管理相比,酒店管理信息系统有其独特的优势:方便、成本低、效率高。本文主要描述了一个酒店管理信息系统的分析和设计过程。该系统是一个简单的酒店管理信息系统,运行在单台计算机上,实现了基本和经典的功能。本系统主要功能模型包括管理员登录、房型设计、房屋状态查询、新客户入住、客户保存、客户信息管理、客户退房等。该系统避免了人工管理的复杂性和故障。并能为管理者提供有效的服务,反映酒店的信息。关键词:酒店管理,信息系统,客房管理,宾客信息管理第一章简介酒店管理系统主要管理酒店的客房信息、客人信息、营业情况等。它在提高酒店业的效率和降低成本方面发挥着至关重要的作用。如何设计和使用一个高效的管理系统已经成为软件开发者和管理者共同关心的问题。下面将重点介绍本系统的开发背景、意义、软硬件资源和使用的一些技术。1.1发展背景及意义随着酒店业竞争的日益激烈,酒店管理者也在积极寻求提高酒店效率和效益的方法。由于计算机在其他行业的广泛应用和新的计算机技术的出现,使用计算机代替人工操作管理已成为不可阻挡的趋势。将复杂的客户信息管理和房间管理交给计算机,开发一套适合酒店自身的管理系统成为酒店管理者和开发者关注的焦点。一个设计良好、稳健的管理体系是企业获得最佳效益的重要因素。一个高效的管理系统可以更快、更准确地反馈酒店各方面的情况和信息,也可以最大程度地吸引顾客。更大的利益。1.2本系统开发软件介绍本系统的开发基于.NET环境。C#是从C和C++演变而来的简单、面向对象和类型安全的新编程语言。因为是面向对象的,所以在编程中自定义类来满足开发者的不同需求非常方便。C#几乎综合了当前所有高级语言的优点。主要特点是简洁的语法和精心设计的面向对象设计,因此易于学习。此外,该开发工具还提供了开发Windows程序的平台。它是一个可视化开发工具。开发者可以根据需要从控件库中拖放控件,或者自定义控件来实现各种功能。它在一定程度上简化了程序员的工作。除了语言环境,还使用了SQLServer2000。该数据库管理系统是最优秀和最常用的DBMS之一。它提供了良好的安全和恢复措施,可以满足总则系统安全需求。适用于中小型程序的开发,为系统开发者提供良好的数据库服务。在SQLServer中,使用了T-SQL语言,它提供了标准的SQL命令。由于SQL语言功能丰富、语言简洁、使用方式灵活,程序员在编程中可以很方便地使用SQL语言进行数据库操作。操作。第二章系统功能分析与设计管理系统应实现基本的酒店管理操作。其主要功能模块包括运营商登录、新客人登记、客房预订、预订转移、房间设置、客户信息查询、客户结账等。同时,部分功能模块可能包括子模块,如客户资料查询包括所有客人数据查询和内部客人数据查询。本章重点分析各个功能模块的功能和设计。2.1系统功能框图图2-1是酒店管理系统的功能框图。图2-1酒店管理系统功能模块图图2-1酒店管理系统功能模块图2.2系统流程介绍在这个系统中,酒店客人可以通过两种方式入住酒店。客人可直接到前台办理入住手续并在前台登记。前台工作人员会根据客人需求进行房间查询,登记客人信息,客人交纳住房押金后即可入住。或者,客人可以提前预订房间。前台服务人员通过对预定房间的查询和预定客人的要求,为预定的客人安排客房并设置预定号。客人抵达酒店后,支付押金即可入住。酒店管理层可通过系统账户提醒系统查询客人的押金情况。根据经理的操作,系统可以统计当时入住客人的押金金额,以便经理知道哪个客人的押金不足,从而提醒客人续订押金。客人延长逗留时间时,可注入额外押金。当客人退房时,经理可以通过系统处理资金。根据客人的入住时间,客人的实际消费金额以与客人同房的单价计算。客人在收取客人应付的费用后可以退房并离开。不同的经营者拥有不同的经营权。本系统共有三种操作人员:系统管理员、接待员和经理。系统管理员可以使用系统的所有功能,如修改房间状态、更新房型、设置房间价格等,而前台接待员只能进行客户预订、入住等操作。管理人员可以查询会计信息等。所有操作人员可以更改个人信息和登录密码等。第3章数据库设计数据库设计是系统设计中最重要的部分。数据库设计是否合理直接影响程序设计,起着至关重要的作用。该系统是在对酒店行业进行深入调查后设计的。本章主要介绍数据库是如何设计的,以匹配数据库中每个表的角色和内容。3.1系统ER图数据库应该在正式编码实施之前设计好,这样在编码过程中数据库就不会被修改。ER方法是描述现实世界概念结构模型的有效方法。图3-1显示了系统的ER图。图3-1系统E-R图图3-1系统E-R图3.2数据库表本系统使用的数据库是HotelMS。根据上面的ER图分析,我在数据库中定义了7个表和2个视图。由于本系统管理酒店的客房、客人、管理员等信息,数据库表很多,所以列出了所有的表及其功能,以及客人入住状态表、客人数据表、房间等数据库表列出状态表。更重要的是,这些表格将在下面详细描述。表3-1显示了数据库中所有的表名、视图及其功能。表3-1数据库中的所有表表名评论管理员该表为操作员登录表,定义了操作员的用户名、密码和权限等。HGLive此表为客户签到表,主要记录客户的签到信息客人此表为主客信息表,主要用于客人第一次入住时使用HRGuest此表为客人信息表,记录了所有客人的所有详细信息HR身份该表为房间情况表,记录了所有房间的详细信息房间此表为房间设置表,记录了所有房型及其价格HShedule此表为客人预订表,记录了所有客人的预订信息视图1此视图是HGLive和HRIdentity之间连接的单个字段,在客人结账和离开商店时使用视图2此视图是HGLive和HRGuest连接起来的一个单独字段,用于查询客人信息本系统主要管理客房信息和客人入住信息,下面列出一些重要的表格。表3-2为客户占用表。表3-2客户入住表字段名称数据类型长度是否为空首要的关键HG帐户varchar50不是的HGL房间号varchar50不是的HGLcheckin约会时间8不不HGL结账日期时间_8不不HGLmoney整数4不不HGL小时字符4不不HGLsum整数4不不HGL价格整数4不不此表为客户入住信息表,其中的字段分别代表客户的房号、入住时间、退房时间、支付金额、是否为时薪房、房数、标准房间的价格。该表主要记录客户的入住信息。表3-3是客户数据表。表3-3客户数据表字段名称数据类型长度是否为空首要的关键HG帐户V弓50不是的名字V弓50不是的哈姆纳姆V弓50不是的性别字符_10不不隐藏V弓50不不海蜇V弓50不不生日日期时间_8不不哈德尔V弓50是的不哈敏V弓50不不登录时间日期时间_8不不H型V弓50不不六边形varchar50是的不该表是从数据表。表格中的字段代表客人、客人、房间号、客人性别、文件类型、文件、出生日期、地址、登记员、登记时间、客人类型和备注。该表包含所有客人的详细信息,其中客人、客人和门牌号为主键,它们唯一标识一条记录。表3-4为房间情况表。表3-4房间情况表字段名称数据类型长度是空的首要的关键HRIroomnumvarchar50不是的HRRoontypevarchar50不不人力资源定位varchar50不不HRI地板诠释_4不不HRI条件varchar50是的不HRIbedsnum诠释_4不不人力资源网varchar50不不HRIextravarchar50是的不人力资源状况varchar50不不这张表是房间情况表。表格中的字段分别代表房间号、房间类型、位置、楼层号、房间特色、床位数、房间、备注和房间状态。此表中的房间号是主键。这张表主要记录了酒店所有房间的信息。第四章系统实现软件开发的一个重要阶段是编码实现,它是实现系统功能和满足用户需求的重要环节。本系统的开发是用C#语言编写的,里面有很多编程技巧和实现代码。本章主要介绍系统是如何实现的,并详细介绍了一些编程技巧和一些用于数据库操作的自定义类和代码和方法。4.1公开课根据C#语言面向对象的特点,本系统定义了一个操作数据库的公共类,使用其中的方法可以方便地操作数据库。下面是类的定义和部分实现代码。我定义的公共类名是dbmani,它定义了一个静态成员变量admin(主要用于传递参数)和8个方法。下面主要介绍各个方法的作用和一些代码实现。公共SqlConnectionInitSqlConn(){字符串str;str="server=localhost;uid=sa;pwd=123456;database=HotelMS;//连接字符串,表示要连接的数据库SqlConnectionconn=newSqlConnection(str);返回连接;//返回一个数据库连接}//该方法返回一个数据库连接,其中str是一个连接字符串,定义了与HotelMS的连接。以下方法均调用此方法。publicSqlCommandCommand(stringstr){}//该方法返回一个sqlcommand对象,主要用于数据库的插入、删除、更新。publicSqlDataReaderReader(stringstr)//该方法返回一个sqldatareader对象,主要用于快速读取数据库表中的数据。公共整数总和(字符串str){dbmanidb=新的dbmani();//生成对象整数=0;SqlDataReaderrd=db.Reader(str);//这里调用上面定义的方法而(rd.Read()){num+=1;}返回数字;}//该方法是查询数据库中是否有某条记录。如果有这样的记录,则返回的num值大于1,否则为0,方法中的参数为SQL查询语句。公共无效插入(字符串str){dbmanidb=新的dbmani();生成类对象SqlConnectionconn=db.InitSqlConn();//调用方法获取数据库连接。conn.Open();//打开连接SqlCommand命令=新SqlCommand(str,conn);//生成一个sqlcommand对象向数据库中插入一条记录intnum=command.ExecuteNonQuery();conn.Close();//关闭连接}//方法中的参数str为sql插入语句publicvoidDelete(stringstr){}//这是删除一条记录,代码实现与插入类似。publicvoidUpdate(stringstr){}//这个是实现对一条或多条记录的更新操作,代码实现与插入类似。publicvoidadapter(stringsql,stringdatamember,ComboBoxcb){}//这个是实现combobox控件与数据库的绑定,sql为查询语句,datamember为满足控件显示要求的字段.4.2主程序界面设计主窗口菜单包括基本操作、房间系统、信息查询、基本信息、帮助说明等。快捷菜单包括房间状态图、新客户注册、预订管理、客服中心、结账、账户提醒。其中,客房系统包括房态图、预订管理和房态修改。信息查询可以查询所有客户信息和客人信息。基本信息包括房间设置和修改。主菜单使用一个menustrip控件,下面使用的一个tabcontrol包含6个tabpage,每个tabpage实现不同的功能。主窗口菜单如图4-1所示。图4-1窗体主菜单图4-1窗体主菜单下面是登录界面的设计和实现:登录界面上有一个combobox控件,就是操作员用户名。它绑定到数据库。这里的绑定使用了上面公共类中的最后一个方法。任何有权使用该系统的操作员都可以通过输入密码登录。系统。还有一个用于输入密码的文本框控件。通过使用sqldatareader对象,可以匹配数据库中的信息,判断密码是否与用户名匹配。有2个按钮,一个是登录按钮,另一个是注销按钮。单击登录按钮时,将验证用户名和密码。这里使用的代码实现是而(rd.read()){if(rd[1]==this.textbox.text.tostring().trim())休息;yes=true;//其中yes是bool类型的初始值为false}if(yes==false)messagebox.show("密码错误");4.3客房管理模块房间管理模块包括房间设置和房间查询两个子模块。4.3.1房间设置管理子模块这个模块主要是设置房型,是不是小时房,还有房价。这里使用的控件是datagridview。由于该控件可以直观的显示数据库表中所有符合要求的记录,在查询的情况下使用起来非常方便。通过为其配置数据源,自动生成dataset数据集和sqldataadaptor对象适配器,adapter.fill(ds.Hroom)可以方便的在控件中显示数据库内容。同时用文本框输入房型,用组合框选择是否按小时制房间,用两个数值上下控件分别设置按小时房间和非按小时房间的价格.还使用了5个按钮,分别是添加、保存、修改、删除和退出。通过编写代码,上述控件用于在datagridview中显示当前行的内容。这个函数的实现是使用datagridview的一个事件currentcellchanged,其中上面的控件可以绑定到当前行内容。例如this.textbox.text=this.datagridview.currentrow.cells[1].value.tostring().trim();这样就可以在文本框控件中显示当前行的房型信息。添加按钮实现控制量清零,可以在其中输入要添加的房型和价格,保存按钮实现将该信息插入数据库。这里使用公共类中的insert方法,更新和删除代码与插入代码类似。此处还使用的一种方法是在datagridview控件中显示更改的数据库和时间。这个函数是用代码更新datagridview。一个daptor.fill(ds.Hroom);This.datagridview1.update();4.3.2房间查询模块设计通过该模块,您可以查询和设置所有房间的位置、功能、房间状态等信息,帮助管理员更方便地管理房间。同时,您还可以添加和删除房间,修改房间信息。图4-2为模块界面。图4-2客房查询界面图图4-2客房查询界面图这个模块的实现也用到了datagridview控件,和上面房间设置模块的代码实现有些不同。这里使用的代码是:sql="select*fromHRIdentitywhereHRIlocation='"+sql1+"'andHRIfloor='"+sql2+"'";//sql查询语句dbmanidb=新的dbmani();//生成dbmani对象SqlConnectionconn=db.InitSqlConn();//调用方法返回一个数据库连接SqlDataAdapter适配器=newSqlDataAdapter(sql,conn);//生成sqldataadapter对象这里的sqldataadapter对象就是一个适配器。数据集ds=newDataSet();//生成数据集对象adapter.Fill(ds,"HRIdentity");//、将数据库中与查询匹配的记录添加到ds对象中this.dataGridView1.DataSource=ds.Tables["HRIdentity"];//设置datagridview的数据源区别之一是房间过滤功能更难实现。这里使用了两个listbox控件,datagridview用于通过选择房间的位置和楼层数来显示数据库中匹配的记录。这里使用的datagridview控件绑定HRIdentity表来显示表信息,可以通过sql语句来控制查询到的符合条件的记录。查询主楼的所有房间,使用stringsql=”select*fromHRIdentitywhereHRIlocation='”+this.listbox.selecteditem.tostring()+”'”;同时,控件也绑定在这里。Whenarowofthedatagridviewisselected,theinformationinthetablecanbedisplayedinthetextbox,combobox,andnumericupanddowncontrols.绑定代码在datagridview的currentcellchanged事件中实现。4.4客人预订和入住管理该模块为客户信息管理模块,包括三个子模块,即客人预订管理模块、新客户登记模块和客人信息查询模块。4.4.1客人预订管理模块客人入住酒店有两种方式,一种是直接到前台登记,另一种是预约。本节主要介绍客人预订管理模块。订房管理是客人直接到酒店订房或进店前进行预订。操作员将预订信息输入数据库,并在datagridview中显示所有预订信息。每天晚上6点,经营者必须检查预订信息。,为未入住的客人办理入住,未入住的经营者会询问客人是否要取消预订或延迟入住时间。图4.3显示了客人进行预订的界面。图4-3客人预定界面图图4-3客人预定界面图该模块还使用datagridview控件。用法与上述类似。这里我们主要谈谈预订客人的产生。这里我使用00001-99999的格式。实现该功能的代码如下:字符串i="00000";整数索引=0;stringsql="从HShedule中选择*";//sql语句是查询表的第一条记录SqlDataReaderrd=db.Reader(sql);//调用公共类中的方法生成rd而(rd.Read()){i=rd[0].ToString().Trim();//获取第一条记录的内容。休息;//读取一条记录}//这里获取到数据库表HShedule中的第一条记录,也是guest中最大的一条。rd.Close();//关闭rd索引=int.Parse(i)+1;//下一条记录是表中最大值加1string.textboxprenum=”.substring(0,5-index.tostring().length)00000”+this.textBoxprenum.Text=textboxprenum;//显示文本框中的值组合框控件也用于这种形式。组合框是一个下拉菜单。它的项目可以手动添加或绑定到数据库。我在这里使用了两种方法。在“预订房间类型”中,我手动添加了一些项目。同时,客人还可以在抵达时转机办理入住手续。点击“转入入住”按钮进入客人注册页面。它与新来宾注册页面相同。这个公共页面使用一个标签来表明它是“新客人注册”。或者是“预定客人入住”,但参数不同。这里使用的代码是:this.lable.text=HotelMain.addroom;this.lable.findform().text=this.lable.text;//这里的findform()方法是获取控件所在的窗体。4.4.2新客户注册模块新客人登记是指客人直接到前台登记进入店内。客人可以是个人客人或团体。这里的注册就是主客的注册,主客的详细信息插入到HRGuest表中。图4-4为模块接口图。图4-4新客登记界面图图4-4新客登记界面图本模块与其他模块的主要区别和难点在于页面之间的参数传递、数据库表的查询以及checkedlistbox和listbox控件的使用。Checkedlistbox和listbox类似,但是里面的内容是checkedbox,可以有多个内容。我这里使用的checkedlistbox是和数据库绑定的,对应的符合要求的房间号显示在框中。Listbox可以很方便地一目了然地显示box中的所有项目,其中checkedlistbox中每一个选中的内容都会显示在listbox中。我通过声明静态变量解决了传递参数的问题。由于每个windows页面都是一个类,并且类中定义了全局静态变量,其他页面可以很方便的使用或改变页面的数据。数据表的查询主要是各个表之间的连接查询。使用的sql语句很容易出错。还使用了checkedlistbox和listbox控件。由于checkedlistbox中要选择的房间号要显示在listbox中,所以需要编写更复杂的代码来实现这个功能,主要是绑定这两个控件,类似于combobox的绑定。这里的新客户的生成和上面的客人预订的生成类似,但是这里的格式比较麻烦,因为中间的8位以H开头的是当天的日期,后面是客人注册的序列号,比如正如序列号“H02”的含义,正是在2007-05-19这一天,该客户第二个签到。这种形式将更加直观和易于操作。还有一个重要的功能需要实现:在‘添加打开房间’表格中选择添加的房间后,点击‘保存’关闭表格,所选房间的信息会显示到‘新客人查询-in'在表单的datagridview中,所以表单激活后,将房间信息添加到datagridview中。使用的代码是:string[]row={HotelMain.roomnum,HotelMain.roomtype,"No",HotelMain.sprice.ToString(),HotelMain.leave,"1"};//将选中的房间信息放入字符数组this.dataGridView1.Rows.Add(row);//将数组中的数据填充到datagridview中这里有查询客人历史开房记录的功能。这里也用于查询数据库中的内容,然后将查询到的内容填入datagridview中进行展示。4.4.3客人信息查询模块本模块主要展示所有客人的信息:包括主客人和下客人的详细信息,下客人信息可以在客人管理中添加。同时,该模块还可以查询客人信息和所有客人信息。这个功能主要是通过查询和过滤来找到合适的记录并显示在控件中。这个函数的实现比较简单。信息功能。该模块的部分界面如图4-5所示。图4-5客人信息查询界面图4-5客人信息查询界面这里的主要困难之一是从数据库表中读取来宾信息并将其显示在文本框控件中。因为这里实现起来比较麻烦,所以我在数据库设计的时候对记录进行降序排序,用两个按钮一一排序。读出表格中的每一条信息,在这里您可以使用设计规则正确地读取表格中的信息。由于sqldatareader对象只能快速读取数据库表,无法从上一条/下一条记录中读取下一条记录,所以我使用主键及其特性来读取,主要代码如下:dbmanidb=新的dbmani();//生成类对象stringsql="select*fromVIEW1";//查询视图SqlDataReaderrd=db.Reader(sql);//调用公共类方法生成rd对象首次加载此页面时,单击“下一步”按钮,在文本框中显示表格中的第一条记录,如果单击“上一个”按钮,则不显示任何内容。当文本中有内容时,点击‘下一步’按钮,使用字符串变量记下文本框中的文本,取最后5个字符转成int类型,使用索引记下,如果为1,表示当天登记客人查询完毕。如果大于1,则表示当天仍有登记客人。可以使用sql语句:sql="select*fromVIEW1whereHgaccount='";sql+='"+this.textBox1.Text.trim().Substring(0,9);sql+="00000".Substring(0,5-s.ToString().Length)+s.ToString()+"'";//这条sql语句是在视图中查询Hgaccount的记录作为这个值。使用rd读取文本框控件并为其赋值。另一个功能是与客人一起管理。在新的访客注册模块中,已经提到从访客和主访客共享一个。添加slaveguest时,添加到表HRGuest中,房间号、、房间号作为主键。这里用到了页面之间的传递参数,即添加到数据库表中的数据在datagridview中显示。添加成功后,页面自动关闭,下面的‘客户中心’变成活动表单。datagridview更新显示的内容。这是使用的主要代码:dbmanidb=新的dbmani();//生成一个dbm

温馨提示

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

评论

0/150

提交评论