1、本科毕业论文(设计)题 目: 酒店客房预定管理系统-客房及系统管理 摘要随着人员流动规模的不断扩大,宾馆数量的急剧增加,有关酒店管理的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有酒店客房预定管理系统来提高客房管理工作的效率。通过本系统,可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。本次酒店客房预定管理系统设计利用JSP语言和myeclipse、mysql开发工具来开发。该系统具备了酒店客房管理和会员管理的基本功能,可以满足酒店客房系统管理基本要求,包括增加、修改和删除等功能,能根据管理员的需求,快捷方便的进行管理。关键词:酒店,信息,语言ABSTRACTWith th
2、e constant expansion of the movement of persons, the number of hotels increased dramatically, the amount of information about the various hotel management has also been doubled. Given the large amount of information, you need to have hotel room booking management system to improve management efficie
3、ncy. Through this system, you can do the standard management information and quick queries, thereby reducing management workload.The hotel room reservation management system designed to take advantage of JSP language and myeclipse, mysql development tools to develop. The system has a hotel managemen
4、t and membership management, basic functions, meet the basic requirements for hotel rooms management system, including add, modify and delete functions, according to the administrators needs, fast and convenient to manage.Keyword: hotel, information, language24目录1.绪论11.1研究背景11.2设计思想11.3课题意义12 项目概述32
5、.1课题简要说明32.2可行性研究32.2.1经济可行性32.2.2技术可行性32.2.3运行可行性32.2.4时间可行性42.2.5法律可行性43编程工具介绍53.1Myeclipse技术53.2MySQL技术54总体设计74.1数据库概念结构设计74.2数据库表结构设计94.3数据库结构的实现95详细设计及实现115.1系统功能分析115.2用户登录模块的实现115.3系统登陆的主界面125.4客房管理135.5会员管理155.6剩余客房165.7房间占用信息186系统测试206.1功能测试206.2性能测试206.3测试结论20总结21致谢22参考文献231.绪论1.1研究背景随着人员的
6、流动规模的不断扩大,宾馆数量的急剧增加,有关客房管理的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有酒店客房订购管理系统来提高客房管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。传统手工的客房信息管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了客房信息管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。酒店客房管理系统对宾馆加强客房信息管理有着极其重要的作用,就一所客房数量较大的宾馆来说,他的设计内容非常复杂而且繁多,比如拥有客房信息管
7、理、客房类别信息管理、预定信息管理等功能,而且设计的模块也很多,比如信息统计模块等等。1.2设计思想本系统采用自顶向下逐步求精的设计程序过程和方法,对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次去解决。这样逐层、逐个地进行定义、设计、编程和测试,指导所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。自顶向下的方法设计时,首先是对所设计的系统要有一个全面的理解,然后从顶层开始,连续的逐层向下分解,起到系统的所有模块都小到便于掌握为止。应用软件的编程工作量极大,而且要经常维护、修改、如果编写程序不遵循真确的规律
8、,就会给系统的开发、维护带来不可逾越的障碍。采用自顶向下的设计能从总体上理解和把握整个系统,而后对于组成系统的各功能模块逐步求精,从而使整个程序保持良好的机构,提高软件开发的效率。1.3课题意义随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用。它已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。而且,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不等
9、不开发适合自己特殊需求的软件。今天,计算机已经成为我们学习和工作的得力助手;计算机的价格已经十分廉价,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有一下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以计生许多资源; 第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感信息更加的安全,等等。我作为一个计算机应用的本科生,希望可以在这方面有所贡献。我希望用我四年所学编制出一个实用的程序。2 项目概述2.1课题简要说明随着酒店的规模不断扩大,有关酒店客房预定各种信息也成倍增长。面对庞大的信息量,有必要开发酒店客房管理系统来提高管理工作
10、的效率。今天我们使用计算机对酒店客房预定于订购信息进行管理,具有手工管理所无法比拟的优点。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,有效地提高工作效率。2.2可行性研究该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性等方面进行分析。2.2.1经济可行性开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得因此开发成本较低。而引进使用本系统后,与传统方式相比,具有效率高、成本低、质量高的特点,可以节省不少人力物力及财力。所以,从经济的角度来看
11、,该系统可行。2.2.2技术可行性技术可行性需要考虑现有的技术条件能否顺利完成开发工作,软硬件配置是否满足开发的需求等。本网站用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能够满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对成熟,故软件的开发平台成熟运行,它们速度快、容量大、可靠性高、价格低,完全能满足系统的需求。2.2.3运行可行性运行可行性是对组织结构的影响,现有人员和机构环境对系统的适应性及人员培训不从计划的可行性。满足信息化技术已经相当普及,各类操作人员水品都有相当的高度,所以在运行上是可行的。本系统的开发,主要是对数据库的处理,包括数据的收集,
12、数据的变换及数据的各种输出。采用JSP+MYSQL技术体系,已无技术上的问题。2.2.4时间可行性从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。 2.2.5法律可行性所有的技术资料都为合法的,开发过程中不存在知识产权的问题,未抄袭任何网站,不存在侵犯版权的问题等等。 综上所述,本系统的开发在技术上,从经济上,从法律上,从时间上,从运行上都是完全可行的。3编程工具介绍3.1Myeclipse技术 Myeclipse 是一个十分优秀的用于开发java,j2ee的eclipse插件集合,myeclipse 的功能非常强大,支
13、持也十分广泛,尤其是对各种开源产品的支持非常不错。Myeclipse 企业级工作平台是对eclipseide的拓展,利用它我们可以在数据库和javaee的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的javaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持html,struts,jsp,css,javascript,hibernate.Myeclipse 是一个十分优秀的用于开发java,j2EE的Eclipse插件集合,myeclipse的功能非常强大,支持也非常广泛,尤其是对各种开源产品的支持十分不错。Myeclipse目前支持java serv
14、let,ajax,jsp,struts,hibernate等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。根据官方最新消息,MyEclipse 2013 已经正式发布! MyEclipse 2013支持HTML5、JQuery和主流的javascript库。随着myeclipse2013支持html5,你可以添加音频、视频和api元素到你的项目,从而为移动设备创建复杂的web应用支持。你甚至还可以通过html5可视化设计。同时,随着新款软件支持jquery,你可以通过插件提升性能,并添加动画效果到设计中。对于myeclipse 的不同版本我们需要
15、了解,myeclipse 5.0 更智能、更快捷更便宜的J2EE工具的新版本的诞生。他的价格对于个人还是企业开发人员来说都是非常有吸引力。这是j2EE ide市场一个重量级的选手。通过添加uml双向建模工具。总之,myeclipse 5.0继续为业界提供全面的产品。Myeclipse 7.0的发布意味着我们不需要再配置tomcat以及服务器了,你所需要的仅仅是安装myeclipse7.0。7.0发行版包括在6.6版本基础上对bug的修复和功能的增强。提供的支持很多,包括:Eclipse 3.4.1/Ganymede、RESTweb服务、新的myeclipse操作板、spring工具集更新、集成
16、Manven2、open JPA支持、高级javascript工具、专业的jsdt实现、报表工具加强、jsf和ICEfaces工具更新。3.2MySQL技术MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的
17、开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。这导致了一个使用几乎和mSQL一样的API接口的用于他们
18、的数据库的新的SQL接口的产生,这样,这个1API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。MySQL这个名字是怎么来的已经不清楚了。基本指南和大量的库和工具带有前缀“my”已经有10年以上,MySQL的海豚标志的名字叫“sakila”,代表速度、力量、精确,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的
19、名字。2008年1月16号MySQL AB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余。即使用Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不
20、用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。4总体设计4.1数据库概念结构设计得到数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以得出它们之间的关系,为以后的逻辑结构设计打下基础。数据库是信息系统的心脏,是信息资源开发和利用的基础。建立数据库是系统设计中一项相当重要的任务,数据库设计的好坏直接影响到系统的质量。在设计系统数据库时,应该遵循以下几个原则:通用性原则。数据共享不仅仅局限于“数据共用”,还应该满足:数据库不依赖与各个子系统,由各个子系统共用,各个子系统的应用程序采用通用的数据操作语言调用数据。数据库必须具有良好的通用性,也就是数据具有透明性,数据域
21、程序严格分离,对数据的增加、修改或删除等不需要修改程序。因此在进行数据库设计的时候,必须对数据给狗进行详细的分析、设计,考虑所有可能出现的情况,集中分析处理具有统一模式的数据组织结构,也可以单独处理特殊的情况。一致性原则。在酒店客房管理信息系统中,存在大量的数据信息,这些信息除了各子系统内部特有的信息外,还有大量的某几个子系统共有的信息,这样就形成了数据交叉的现象。这不仅造成大量的数据重复,而且难以统一更新,产生数据混乱的现象,导致数据的一致性和唯一性难以保证。为了保证数据的一致性和唯一性,数据库必须统一管理。同时,为了尽量减少由于数据的不一致性所造成的损失,所开发的软件应包含数据的一致性校验
22、功能,用户可以在特定时间段内进行一致性校验,来避免某些数据存在冗余或者不一致。安全性原则。通过设置使用权、使用范围、存取权限等操作权限,防止对数据库的非法使用,通过制定完备的数据备份方案,避免数据的毁坏或丢失。此外,为进一步保证数据库的安全可靠,在管理上实行专人负责、提议集中管理也是对数据的安全性起着至关重要的总用。这个实例根据上面的设计规划出的实体有:member、type、room、systemadmin(下划线部分为主键)。(1)member:identifier,name,sex,age,phonenum,level(2)type:id,name,price(3)room:name,i
23、sUsed,type,days,startDays,level (4)systemadminusername,password1、会员:包括identifier、name等属性,具体会员实体E-R图如图4-1。图4-1会员E-R图2、客房类别:包括id、price等属性,具体客房类别实体E-R图如图4-2。图4-2客房类别E-R图3、客房:包括name、isUsed等属性,具体客房E-R图如图4-3。 图4-3客房E-R图4、管理员:包括username、password属性其E-R图如图4-4。 图4-4管理员E-R图4.2数据库表结构设计本系统用到的数据库包含以下的几个表 :member、
24、type、room、systemadmin表。1、 Member表:记录了会员的身份证,姓名,性别,年龄,手机号,打折信息。如表4.1。表4.1member字段名称数据类型长度identifiervarchar255namevarchar255sexvarchar255ageint4phonenumvarchar255levelvarchar2552、Type表:记录了客房的类型编号和客房类型名。如表4.2所示。表4.2type字段名称数据类型长度idvarchar255namevarchar255priceint43、room表:记录了客房的客房名称,客房类型,是否占用,每日租金,起始时间,
25、天数等信息。如表4.3。表4.3room字段名称数据类型长度namevarchar255isUsedvarchar255typevarchar255daysInt4startDayvarchar255levelvarchar2554、systemadmin表:记录了管理员的用户名和密码。如表4.4表4.4systemadmin字段名称数据类型长度usernamevarchar255passwordvarchar2554.3数据库结构的实现经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在mysql数据库系统中细线这个逻辑结构。利用mysql数据库系统中的创建命令实现这个逻
26、辑结构。Create table member(identifier varchar(255) primary key,name varchar(255),sex varchar(255)age int,phonenum varchar(255),level varchar(255);Create table type(id varchar(255) primary key,name varchar(255),price int);Create table room(name varchar(255) primary key,IsUsed varchar(255),Type varchar(2
27、55)days int,startDay varchar(255),level varchar(255),foreign key (type) references type(id);create table systemadmin(username varchar(255) primary key,password varchar(255);5详细设计及实现5.1系统功能分析宾馆在正常运营中需要对客房资源、顾客信息、结算信息进行管理,系统及时了解各个环节中信息的变更,有利于提高管理的效率。宾馆客房管理主要任务是对客房资源、顾客信息,结果信息进行管理,利于宾馆管理信息系统及时了解各个环节中信息
28、的变更。宾馆客房管理的特点是数据库操作集中在管理员,要及时了解客房资源,满足不同的查询需求。有关客房标准的制定、标准信息的输入、包括标准标号、标准名称、床位数量、客房单价等。客房标准信息的修改、查询。客房标准信息的输入,包括客房编号、客房类型、客房位置、客房单价可备注信息。客房基本信息的查询、修改、包括客房编号、客房类型、客房单价和备注信息等。查询客房信息的查询。订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住时间、折扣和备注信息等。订房信息的修改和查询,包括客房编号,客房种类,客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣和备注信息等。
29、计算信息的输入,包括客房编号、客房种类、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结算日期和备注信息等。5.2用户登录模块的实现 该页面也是整个酒店客房管理系统酒店客房及系统管理。采用username和password文本框,分别用来输入用户名和密码。在此页面采用form表单的形式,提交给处理层数据。如果管理员的用户名和密码正确,则进入到本系统,如果用户名和密码输入的和数据库中的不一样则显示无法登陆。在form表单中采用了onclick事件用来检查用户名和密码是否输入为空的判断,这样增加了本系统的安全性和可靠性。酒店客房管理系统的管理员登陆界面如图5-1。图5-1酒店客房管理系统的管
30、理员登陆界面这是管理员想要进入系统的主界面,管理员必须通过这个界面输入了正确的用户名和密码才能进入到酒店客房管理系统。实现的代码如下:酒店信息管理平台用户名: 密 码: 5.3系统登陆的主界面在这个界面中管理员可以修改自己的密码,管理员可以对客房进行管理,对客房剩余情况进行查询,对客房的使用情况进行查询,对客房的类别进行管理等等。在这里管理员可以进行模块的选择。如图5-2所示。图5-2系统登陆的主界面实现的代码如下:客房管理|客房类别管理|会员管理|剩余房间|客房占用信息| 个人信息 |注销退出| 这是登录管理员进行选择模块,在这里,管理员可以
31、对酒店客房实现不同的操作,进入不同的模块,如进入到酒店类别管理模块,在这里管理员可以对客房类别进行管理,可以对类别进行添加、修改和删除。5.4客房管理管理员可以在这里对酒店客房进行增加、修改和删除。在这里每日租金是自动生成,不能进行修改。可以对房间是否占用信息进行修改。如果占用显示true,如果没有占用显示false,如图5-3所示。 图5-3客房管理实现的代码如下:客房名称类型是否占用每日租金(元)%for(int i = 0;i list.size();i+)Room room = list.get(i);TypeCRUD tCRUD = new TypeCRUD();Type t = t
32、CRUD.queryById(room.getType();out.print();out.print();out.print(room.getName();out.print();out.print();out.print(room.getType();out.print();out.print();out.print(room.getIsUsed();out.print();out.print();out.print(t.getPrice();out.print();out.print();out.print();out.print(修改);out.print();out.print();
33、out.print();out.print();out.print(删除);out.print();out.print();%添加客房以上的代码实现了客房的管理,管理员可以增加、删除和修改客房。在这里管理员可以添加客房,如果输入的客房名称重复,则不能进行添加,这里实现了数据的唯一性。5.5会员管理管理员根据申请会员的信心可以进行添加、修改操作,和删除会员,在这里,管理员添加的会员的身份证号码不能重复。如图5-4所示。 图5-4会员管理在会员管理模块实现的代码如下:身份证姓名性别年龄手机号码打折%for(int i=0;ilist.size();i+)Member m = list.get(i)
34、;out.print();out.print();out.print(m.getIdentifier();out.print();out.print();out.print(m.getName();out.print();out.print();out.print(m.getSex();out.print();out.print();out.print(m.getAge();out.print();out.print();out.print(m.getPhonenum();out.print();out.print();out.print(m.getLevel();out.print();ou
35、t.print();out.print();out.print(修改);out.print();out.print();out.print();out.print();out.print(删除);out.print();out.print();%添加会员在这个模块管理员可以对会员进行管理,对管理员进行的操作有:增加、修改和删除。对管理员进行增加包括会员的身份证、年龄、性别、年龄、手机号码和折扣信息。5.6剩余客房管理员可以查看剩余房间的情况,当有需要预定房间时,管理员可以查看房间的状态,房间是否被占用。然后才能知道是否可以满足客户的预订需求。如图5-5所示。图5-5 剩余客房实现的代码如下:客房名称类型是否占用每日租金(元)%for(int i = 0;i list.size();i+)Room room = list.get(i);if(room.getIsUsed().equals(false)if(type = null| (type!= null&room.getType().equals(type)TypeCRUD tCRUD = new TypeCRUD();Type t = tCRUD.q