客房管理Visual C++界面设计及编程实现_论文
发布时间:2024-11-21
发布时间:2024-11-21
题目:
本科毕业设计
客房管理Visual C++界面设计及编程实现
学 院: 专 业: 学 号: 学生姓名: 指导教师:
日 期:
二○一一年六月一日
摘 要
随着经济的全球化和社会不断地快速发展,在宾馆住宿的人变得越来越多,而宾馆住宿管理系统能够为宾馆管理人员提供一个快速安全可靠的管理平台,所以宾馆住宿管理系统扮演着越来越重要的角色。
酒店管理系统其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。
本文介绍了宾馆住宿管理系统的开发过程,论文详尽论述了从需求分析、数据库设计,VC++的程序编写,以及最后的程序测试。本宾馆管理系统采用Microsoft Visual C++6.0和SQL Server 2000 数据库作为开发工具。
本系统实现了系统管理员的登录,客房的查询,客户的登记以及客户的结账,基本完成了一个简单的宾馆住宿管理系统。
关键词:宾馆住宿管理系统;登录;查询;登记;结账。
Abstract
With the globalization of economy and society in constantly fast development, people lived in the hotel become more and more. Hotel management system can provide hotel management personnel to provide a quick safe and reliable management platform, so hotel management system to play an increasingly important role.
Hotel management system its development mainly includes the setting and maintenance of database and the programming of the frontend application. The former required establish data consistency and integrality. The data security good database. For the latter requires the application program function complete, easy to use, etc.
This paper introduces hotel management system development process, this paper discussed detail from requirement analysis, database design, programming of the vc + + and the final program test. This system uses Microsoft Visual C++6.0 and SQL Server 2000 takes the development kit.
This system realizes the system administrator login, guest inquires the registration and customers, customers the check-out, basic completed a simple hotel management system.
Key words: Hotel management system; Register; Query; Registration; Check-out
目 录
1 绪论 ...................................................................................................................................... 1
1.1 系统开发背景 ........................................................................................................... 1 1.2 本系统的作用 ........................................................................................................... 1 1.3 系统开发工具 ........................................................................................................... 1
1.3.1 Microsoft Visual C++ 6.0简介 ...................................................................... 2 1.3.2 SQL Server2000简介 .................................................................................... 2
2 系统需求分析 ...................................................................................................................... 4
2.1 需求分析 ................................................................................................................... 4 2.2 功能需求 ................................................................................................................... 4 2.3 系统流程图 ............................................................................................................... 4 3 系统数据库设计 .................................................................................................................. 5
3.1 局部E-R图 .............................................................................................................. 5 3.2 整体E-R图 .............................................................................................................. 7 3.3 数据库表设计 ........................................................................................................... 7
3.3.1 各表设计 ........................................................................................................ 8 3.3.2 关系图 ............................................................................................................ 9 3.3.3 视图设计 ...................................................................................................... 10
4 系统界面设计及代码 ........................................................................................................ 11
4.1 关于MFC ............................................................................................................... 11 4.2 VC++ 6.0访问SQL Server数据库的原理 ........................................................... 11
4.2.1 CDatabase类 ................................................................................................ 11 4.2.2 CRecordSet类 .............................................................................................. 12 4.2.3 记录查询 ...................................................................................................... 12 4.2.4 记录添加 ...................................................................................................... 14 4.2.6 记录修改 ...................................................................................................... 14 4.2.7 直接执行 SQL语句 ................................................................................... 15 4.3 登陆窗口界面及代码 ............................................................................................. 16 4.4 客房信息查询 ......................................................................................................... 17
4.4.1 按房间号查询 .............................................................................................. 17 4.4.2 查询剩余房间信息 ...................................................................................... 19 4.5 顾客信息录入 ......................................................................................................... 20
4.6 入住登记界面 ......................................................................................................... 21 4.7 结算界面 ................................................................................................................. 22 5 系统测试 ............................................................................................................................ 25
5.1 测试目的 ................................................................................................................. 25 5.2 测试记录与运行结果 ............................................................................................. 25
5.2.1 登陆测试 ...................................................................................................... 25 5.2.2 查询房间测试 .............................................................................................. 26 5.2.3 剩余客房信息查询测试 .............................................................................. 27 5.2.4 客户信息录入测试 ...................................................................................... 27 5.2.5 入住登记测试 .............................................................................................. 28 5.2.6 退房测试 ...................................................................................................... 29
6 结束语 ................................................................................................................................ 31 参考文献 .................................................................................................................................. 32 致 谢 ........................................................................................................................................ 33 附录A 数据库各表数据值 .................................................................................................. 34
1 绪论
本系统针对宾馆住宿的一般管理模式,采用基于计算机网络技术的宾馆管理解决方案,按照宾馆的现代化管理要求设计,实现对宾馆住宿的接待,客房,登记,收支情况,空调等服务设施的全面全方位计算机管理。目标在于提高宾馆营业体系的作业效率,提高服务的客户满意度,加强宾馆的市场竞争力,树立良好的企业形象.通过计算机管理,一方面提供给客户快捷准确可靠的服务,另一方面提高宾馆自身的管理水平,及时准确获取营业信息,辅助对市场需求变化的决策[1].
1.1 系统开发背景
随着我国经济的迅速发展,人们的生活水平有了显著的提高,假日经济和旅游经济已成为人们消费的热点。各地也把旅游业当作本地经济发展的重要经济支柱之一,从而促进了宾馆住宿业的快速发展。同时,随着宾馆越来越多,人们的要求越来越高,宾馆住宿业的竞争也愈来愈激烈[2]。
如何利用现代社会赋予人们的新观念、新手段向管理要效益,为宾馆管理注入新的活力,从而在激烈的市场竞争中站稳脚跟,是摆在每个宾馆管理人士面前的重要课题。先进的宾馆住宿管理系统应是将中国多年来宾馆管理积累的成功经验与现代化信息处理技术结合起来,相互呼应,通过完美的功能设置,建立一个自动化管理信息系统,以提高宾馆管理的效率和质量[3]。
宾馆管理系统面对强大的信息量可以轻松的管理,减少了在管理上面物力和人力,有利于宾馆提高工作效率和宾馆效益。面对庞大的信息量,宾馆在正常运营中需要对客房资源、顾客信息、结算信息进行管理,利用宾馆管理信息系统及时了解保个环节中信息的变更,有利于提高管理的效率。通过这样的系统,可以做到信息的规范管理、需要统计和快速的查询,从而减少在管理方面的工作量[4]。
1.2 本系统的作用
本系统实现了一个简单的酒店客房管理。在本系统里,主要是对来宾接待,客房的信息,经营情况以及收银结账的管理。为管理者提供迅速,高效的服务,减免手工处理的繁琐与误差,及时,准确地反映酒店的工作情况,经营情况。
本系统以提供操作简单方便、快捷,易懂易用为开发目标,用户界面设计友好,操作使用方便,同时能保证用户数据的稳定[5]。
1.3 系统开发工具
开发数据库管理信息系统需要选择两种工具,即前台开发语言和后台数据库。本系统运用了Microsoft Visual C++ 6.0作为开发工具,SQL Server2000作为后台数据库。
1.3.1 Microsoft Visual C++ 6.0简介
Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。Visual C++6.0不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
由于C++是由C语言发展起来的,也支持C语言的编译。6.0版本是使用最多的版本,很经典。最大的缺点是对于模版的支持比较差。现在最新补丁为SP6,推荐安装,否则易出现编译时假死状态和有些功能不可用的情况。同时,6.0版本对windows7的兼容性较差[6]。
1.3.2 SQL Server2000简介
SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用[7]。
SQL Server 2000 的特性包括:
(1)Internet 集成。SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能[8]。
(2)可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行
Microsoft Windows 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别[9]。
(3)企业级数据库功能。SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器[10]。
(4)易于安装、部署和使用。 SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序[11]。
2 系统需求分析
本章主要讲述了该系统的需求分析和本系统的基本流程。
2.1 需求分析
随着星级酒店规模的不断扩大,酒店客房间数的急剧增加,客人流动量也在不断成倍增长。面对庞大的信息量,就需要有酒店管理系统来提高客房管理工作的效率。通过这样的系统,我们可以做到信息的规范管理,从而减少了管理方面的工作量。
传统手工的客房管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理,实现了客房管理的系统化、规范化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本[12]。
2.2 功能需求
酒店管理系统主要有以下功能:管理员登陆,客房查询,客人登记,退房结账等,具体为
(1):管理员登陆 :验证管理员的账号密码,修改密码。
(2):客房查询:查询房间号,房间状态,房间价格和房间类型和设备等。 (3):客人登记:登记客人账号,证件号,联系电话等。 (4):退房结账:退房,结账。
2.3 系统流程图
系统流程图如图2.1所示。
图2.1系统流程图
3 系统数据库设计
该系统用SQL Server 2000做后台数据库,本章详细介绍了系统的基本框架。
3.1 局部E-R图
(1)服务员属性图如图3.1所示。
图3.1
服务员属性图
(2)客房属性图如图3.2所示。
图3.2客房属性图
(3)客房类型属性图如图3.3所示。
图3.3客房类型属性图
(4)顾客属性图如图3.4所示。
图3.4
顾客属性图
(5)预订记录属性图如图3.5所示。
图3.5顾客属性图
(6)住宿记录属性图如图3.6所示。
图3.6住宿记录属性图
3.2 整体E-R图
整体E-R图如图3.7所示。
图3.7整体E-R图
3.3 数据库表设计
本节主要讲述了该系统的各个表格及联系。
3.3.1 各表设计
该系统采用了SQL Server2000数据库,数据库名称为宾馆住宿系统.数据库包含以下几个表:住宿记录表、客房表、客房类型表、服务员表、顾客表、预订记录表。如下各图所示。
图3.8服务员表
图3.9客房表
图3.10客房类型表
图3.11顾客表
图3.12预订记录表
图3.13住宿记录表
3.3.2 关系图
对应关系图如图3.14所示[13]。
图3.14关系图
3.3.3 视图设计
本设计中用客房表,客房类型表,住宿记录表和顾客表设计了一个的视图[14],用于客户结算,如图3.15所示。
图3.15为客户结算设计的视图
本设计还用客房表,客房类型表设计了一个视图用与房间信息的查询如图3.16所示。
图3.16为房间信息查询设计的视图
4 系统界面设计及代码
本系统采用VC++高级语言的MFC类开发前台界面。
4.1 关于MFC
MFC,微软基础类(Microsoft Foundation Classes),同VCL类似,是一种Application Framework,随微软Visual C++ 开发工具发布。目前最新版本为10.0(截止2011年3月),并且发布了中文版。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外[15]。
MFC 应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。MFC 提供了MFC AppWizard 自动生成框架。
Windows 应用程序中,MFC 的主包含文件为"Afxwin.h"。
此外MFC的部分类为MFC/ATL 通用,可以在Win32 应用程序中单独包含并使用这些类。
由于它的易用性,初学者常误认为VC++开发必须使用MFC。这种想法是错误的。作为Application Framework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32 程序设计[9]。
4.2 VC++ 6.0访问SQL Server数据库的原理
MFC是 Microsoft Foundation Class(微软基础类库)的缩写,它的设计目标是简化开发人员的工作。MFC 使开发人员创建基于 Windows 的应用程序,而不必掌握下层的Windows体系结构。由于数据库应用程序是管理数据的重要方面,Microsoft开发了 ODBC API的封装程序,为 ODBC编程提供了一个面向对象的方法。MFC对 ODBC的封装主要是开发了 CDatabase类和 CRecordSet类[16]。
4.2.1 CDatabase类
CDatabase类用于应用程序建立同数据源的连接。 CDatabase类包含一个 m_hdbc变量,它代表了数据源的连接句柄。如果要建立 CDatabase类的实例,应先调用该类的构造函数,再调用 Open 函数,通过调用,初始化环境变量,并执行与数据源的连接。关闭数据源连接的函数是 Close。
CDatabase类提供了对数据库进行操作的函数,为了执行事务操作,CDatabase类提供了BeginTrans 函数,当全部数据都处理完成后,可以通过调用 CommitTrans 函数提交事务,或者在特殊情况下通过调用 Rollback函数将处理回退。
CDatabase 类提供的函数可以用于返回数据源的特定信息,例如通过 GetConnect 函数返回在使用函数 Open 连接数据源时的连接字符串,通过调用 IsOpen 函数返回当前的CDatabase实例是否已经连接到数据源上,通过调用 CanUpdate函数返回当前的