1、目录 第 1章 绪 论 .2 1.1 选题背景 2 1.2 选题意义 2 1.3 总体目标 3 第 2章 编程工具介绍 3 第 3章 系统简介 5 4.1数据库概念结构设计 7 4.2 数据库逻辑结构设计 9 4.3 数据库结构的实现 .10 第 5章 宾馆客房管理系统分析 10 5.1 系统的初步调查 .10 5.2 系统的可行性分析 .11 5.2.1技术可行性 .11 5.2.2 经济可行性 .12 5.2.3 管理可行性 .12 5.3业务流程分析 .12 5.4 数据流程分析 .14 5.4.1 数据字典 .14 第 6章 宾馆客房管理系统详细设计 .18 6.1 系统运行环境 .1
2、8 6.2 系统详细说明 .19 6.2.1 系统登录 .19 6.2.2.宾客入住 .21 6.2.2.查询 .27 第 7章 系统测试 31 7.1测试的目的 .31 7.2 测试步骤 .32 7.3 测试方法 .32 7.4 小结 .33 第 8章 开发设计总结 33 8.1 工作小结 .33 8.2 系统展望 .34 8.3结束语 .35 参考文献 .35 第 1章 绪 论 随着社会经济的发展,人们对生活质量的要求越来越高,作为服务之一的 宾馆业也在不断的完善服务体制。它是集餐饮、住宿、娱乐于一体的立体化服 务体系,其中顾客可以随意消费并统一结账;宾馆管理者可及时了解宾馆的全 部运营情
3、况及经营走势,找出运转成本,作为经营决策的依据。只有运用先进 的科学管理手段,利用计算机管理系统才能更好实现这一管理模式。 1 1.1 选题背景 近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管 理水准,已成为宾馆业发展的当务之急。尤其是对于星级宾馆,既需要完成前 台的一些服务工作,还需要完成后台的管理工作。然而,传统的人工管理模式 已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而 使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地 分析和预测。像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水 准几乎接近或达到国际水平。但对占 80
4、%以上的广大中小型宾馆来说,是难以 做到的。因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、 服务等方面具备独到之处。而对宾馆的经营状况起决定作用的是客房的管理。 简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体 会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功 要素。 传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、 财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系 统是各大中小型宾馆所需要使用的一个管理系统。 1.2 选题意义 在飞速发展的信息时代,信息已经成为所有企业的关键资源。宾馆客房管 理信息系统
5、是用来收集、处理、存贮和传播客房、顾客、结算信息,以信息管 理为核心的计算机应用系统。利用宾馆客房管理信息系统中合理的数据库结构 来保存数据信息,及时了解各个环节中信息的变更,通过有效的程序结构来支 持各种数据操作的执行,以提高管理效率,实现宾馆服务的系统化、规范化、 自动化。通过该项目的开发与使用,宾馆可以改善宾馆酒店的管理与运行效率, 提高服务质量,节约开支,提高劳动生产率。 2从而赢得高信誉、强实力、好 效益! 1.3 总体目标 建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要, 增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要, 提高公司管理层对公司经营
6、反馈信息的响应速度。从而大幅度提高工作效率, 提高实施管理的准确性、科学性,使担负管理的工作人员从繁杂的手工劳作中 解脱出来。 快速实现客人入住登记和账务处理,减少客人住店及离店时的等待时间 准确实现客人预订入住的要求,实现有效及有保障的前台系统作业 快速响应住宿客人的有关项目查询要求 实现入住、消费、结账一条龙服务,方便客人在店内的各类消费要求 第 2 章 编程工具介绍 随着多媒体技术和图形图像技术的不断发展,可视化技术得到广泛重视,越来越多的 计算机专业人员和非专业人员开始研究并应用可视化技术。Visual C+是一个很好的可视 化编程工具,使用 VC+ 环境来开发 Windows 应用程
7、序大大缩短了开发时间,而且它的界 面更友好,便于程序员操作。Visual C+自诞生以来一直是 Windows环境下最重要的应用 开发系统之一。 VC+不仅是 C+语言的集成开发环境,而且与 Win32紧密相连,所以,利用 Visual C+可 以完成各种各样的应用程序的开发,从底层软件到上层直接面向用户的软件。而且, Visual C+强大的调试功能也为大型复杂的软件的开发提供了有效的排错手段。 利用 VC+开发数据库: Visual C+6.0提供了多种多样的数据库访问技术ODBC API、MFC ODBC、DAO、OLE DB、ADO 等。这些技术各有自己的特点,但都提供了简单、灵活、访
8、问速 度快、可扩展性好的开发技术。 1简单性 Visual C+6.0中提供了 MFC类库、ATL 模板类以及 AppWizard、ClassWizard 等一系 列的 Wizard工具,用于帮助程序员快速的建立应用程序,大大简化了应用程序的设计过程。 使用这些技术,只需编写很少的代码或不需编写代码就可以开发一个数据库应用程序。 2灵活性 Visual C+6.0提供的开发环境可以使程序员根据自己的设计需要设计界面和功能, Visual C+6.0还提供了丰富的类库和方法,程序员可以根据应用程序的特点进行选择。 3访问速度快 为了解决 ODBC开发的数据库应用程序访问速度慢的问题,Visual
9、 C+6.0提供了新的 访问技术OLE DB和 ADO, OLE DB和 ADO都是基于 COM接口的技术,使用这种技术可以 直接对数据库驱动程序进行访问,这大大提高了对数据库的访问速度。 4可扩展性 Visual C+6.0 提供了 OLE技术和 ActiveX技术。这种技术可以增强应用程序的能力。 使用 OLE技术和 ActiveX 技术可以使程序员利用 Visual C+中提供的各种组件、控件以及 第三方程序员提供的组件来创建自己的程序,从而实现应用程序的组件化。使用这种技术 可以使应用程序具有良好的可扩展性。 Access 是 微软公司推出的基于 Windows的桌面关系数据库管理系统
10、(RDBMS,即 Relational Database Management System) ,是 Office系列应用软件之一。它提供了表、 查询、窗体、报表、页、宏、模块 7种用来建立数据库系统的对象;提供了多种向导、生 成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完 善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据 管理的任务。 Access能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文软件公司), 或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开
11、发应用 软件,而一些不熟练的程序员和非 程 序 员 的 “进 阶 用 户 “则 能 使 用 它 来 开 发 简 单 的 应 用 软 件 。 第 3 章 系统简介 对其中的每一个模块功能: 1:系统管理 启动系统后,管理员必须通过密码登陆。 2:客房信息管理 客房信息管理包括客房标准设置和客房信息设置。客房标准设置可以对客房标准进行 添加,修改和删除。客房信息设置则可以对客房信息进行查询、添加、修改、删除。 3:定房信息管理 员工可以对剩余客房进行信息查询,队客人的定房信息进行查询,或自己添加客人的 定房信息。 4:结算信息管理 客人结算走后,员工可以对结算信息进行添加、修改,并进行查询。 第
12、4章 数据库设计 客房管理系统 系 统 管 理 客 房 信 息 管 理 定 房 信 息 管 理 结 算 信 息 管 理 修 改 密 码 退 出 系 统 设 置 客 房 标 准 设 置 客 房 信 息 查 询 余 房 信 息 添 加 定 房 信 息 查 询 定 房 信 息 添 加 结 算 信 息 修 改 结 算 信 息 查 询 结 算 信 息 数据库是数据库应用程序的核心。数据库结构设计的好坏将直接对应用系 统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储 量,数据的完整性避免在设计中浪费不必要的人力和物力。 9 它是在既定(本系统使用 Microsoft Office Ac
13、cess 2003)的数据库管理 系统基础之上建立数据库的过程。其过程是将现实存在的数据及其应用处理关 系进行抽象,从而形成数据库结构。具体实现时,首先明确用户对数据的需求, 在此基础上,建立数据库的概念模型,概念模型主要是用来反映用户的现实环 境和需求,它独立于具体的数据库管理系统,并且与数据库怎样实现无关。在 建立数据库概念模型之后,要真正实现与数据库管理系统的结合,即能够由既 定的数据库管理系统所支持,还必须进行逻辑结构的设计,在逻辑结构设计阶 段,主要完成建立数据库的逻辑模型,并解决数据的完整性、一致性、安全性 和有效性等问题;最后一个阶段是数据库的物理结构设计,其任务是为系统逻 辑结
14、构模型确定合理的存储结构、存取方法、以及数据表示和数据存储空间分 配等内容,从而得到具体的数据库物理结构。 10 数据库最终是要存储在物理设备上的,数据库在物理设备上的存储结构和 存取方法称为数据库的物理结构,它依赖于给定的计算机系统。 用户的需求具体体现在各种信息的提供、保存、更新和查询等方面,这就要求数据库 结构能充分满足各种信息的输入和翰出。收集基本数据、数据结构以及数据处理的流程, 组成一份详尽的数据字典,为数据库的具体设计打下基础。在仔细分析调查有关宾馆管理 信息需求的基础上,得到如图 1-1 所示的这个系统所处理的数据流程。 顾客登记 订房信息输入 客房信息管理 客房登记 订房信息
15、管理 结算信息输入 结算信息管理 客房信息返回 图 1-1 宾馆管理信息系统数据流程图 针对一般宾馆管理信息系统的需求,通过对宾馆管理工作过程的内容和数据流程分 析,设计如下所示的数据项和数据结构: 客房信息:客房编号、客房种类、客房可容纳人数、客房单价、备注 订房信息,订房编号、客房编号、客房种类、顾客姓名、顾客身份证号码、入住时间、 预住天数、备注等。 结算信息:订房编号、客房编号、客房种类、客房位置、客房备注信息、顾客姓名、 顾客身份证号码、入住时间、折扣、结算时间、备注等。 有了上面的数据流程、数据结构和数据项,就能进行下面的数据库设计。 4.1 数据库概念结构设计 得到上面的数据项和
16、数据结构以后,就可以设计出能够满足用户需求的各种实体,以得出 它们之间的关系,为后面的逻辑结构设计打下基础 这个实例根据上面的设计规划出的实体有;客房标准信息实体、息实体、结算信息实 体。各个实体具体的实体图如下面的图所示: 客房标准信息实体 标准编号 标准名称 床位数量 客房单价 图 4-1 客房标准信息实体图 客房信息实体 客房编号 客房标准 客房单价 4-2 客房信息实体图 订房信息实体 客房信息 顾客信息 入住时间 4-3 订房信息实体图 结算信息实体 客房信息 顾客信息 结算时间 结算金额 4-4 结算信息实体图 客房标准实体 客房登记 客房信息管理 订 房 订房信息管理 结算信息管
17、理 客房结算 4-5 实体之间关系图 4.2 数据库逻辑结构设计 现在需要将上面的数据库概念结构转化为 Access 数据库系统所支持的实际数据模型, 也就是数据库的逻辑结构。宾馆管理信息系统数据库中各个表格的设计结果如下面表格所 示。每个表格表示在数据库中的一个表。表 3-l为客房标准信息表。 3-1 roomtype客房标准信息表 列 名 数据类型 可否为空 说 明 typeid Varchar notnull 标准编号 typename Vaichat notnull 标准名称 bednum float null 床位数量 price float null 单价 表 3-2为客房信息表
18、列 名 数据类型 可否为空 说 明 roomNO varchar Notnull 客房编号 Roomtpye Varchat Notnull 客房种类 Roomposltion Varchat Null 客房位置 Roomprice Float Null 单 价 Putup Varchat Notnull 可否被预定 Roommenu Text Null 备注信息 表 3-3订房信息表 列 名 数据类型 可否为空 说 明 Bookno Vasrchar Notnull 定房编号 Customname Vasrchar Notnull 顾客姓名 Customid Vasrchar Notnull
19、 身份证号码 Rommno Vasrchar Notnull 客房编号 Indate Datetime Notnull 入住时间 Inmemo Text Null 备注 Checkdate Datetime Null 结算时间 Amount Float Null 金额 4.3 数据库结构的实现 经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以 在 Access 数据库系统中实现这个逻辑结构。 第 5章 宾馆客房管理系统分析 系统分析是采用系统的思想和方法,把复杂的对象分解成简单的组成部分, 找出这些部分的基本属性和彼此之间的联系。针对现行宾馆客房计算机管理系 统中存在的问
20、题,为了提高信息采集的迅速性和准确性,利用计算机所具有的 特殊功能处理宾馆客房管理系统中大量复杂的数据,及时输出各种管理信息和 业务信息,为各级人员有效的管理和决策提供有力的依据,提高工作效率和经 济效益,在全面调查的基础上提出了系统的总体逻辑描述。 5.1 系统的初步调查 在信息高度发达的今天,宾馆服务业涉及的各个工作环节已经不再仅仅是 传统的住宿、结算,而是更广、更全面的服务性行业代表。宾馆作为一个服务 性行业,从客房的营销即客人的预订开始,到入住登记直至最后退房结账,整 个过程应该能够体现以宾客为中心,提供快捷、方便的服务,给宾客一种顾客 至上的享受,提高宾馆的管理水平,简化各种复杂操作
21、,在最合理最短时间内 完成宾馆业务规范操作,这样才能令顾客舒适难忘,增加顾客回头率。面对宾 馆业激烈的竞争形势,各宾馆均在努力拓展其服务领域的广度和深度。信息系 统具有广泛的实际应用性。 3虽然计算机并不是宾馆走向成功的关键因素,但 它可以帮助那些真正影响成败的因素发挥更大的效用。因此,采用全新的计算 机管理系统,将成为提高宾馆的管理效率,改善服务水准的重要手段之一。 据我国宾馆业的统计分析表明: 在现代的宾馆服务行业中,由于客户流量增长,传统的管理方法使得办公 人员每天要处理的事务繁多,重复性的工作使其效率较低;各类客户信息收集 不齐全;分类、归档不合理,以至于造成查找困难;保存方式不科学,
22、使得资 料、文件受损,影响使用效果和时间。 针对这种情况,各宾馆管理人员已意识到使用计算机管理信息系统的重要 性,因此他们迫切需要开发一个“宾馆客房管理信息系统”来进行管理工作。 5.2 系统的可行性分析 从宾馆的具体情况出发,经过多方面调研、讨论,本宾馆客房管理信息系 统,从技术上,经济上,管理上均已具备实施的基本条件: 5.2.1技 术 可 行 性 Win2000/NT/XP 操 作 系 统 的 稳 定 性 , 安 全 性 可 满 足 用 户 的 要 求 。 在 数据库应用系统开发中 ,数据库的高效存取是开发人员不变的追求目标 ,而 SQL是实现此目标的捷径。后台的数据库使用 Access
23、,开发工具选 Microsoft 公司的 Microsoft Visual C+ 6.0, 具有良好的升级潜力和可维护性。这些软 件在大型 MIS开发中已被大量应用,技术上都比较成熟,可根据用户需要,十分 方便的增减模块,直观的图形用户界面,简洁的操作流程,无须专业电脑知识 即可迅速上手。 4因此技术上是可行的。 5.2.2 经 济 可 行 性 费用:本系统要求的计算机配置并不高(400M Hz 以上处理器。64M 内存及 以上,硬盘空间 100M以上),设备的安装调试工作简单,PB 软件的价格不高, 操作简单,对用户进行少量的培训工作就可以熟练的使用本系统,因而培训费 用较低。 收益:宾馆前
24、台使用本系统后,提高了核对效能,相对的差错也大大减少; 即工作人员的工作效率大大提高了,工作时间大大节省了,从而间接为宾馆创 造了可观的经济效益,减少管理费用的支出,避免了不必要的人工错误;还提 高了工作人员的素质,有利于管理方式与体制的合理改革,保证宾馆客房管理 的可持续发展。因而在经济上是可行的。 5.2.3 管 理 可 行 性 建立管理信息系统是行业发展的必然要求,宾馆领导对科技的管理非常重 视。使管理和业务流程信息化,是管理信息现代化的第一步。而员工对此更是 表现出极大的热情和期望。因为该系统的实施将很大程度上降低他们的手工作 业量,还会减少他们在工作上的失误,提高工作效率。因此,本系
25、统在管理上 是可行的。 5.3业务流程分析 业务流程分析是对业务功能分析的进一步细化,业务流程分析的结果是给 出业务流程图。业务流程图反映了实际的业务活动。它不仅是系统分析人员进 行更深入系统分析的依据,而且也是系统分析人员,管理人员,业务操作人员, 系统设计人员进行沟通的工具。 5可以直接在业务流程图上拟出能够由计算机 实现的部分,明确系统的边界,使计算机处理与人工业务处理的接口清晰,分 析组织的业务流程是否合理,删除重复的,不合理的环节,明确整个业务流程, 为以后的分析与设计打下良好的基础。 因此,为了能够反映宾馆内部各部门之间的联系程度,其主要业务和他们在 业务过程中所承担的工作。宾馆的
26、业务流程图如图 2.2所示: 查询 追加 押金 报表 报表 房态查询 Fangtaichaxun 历史 单据 续住 选房 确定手牌 退 牌 建立账户 图 2.2业务流程图 通过现行业务流程图对现行系统进行分析,客人流量多,需要的服务多, 致使管理的过程不好控制,效率不高。可以通过计算机来实现前台操作员的一 些业务,让电脑来代为运作,可以提高效率,减轻人的工作量。 本系统的工作就是把传统的管理模式换为人机交互操作,从上图分析可以 明确系统的边界,把不必要的人工操作从系统中删除。首先可以在电脑上实现 房态的查询,了解房间的占用情况,这样可为工作人员减少查询的时间,提高 管理的效率。另外客人可以预订
27、房间,这样就为客人避免了来到本地临时找住 处的麻烦,为客人节省了时间,提高了工作效率,同时也为宾馆带来了一定的 经济效益。如果客人为散客,到前台进行登记,即可入住。如果客人押金不足, 宾馆工作人员可提醒他补交押金,如果他有一些临时消费,可结账也可离店退 房时一同结账。提高了宾馆的管理效率,使得宾馆的组织结构向着扁平化方向 发展,用最少的人力物力作尽可能多的工作。 5.4 数据流程分析 数据流程分析是数据和数据流程分析工作的最后一步,该工作是对系统中 的数据进行输入输出、存储、传递、转换等分析。 6数据流程分析的结果是给 出数据流程图。数据流程图是描述系统逻辑模型的主要工具,作者采取结构化 分析
28、的方法绘制数据流程图。 针对现在宾馆业的发展需求,在业务流程图的基础上,可以得到数据流程 客人 前台登记 预订客房 手牌 入住 点单 消费 结 账 现结 离 店 预订房费 单 当前客户账 单 宿费提醒 图: 图 2.3 数据流程图 5.4.1 数据字典 系统数据字典(DDDate Dictionary)是描述数据流程图中所有数据流、 数据存储、处理功能等卡片的集合。数据字典提供一个可定义的不依赖于应用 程序 的存储区域,用于创建扩展的属性集和描述数据的内容与外观。 7其内容 包括四种条目:数据流,数据元素、数据存储和数据加工。建立完善的数据字典 是对所整理数据的一种分析归档方式,为下一步建立数
29、据库和处理数据做准备。 在系统分析阶段,数据字典有着重要的作用,它包含着系统的详细信息。 一般来说,系统分析人员应把不便于在数据流程图上注明而系统分析应该获得, 对整个系统开发以至将来系统运行与维护时必需的信息尽可能放入数据字典。 数据字典:“数据流”条目 数据流是穿梭于数据加工与外界环境实体间的信息,即流动与数据处理间 的数据。因此,数据流词条不仅要说明数据流的名称,组成等本身的特性,而 且应指明它的来源、去向和流通量等。 数据流 系统名: 宾馆客房管理 编号:1 条目名: 客房信息 别名: 来源:客房基本信息管理 去处:客房基本信息存储 数据流结构: 客房信息=房间号+ 房间类型+房态+价
30、格+营业日期+使用配置 +设置+备注 简要说明:房间的基本信息 编写 李志华 许福明 日期 2012 年 6 月修改记录: 审核 日期 表 5-1 客房管理数据流 数据流 系统名: 宾馆客房管理 编号:2 条目名: 预订信息 别名: 来源:预订管理 去处:预订信息存储 数据流结构: 预订信息=姓名+ 证件+证件号 +联系电话+详细地址+工作单位 +客房类型+操作员 简要说明:预订房间所需要的信息 编写 李志华 许福明 日期 2012 年 6 月修改记录: 审核 日期 表 5-2 预订信息数据流 数据流 系统名: 宾馆客房管理 编号:3 条目名: 住宿信息 别名: 来源:住宿管理 去处:住宿信息
31、存储 数据流结构: 住宿信息=住宿编号+ 证件+证件号 +预住天数+房间号+房间类型 +操作员 简要说明:住宿时需要登记记录的各种信息 编写 李志华 许福明 日期 2012 年 6 月修改记录: 审核 日期 表 5-3 住宿信息数据流 数据字典:“数据元素”条目 数据元素是数据流组成的最小单位,是无法再细分的数据流。它直接反应 事物的某一特征。其描述需要以下信息:数据元素名、类型、长度、取值范围、 相关的数据元素及数据结构。 数据元素 系统名: 宾馆客房管理 编号: 条目名: 房间号 别名: 属于数据流: 客房信息、住宿信息 存储处: 客房基本信息存储、住宿信息存储 数据元素结构: 代码类型
32、取值范围 字符 0000000000-9999999999 (由数字组成的字符串) 简要说明:房间都有唯一的编号。 编写 李志华 许福明 日期 2012 年 6 月修改记录: 审核 日期 表 5-4 房间号数据元素 数据字典:“数据存储”条目 数据存储是数据结构保存的地方。一个数据存储词条应有以 下几项内容:数据存储名、简述、输入数据、输出数据、数 据存储组织、记录数、记录组成。 数据存储 系统名: 宾馆客房管理 编号:D1 条目名: 客房信息 别名: 存储组织 每个房间一条记录 记录数: 主关键字:房间号 记录组成: 项名: 房间号 房间类型 房态 价格 可容纳人数 长度 10 16 10
33、20 10 简要说明: 使用设置和配置为房间内的软硬件设施,用于检查是否有损坏或使用。 编写 李志华 许福明 日期 2006 年 5 月修改记录: 审核 日期 表 5-5 客房信息数据存储 数据存储 系统名: 宾馆客房管理 编号:D2 条目名: 住宿信息 别名: 存储组织 每位客人一条记录 记录数: 主关键字:住宿编号 记录组成: 项名: 住宿编号 姓名 证件 证件号 性别 费用 长度 10 10 10 20 5 10 简要说明: 客户有特殊要求在备注中说明。 编写 李志华 许福明 日期 2012 年 6 月修改记录: 审核 日期 表 5-6 住宿信息数据存储 数据字典:“加工”条目 加工逻辑
34、是对数据流程图中各个基本处理的精确描述。 加工 系统名: 宾馆客房管理 编号:1 条目名: 住宿管理 别名: 输入数据: 客房信息、住宿登记信息 输出数据: 住宿信息 加工逻辑: 1 选择已入住或处于维修状态的房间会有警告提示 2 入住日期自动读取系统时间 简要说明: 编写 李志华 许福明 日期 2012 年 6 月修改记录: 审核 日期 表 5-7 住宿管理加工 加工 系统名: 宾馆客房管理 编号:2 条目名: 结账管理 别名: 输入数据: 住宿信息 输出数据: 消费清单、挂账信息、客房信息 加工逻辑: 1 根据住宿信息以及其他费用结账 2 其他费用在此处添加 3 客人可选择结账方式 简要说
35、明: 结账可以选择多种方式。 编写 李志华 许福明 日期 2012 年 6 月修改记录: 审核 日期 表 5-8 结帐管理加工 第 6章 宾馆客房管理系统详细设计 6.1 系统运行环境 运行环境: a.CPU: 最低 400MHZ b.内存: 64M c.输入输出设备:键盘,鼠标 d.100M以上硬盘空间 e.操作系统:Microsoft Windows 2000 6.2 系统详细说明 6.2.1 系统登录 图 6.1 系统登录程序流程图 运行程序后首先进入程序的主体界面,如下图 单击系统登录按钮,进入系统登录窗口。用户进入系统前,必须通过密码 验证方可进入主窗口界面。 系统登录界面 窗口中主
36、要放置了两个单行编辑框 m_accout,m_pass,以及两个命令按钮。 用户首先在管理员编辑框中输入管理员用户名,然后输入密码。点击“确定” 按钮后,系统自动提取对应操作员的登录密码,与保存在局部变量中的用户所 输入密码进行比对。如果密码不正确,则提示“密码有误!” ;如果密码正确 则进入系统主窗口 main_win。登录代码如下: void CLogDialog:OnOK() / TODO: Add extra validation here UpdateData(true); int i=0; UpdateData(true); if(m_accout=“2012“ CSysDialo
37、g sdlg; sdlg.DoModal(); else i+; AfxMessageBox(“帐户名或密码错误n 请重新输入!“); GetDlgItem(IDC_ACCOUT)-SetFocus(); if(i=3) AfxMessageBox(“输入错误次数太多!“); CDialog:OnOK(); 登录成功后显示宾馆客房管理信息系统操作界面如下图,窗口由四个按钮和一 个下拉菜单组成,主窗口为 main_win,操作界面上所链接菜单为 menu_menu。 主操作界面 6.2.2.宾客入住 点击操作界面的宾客入登记,进入宾客入住登记窗口,主要实现客人个人 资料录入及住房信息录入等功能
38、宾客入住登记窗口 本窗口主要由多个单行编辑框、两个单选框、三个按钮、两个下拉单选框组成,其中入住 时间可自动提取系统时间。点击“空房查询”按钮,可房态,输入客户个人资料和住宿信 息点确定按钮提示登记成功,并返回主操作窗口。此操作的代码如下: void CInroomDialog:OnOK() / TODO: Add extra validation here CDatabase m_database; if(!m_database.Open(_T(“Room“) AfxMessageBox(“数据库打开出错 “); m_set.Open(); CFangSet m_fset; m_fset.O
39、pen(); CString msg,tmsg; char string10; int tag=0; int sel; CTime m_current; UpdateData(true); if(m_lname.IsEmpty() AfxMessageBox(“请输入用户名 “); else if(m_lpersonid.IsEmpty() AfxMessageBox(“请输入身份证 “); else if(m_lroomid=0) MessageBox(“房间号不对“,“客人登记失败“,MB_OK|MB_ICONWARNING); GetDlgItem(IDC_ROOM)-SetFocus(
40、); else if(m_ldays=0) MessageBox(“住宿天数不对“,“客人登记失败“,MB_OK|MB_ICONWARNING); GetDlgItem(IDC_DAYS)-SetFocus(); else while(!m_fset.IsEOF() if(m_fset.m_roomID=m_lroomid) if(m_fset.m_state=“空“) tag=1; else tag=0; break; else m_fset.MoveNext(); /* if(tmp0306|tmp0Delete(); /2 m_set.Close(); /1 点击登记窗口中的空房查询代码
41、可以查询房间的基本信息 双击房间号,可以查询该房间的房间状态(是否有人住) 、房价及可容纳人数,实现此操作 的代码如下: BOOL CFangDialog:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here CString mmsg; mmsg+=“请双击一个房间号!“; m_list.AddString(“101“); m_list.AddString(“102“); m_list.AddString(“103“); m_list.AddString(“104“); m_list.AddSt
42、ring(“105“); m_list.AddString(“106“); m_list.AddString(“201“); m_list.AddString(“202“); m_list.AddString(“203“); m_list.AddString(“204“); m_list.AddString(“205“); m_list.AddString(“206“); m_list.AddString(“301“); m_list.AddString(“302“); m_list.AddString(“303“); m_list.AddString(“304“); m_list.AddSt
43、ring(“305“); m_list.AddString(“306“); m_edit1=mmsg; UpdateData(false); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE void CFangDialog:OnDblclkList1() / TODO: Add your control notification handler code here / UpdateData(true); CSt
44、ring str; CDatabase m_data; if(!m_data.Open(_T(“Room“) AfxMessageBox(“数据库打开出错 “); m_fset.Open(); m_fset.MoveFirst(); m_list.GetText(m_list.GetCurSel(),str); m_croom=(long)atof(LPCTSTR)str); /UpdateData(false); /AfxMessageBox(“0000000000000“); while(!m_fset.IsEOF() if(m_fset.m_roomID=m_croom) /AfxMes
45、sageBox(“11111111111“); m_cstatue=m_fset.m_state; m_cprice=m_fset.m_daycost; m_cpeople=m_fset.m_max; break; else m_fset.MoveNext(); UpdateData(false); m_fset.Close(); m_data.Close(); 6.2.2.查询 点击退出返回客人登记界面,点击确定或取消按钮返回主操作界面。点击查询按钮,进入 到查询界面,如下图: 查询界面功能比较简单,只有四个按钮组成,可以查询住宿信息,收入及客户意见。 A. 查询住宿信息 选择查询住宿信息,
46、进入查询住宿情况界面,如下图: 上图即为查询结果界面,显示房间号,客人姓名及身份证号,入住时间,住宿天数,费用 等信息。实现此操作代码如下: void CAskstateDialog:OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult) NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; / TODO: Add your control notification handler code here int k=pNMListView-iSubItem; Sort(!m_bIsAsc,k); m_Li
47、stCtrl.DeleteAllItems(); m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_ListCtrl.InsertColumn(0,_T(“房间号“),LVCFMT_IMAGE|LVCFMT_LEFT); m_ListCtrl.InsertColumn(1,_T(“姓名“); m_ListCtrl.InsertColumn(2,_T(“身份证号“); m_ListCtrl.InsertColumn(3,_T(“性别“); m_ListCtrl.InsertColumn(4,_T(“入住时间
48、“); m_ListCtrl.InsertColumn(5,_T(“住宿天数“); m_ListCtrl.InsertColumn(6,_T(“费用“); m_ListCtrl.InsertColumn(7,_T(“房间级别“); m_ListCtrl.InsertColumn(8,_T(“备注“); m_ListCtrl.InsertColumn(9,_T(“总人数“); int j; for(j=0;j10;j+) m_ListCtrl.SetColumnWidth(j ,90); /显示所有记录 int i=0; m_pSet.MoveFirst(); do CString s; s.Format(“%d“,m_pSet.m_roomID);