《中小型宾馆住宿管理系统设计课程设计(25页).doc》由会员分享,可在线阅读,更多相关《中小型宾馆住宿管理系统设计课程设计(25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-中小型宾馆住宿管理系统设计课程设计-第 25 页管理信息系统课程设计报告小组大报告系统名称:中小型宾馆住宿管理系统设计班 级: 管理学院工商1 组 长: 组 员: 指导老师: 日 期: 2013 年 5 月9 日 评阅成绩: 教师签名:附件:小组成员任务清单组员任务是否组长 第一阶段 对业务流程现行系统问题提出解决方案第三阶段 系统总体结构设计第四阶段 系统主界面、主程序设计是 第一阶段 系统分析阶段对系统需求和可行性分析第二阶段 数据流程图第四阶段 编制系统使用说明书否 第二阶段 功能结构第二阶段 数据字典第三阶段 系统主要代码设计否 第三阶段 概念结构设计第三阶段 其它详细设计第四阶段
2、系统测试否 第一阶段 数据流程调查第三阶段 系统数据库设计第三阶段 物理结构设计否 第一阶段 了解系统开发背景和对系统功能设计第三阶段 逻辑结构设计、数据库实施第三阶段 登录界面设计否 第一阶段 系统分析阶段系统介绍第三阶段 系统输入输出设计第五阶段 总结否小组成员设计成绩评价组员组长对组员的简单评语评价 做事认真负责良 积极准备做小组工作优 做事认真,有协调能力优 做事踏实良 做事认真有效率良 做事认真,积极良 做事认真负责 良绪 论 随着社会经济的发展,人们对生活质量的要求越来越高,作为服务之一的宾馆业也在不断的完善服务体制。它是集餐饮、住宿、娱乐于一体的立体化服务体系,其中顾客可以随意消
3、费并统一结账;宾馆管理者可及时了解宾馆的全部运营情况及经营走势,找出运转成本,作为经营决策的依据。只有运用先进的科学管理手段,利用计算机管理系统才能更好实现这一管理模式。一 系统调查与分析报告 小组报告一1 系统概况1.1 系统背景客房管理系统是一个宾馆不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,客房管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学不断发展
4、,使用计算机对宾馆客房信息进行管理,具有人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高宾馆客房的管理效率,也是宾馆管理科学化、正规化,与世界接轨的重要条件。随着宾馆规模的不断扩大,客房数量的急剧增加,有关客房的各种信息量也在不断成倍增长。面对庞大的信息量,就需要有客房信息管理系统来提高客房管理工作的效率。 传统手工的客房管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们们可以做到信息的规范管理和快速查询,实现了客房信息管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管
5、理效率,降低了管理成本。1.2 系统介绍实现一个能对宾馆客房租住信息,客人信息,结算信息的管理,实现前台操作流程较方便,清晰,高效的信息管理系统。客房管理系统的主要任务是对宾馆的客房进行管理,使用户能轻松地找到所需要的客房信息,提供订房和退房服务,并对宾馆客房的业绩进行统计。宾馆要想依托计算机网络开展现代化管理,必须首先依据宾馆行业特定的运营方式和工作流程,在实用和可行的前提下,对电脑软件系统要开展的工作提出一些基本要求。这些要求会促使开发者和用户共同去全面深入地分析了解宾馆的运作机制,区分经营项目类别和经营方式,掌握经营的难点和侧重点,从而才能在此基础上设计和开发出既符合宾馆的实际情况,又能
6、充分发挥计算机管理的积极作用,独具特色的管理信息系统。这个系统应该给宾馆的经营带来直接或间接的经济效益,使宾馆能在先进的计算机网络系统的支撑下在管理方面逐步上档次上水平,进一步提高效率和体现宾馆的整体形象。基本要求有: 实现多操作点的信息共享,相互之间的信息传递要准确到位、快捷和顺畅。例如客人在结账时离不开入住时间、餐饮、消费、娱乐、房费、账单的相互关系等多种信息的检索和综合。系统24小时连续可靠运行,对重点业务实施全天候动态监管。宾馆中客人往来是随机的,因此宾馆必须提供24小时不间断的服务。系统维护方便可靠,有较高的安全性,满足实用性、先进性和经济性的要求。实现一个能对宾馆客房租住信息,客人
7、信息,结算信息的管理,实现前台操作流程较方便,清晰,高效的信息管理系统。1.3 系统开发计划这个阶段时间很短,工作内容是通过一段时间的资料收集,然后讨论系统功能需求分析,数据库设计,代码实现,系统测试和文档整理等工作的划分,主要目的是为了便于以后开展工作。该项目产品主要包括程序和文件。所要提交的程序主要有代码和可执行程序;所要提交的文件有设计报告。在本系统的设计过程中,为了克服这些困难,满足管理工作的需要,我们们采取了下面的一些原则。统一各种原始单据的格式,统一报表的格式。删除不必要的管理冗余,实现管理规范化、科学化。程序代码标准化,软件统一化,确保软件的可维护性和实用性。界面尽量简单化,做到
8、实用、方便,尽量满足企业中不同层次员工的需要。1.4 可行性分析目前宾馆客房管理系统在宾馆中已普遍使用,使用该项目的开发研究有很好发展前景。虽然我们们开始的时间较紧迫且相关知识点少,这给项目开发带来一定的困难,但从我们们所具备的系统开发所需的人员、软件、硬件资源和工作环境来说该项目的开发也是应该具有可行性的。(1)经济可行性分析构建管理信息系统的必要性在于传统管理模式的弊端严重影响了我们国宾馆管理现代化的进程以及先进的管理信息系统具有巨大的优势从而可以促进我们国宾馆管理的现代化,而宾馆管理的现代化就是要求管理的高效率,多样化,已经各自数据提取的准确。传统模式的弊端。传统的宾馆管理模式使得宾馆无
9、法保持高效率的管理,现举例加以说明:(1)查询客房的时间长。客房管理者必须一张张地翻阅大量的住宿登记单,寻找符合条件的信息。书写不规范或客人已换房以及电话占线等问题都会使得查询的时间延长。(2)结账容易出现错、跑账。当客人结账离店时,客房管理总台根据客人的明细表,将客人的各种单据一一相加才能结账,这样难免出现错误,造成客人等待时间长。另外,结账时也很容易出现跑账的情况,给宾馆带来经济损失。(3)重要客人不重要。在内部协调与管理方面,当有VIP人住时客户管理前厅部就要填写多联通知单分送各部门,安排放鲜花、水果、总经理名片以及用餐要求等具体事宜。若有一个部门收到信息晚一点,就会把VIP当成普通客人
10、对待,将会造成不利影响。(4)计算审核困难。计算审核是对一天经营情况进行统计、分析和审核,然后以各种报表的形式送交总经理和有关部门并归档。然而在手工管理模式下,每天统计审核需要花很多时间。客房率高时花费在计算机上的时间则更长,因此,审计员大部分时间都花费在做加法上,很少有时间去分析和审计。总的来说,宾馆作业是一个实时系统。如对数据不能进行及时的处理,就会造成走单。从而造成管理上的混乱,给宾馆的经济方面和信誉方面带来损失。同时,宾馆的账务是连续不断的,如果因为一时的障碍而造成了数据的不完整性,对宾馆未来发展计划的制定也会带来负面的影响,而管理信息系统就能解决以上问题。(2)技术可行性分析本系统采
11、用vc+开发的,vc+i是一种应用很广泛、实用且功能很强大的系统开发工具。通过对vc+的探索学习,了解到:在Windows环境下编程的传统方法已经难以胜任。因为传统的结构化编程使用的是面向过程,按顺序进行的机制,这种方法的缺点是编写程序的人员始终要关心什么时候发生什么事情,面对Windows事件驱动的工作方式,处理事件及其可能的组合会是一个非常棘手而且工作量很大的工作。面向对象程序设计立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为自上而下编程的优胜者。它通过给程序加入扩展语句,把函数“封装”进Windows 编程所必需的“对象”中,使得复杂的工作条理清晰,编写容易。一
12、些早期的程序语言如Pascal, Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,仍然要编写大量的代码。而vc+使用“可视化”的编程方法,程序员不必建立对象,利用vc+所提供的可视控件,只要在提供的程序框架中加入完成功能的代码,如选择命令,移动鼠标等,而不必考虑按精确次序执行的每个步骤。在这种机制下,不必编写一个大型的程序,而是建立一个由若干个微小程序组成的应用程序,这些微小的程序可以由用户启动的事件来触发。这样就可以快速创建强大的应用程序而无需涉及不必要的细节。简单地说,“可视化编程”就是使用vc+语言,利用它所提供的可视化控件来创建“对象”,这
13、是一种编程方法的新概念。(3)社会上的可行性近年来,软件产业以年平均超过30%的速度增长,软件和信息技术在国民经济和社会各领域得到广泛应用,成为推动产业结构调整、产业技术改造的重要基础和支撑,极大地推进了我们国信息化建设进程,各个行业目前正处于信息化处理的应用时期,有关的政策法规对企业信息化给予了一个宽松的环境和平台。二、系统需求分析1.功能结构宾馆住宿管理系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上包括客房信息。客房类型信息、客户记录信息、客户信息、员工信息和员工工作信息。各个部分的数据内容又有内在的联系。针对该系统的数据特点,可以总结如下的需求:客房信息包括客房的详细
14、信息客户信息记录客户登记时的详细信息入住信息是客户信息和客房信息之间的关联每个员工信息都对应一个员工类型 每个客房都对应一个员工信息根据以上需求分析,给出以下功能模块图:图1功能模块图2. 数据流程图1业务流程图,如图2.1所示。图2.1 客房管理业务流程图(1)顶层数据流程图,如图2.2所示。图2.2 顶层数据流程图(2)第二层数据流图,如图2.3所示。图2.3 第二层数据流图(3)宾馆开房数据流程图,如图2.4所示。图2.4 宾馆开房数据流程图(4)客户续房数据流程图,如图2.5所示。图2.5 客户续房数据流程图(5)客人退房数据流程图,如图2.6所示。图2.6 客人退房数据流程图3.数据
15、字典数据字典是关于数据信息的集合,即对数据流图中包含的所有元素的定义的集合。1.数据项表3-1.客户(Travellers)信息:表中列名数据类型可否为空说明TnoIntNot null(主键)客户编号TnameChar(10)Not null客户姓名TsexChar(2)Not null客户性别TidChar(20)Not null客户身份证号表3-2. 客房(Rooms)信息:表中列名数据类型可否为空说明RnoInt Not null(主键)客房号Rstyle Char(10)Not null客房类型RpriceInt 客房单价RstateChar(10)客房状态RtelChar(15)客
16、房电话表3-3. 客户住宿(Living)信息:表中列名数据类型可否为空说明Tno Int Not null(主键)客户编号Rno Int Not null(主键)客房号TcomedateDatetime Not null入住日期Tleftdate Datetime Not null结算日期Ttime Int 住宿时间Tamount Int 房费表3-4. 客房物品(Roomitem)信息:表中列名数据类型可否为空说明Rno IntNot null客房号Ritemno Char(10)Not null(主键)客房物品编号Ritemname Char(20)Not null客房物品名称Ritem
17、stateChar(10)物品状态Ritemprice Int 客房物品单价Ritemnum Int 物品数量2.数据结构根据上述系统功能分析和需求总结,设计如下的数据结构数据结构名含义说明客房类型包括客房类型(单间、标间)、客房信息包括客房编号、客房价格、客房所属类型、负责人编号客户信息客户身份证号、客户姓名、客户性别、客户年龄、联系方式、客房编号登记信息客房编号、客户身份证号、入住日期、退房日期、账目结算员工信息员工编号、姓名、年龄、职位、联系方式、工资、所属部门员工类型职位、底薪、工作时间客房物品客房剩余物品、客房所需物品等3.数据流数据流名称:客房登记信息位置:宾馆登录处理说明:“登记
18、”“查询”“反馈”数据流名称:退房登记信息位置:登录处理宾馆人员说明:显示客户消费各项信息数据流名称:宾馆员工管理位置:宾馆员工信息说明:显示员工各项基本信息数据流名称:客房物品管理位置:管理人员宾馆仓库管理人员保护说明:指定保护物品,保障宾馆各种所需物品的供求4.数据存储数据存储名称:客户登记表输入:客户姓名、身份证号、房间号输出:登录处理表格数据结构:客户姓名+身份证号说明:该注册信息由宾馆保密数据存储名称:管理人员登记表输入:管理人员姓名、工号、输出:登录处理表格数据结构:管理人员姓名+工号说明:该注册信息由宾馆保密数据存储名称:退房登记表输入:客户姓名、房间号输出:登录处理表格数据结构
19、:客户姓名+房间号说明:显示客户消费信息5处理过程(1)客户入住登记(管理人员登记信息;输入:客户姓名、身份证号;输出:客户房间号;处理:在宾馆住宿系统中,登记好各项信息)(2)管理人员登录(管理人员注册帐号及登录;输入:姓名、工号;输出:管理人员登录验证;处理:在宾馆住宿系统中,登记好各项信息完成登录)(3)客户预订登记(管理人员登记信息;输入:客户姓名、身份证号、预订号;输出:客户房间号;处理:在宾馆住宿系统中,登记好各项信息)(4)客户退房登记(管理人员登记信息;输入:客户姓名、房间号;输出:客户消费信息;处理:在宾馆住宿系统中,显示消费信息)三、系统设计3.1 系统总体结构设计宾馆客房
20、管理信息系统的总体结构设计图如下图6所示:宾馆客房管理系统前台操作预定管理信息查询报表统计开房登记退房结帐房状态查看预定房间 预定入住解除预定在住客人列表预定客人列表历史客人列表开房记录统计预定统计表 图6 商业企业库存管理信息系统模块结构图3.2 系统主要代码设计void init_rooms()初始条件:文件hotel.txt存在。操作结果:各种房间都建立各自的链表,并已初始化。若文件hotel.txt中有入住房间的信息,则从文件中读取信息,并存入链表之中。char function_print()初始条件:链表的初始化操作已顺利进行。操作结果:输出本程序的各种功能,给以用户操作提示。并将
21、用户的选择返回给主函数。void print_livein(int i)初始条件:客户选择了入住方案,并入住房间。操作结果:输出已入住客户的信息,以及入住客户的总数。void print_book(int i)初始条件:客户选择了预定方案,并预定房间。操作结果:输出被预订房间的信息,以及已预定房间的总数。void print_cusinf()初始条件:有入住额客户。操作结果:输出各种房间的入住信息。int print_chose(int regnum,int regday)初始条件:输入入住人数与住宿天数。操作结果:根据入住人数提供房间选择方案,并显示各种方案的花费,以供客户进行选择。void
22、 reg_livein(int serial,int regday)void Regist()初始条件:客户选择了某一种入住方案。操作结果:根据客户的选择方案,登记客户信息,并将其记录在链表中。void book_room()初始条件:客户选择了某一种预定方案。操作结果:根据客户的选择方案,登记客户信息,并将其记录在链表中。void Queryempty()初始条件:选择所要查询的客房种类。操作结果:输出显示该种房间剩余的房间号。void Save(char filename)初始条件:建立一个文本文件。操作结果:将所有入住房间的信息记录到文本文件”hotel.txt”中。void modif
23、y()初始条件:需修改信息的客户名称,并且存在该客户入住的房间信息。操作结果:对于三个存储房间信息的链表进行查找,若存在,则进行修改选择并修改,若不存在,则退出修改。3.3 系统输入输出设计程序每次执行时,首先从文本文件hotel.txt中语句提取数据生成链表,若文件hotel.txt中无房间信息,则输出“文件中无内容可以导入”,然后输出操作提示。输入命令提示中的序号便可以选择相应的命令,增加记录时逐项提示输入入住人数和入住天数,然后提示各种可行方案供旅客选择,根据提示,选择相应的序号后,再通过登记,就可以将信息添加到链表中。查询分为查询空房和查询已住用户信息,在主菜单中按照命令提示进行选择。
24、如果查询空房,就将未入住旅客的各种类型客房显示在命令中,用户按照提示命令进行选择,就可以将空房的房间号码输出;查询已住客房的信息时,根据提示操作可以查看三种不同类型房间的入住信息。保存至文件即将链表中的信息写到文件中。选择主菜单中的退出则退出程序。3.4 系统数据库设计3.4.1 概念结构设计1、概念设计说明 通常,把每一类数据对象的个体称为实体,而每一类对象的集合称为“实体集”。而ER模型的主要成分是实体、联系和属性。如果用矩形框表示实体集,用带半圆的矩形表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接上标记一斜线,则可以表示实体集及每个实体集涉及的属
25、性,实体集之间存在各种关系,通常把这种关系称为“联系”。联系有三类:一对一的联系(1:1);一对多的联系(1:n);多对多的联系(m:n)。 所以,此宾馆住宿管理系统中实体集与实体集的联系,ER模型如下:2 、E-R图各实体之间的E-R图,如图3-1所示。图3-1 实体之间的E-R图局部E-R图如下:客户信息实体的E-R图,如图1所示。图1客户信息实体的ER图客房信息实体的E-R图,如图2所示。图2 客房信息实体的ER图客户住宿实体的E-R图,如图3所示。 图3 客户住宿实体的ER图客房物品信息实体的E-R图,如图4所示。 图4 客房物品实体的ER图顾客客房姓名身份证联系电话工作单位详细地址登
26、记服务员操作密码姓名工作编号住宿房间号码所在楼层价格房间类型使用配置房态全局E-R图如下:1 1 1 N N N管理 1操作密码大堂经理 1年龄名字工作编号 总E-R实体图3.5逻辑结构设计1 E-R图到关系模式的转换关系模式:客房(客房编号、客房类型、客房价格、负责人编号)员工(员工编号、员工姓名、员工年龄、员工联系方式、员工职位、员工工资、领导编号)客户(客户身份证号、客户姓名、客户性别、客户年龄、联系方式、入住日期、退房日期、入住客房编号)客户_客房(客房编号、客户身份证号、入住日期、退房日期)客户_员工(客户身份证号、员工编号、服务)2.实体关系模式分析由于客房编号、员工编号、客户身份
27、证号、客房编码等每个属性都是不可再分的,且均是简单属性,因此属于第一范式。由于客房类型、价格,员工年龄、职位、工资等非主属性完全函数依赖,因此属于第二范式。而员工服务等属于非主属性完全函数依赖。又因为非主属性不传递函数依赖的主关系键。因此属于第三范式。3.6物理结构设计1.数据分析(1)常查询项:客房信息、客户信息、员工信息(2)常变更项:客户姓名、身份证号、入住日期、退房日期、结算金额等(3)不易变更项:客房类型、客房价格等2.索引的建立对“客房”、“员工”、“客户”建立索引,方便数据的查询。3数据库存放位置的设计为提高系统性能,应根据应用情况把数据库的常查询项、常变更项、不易变更项分开存放
28、。4.建立视图对权限的赋予操作,保障数据库的安全。3.7数据库实施3.7.1创建数据库3.8其它详细设计首先,程序开始执行先将文本文件hotel.txt中的数据读取并存储在链表中,然后按照功能操作提示进行选择,客户经过登记入住后便可以的到一个新的链表,最终可以选择“保存至文件”进行文件保存操作。本程序可以实现的功能包括:查询,添加,修改。现已修改操作为例讲解一下处理过程设计。修改操作则是通过客户输入所要修改信息的客户名称来进行查找的,首先利用for()循环语句确定链表的信息中是否含有该用户,若存在该用户,则变换命令提示界面,客户根据提示再次进行所要修改的数据的选择,根据用户输入的选择是哪一项,
29、利用switch()进行分别的修改操作,switch()语句下的每个case都有具体的输入数据提示和输入语句。若选择退出修改,则会跳转回原先的菜单界面供用户进行其他操作。整体的用户界面是通过do. .while()语句使得菜单界面循环显示,每次执行完一个命令后再次显示出菜单界面,直到选择退出命令,循环终止,程序停止执行。4 系统实施4.1 系统主界面、主程序设计4.1.1登录界面设计在CRanjianshejiView:OnInitialUpdate()中添加代码CdengluDlg dlg;dlg.DoModal();if(dlg.m_gonghao!=nxm|dlg.m_mima!=123
30、456)MessageBox(密码错误!);exit(0);4.1.2 主程序设计#include #include #include #include #include #include #define N 500 #define TRUE 1 #define FALSE 0 /*定义顾客结构体*/ typedef struct Passenger char name10; /姓名 int roomNO20; /房号 int price5; /各等级房间价格 int remain5; /各等级空房间数 void PassWord(); /系统密码 void order(); /预定 void
31、 del(); /取消预定 void addnum(Passenger*); void pgsearch(); void query_remain();/按空余房间查询 void query_price(); /按各等级价格查询 void display(); /浏览预定储存信息 PG; /*结构体成员赋值*/ int price5=500,300,150,100,50; /各等级价格 int remain5=100,100,100,100,100;/各级房间初始剩余数 int A=500,B=400,C=300,D=200,E=100; /计算门牌号 static int p=0; stat
32、ic int TOTAL=0; /统计人数(全局变量) char line10; PG gestersN; /结构体变量gesters数组 /*加密函数*/ void PassWord() int i,m=0; char x16=t,a,n,g,s,h;/密码 char w17; cout欢迎进入客房服务终端nn; cout请输入系统管理密码:(6位数,数字或大小写字母)endl; to1: for(i=0;i=0)&amt;&amt;(w0i=a)&amt;&amt;(w0i=A)&amt;&amt;(w0i=Z)&amt;&amt;(i!=6) printf(*); /输出*覆盖密码原值
33、else if(i!=6) goto to2; if(x00!=w00)|(x01!=w01)/输入密码若不正确 |(x02!=w02)|(x03!=w03) |(x04!=w04)|(x05!=w05) to2: m+; if(m=3) /输入超过3次,自动关闭应用程序 printf(ntt你输入密码已超过三次, 程序自动关闭!n); exit(0); printf(nnt密码错误,请重试.n); goto to1; /密码错误未超过3次,重新输入 coutn通过密码验证,程序启动!nn; system(cls); /清屏 /*预定房间*/ void order() loop1: FILE
34、*fp; PG g;/定义结构体Passengers变量 if(p=0)/判断是否为结构体数组的第一个变量信息 if(fp=fopen(roombook.txt,w)=NULL)/写入方式打开文件 coutt创建存档文件失败!endl; return; p+; else /非结构体数组第一个变量信息 if(fp=fopen(roombook.txt,ab+)=NULL)/追加方式打开文件 coutt不能够打开这个文件n; return; system(cls); cout欢迎顾客光临nn;/输入顾客信息 int region,count=0,total,j=0; int q=1,w; char
35、 k,u; char c=y; TOTAL+; coutk; loop2: if(k=m|k=M) w=1; /1为男性 else if(k=f|k=F) w=2; /2为女性 else coutk; goto loop2; /出错处理 if(w=1) coutn 先生,请输入您的姓名:n; else coutg.name ; /输入姓名 for(;) int i=0, u ,back=0; loop3: cout请问您想购买哪总等级的房间; coutline0; /输入订房等级 region = line0; if(region5|region1)/判断等级正确性 coutn输入出错,请重试
36、 !nn; continue; region=region-48; if(remainregion-11) /判断空余房间数 cout该等级客房已售完 !n; continue; coutline; count=atoi(line); if(countremainregion-1) /判断所需房间数是否充足 cout房间数量不够 !n; continue; if(count1) couts 先生,你已经预定了c 等级的房间 ,&amt;g.name,region+64); else printf(n s 女士,你已经预定了c 等级的房间 ,&amt;g.name,region+64); cou
37、tcount 间,门牌号是:nn; for(i=back,u=0;icount+back;i+) /记录并输出顾客开取房间号码 if(region = 1) /若为A等房 A+=1; couttA; g.roomNOi=A; else if(region = 2)/若为B等房 B+=1; couttB; g.roomNOi=B; else if(region = 3)/若为C等房 C+=1; couttC; g.roomNOi=C; else if(region = 4)/若为D等房 D+=1; couttD; g.roomNOi=D; else /若为E等房 E+=1; coutt6=0)
38、/每行输出6个号 coutn; back+=count; /判断重复预定时补录门牌号 coutnnt您本次应付的总金额为total元。endl;/输出金额 coutnt您的预订成功,欢迎光临本宾馆 !n; coutc; if(c=y|c=Y) goto loop3;/若重复预定房间 else break; /不重复预定时跳出while()循环 if(p=1)/如输入的为第一个信息,把信息赋给gesters0 strcpy(gesters0.name,g.name); for(int j=0;j20;j+) gesters0.roomNOj=g.roomNOj; fwrite(&amt;gest
39、ers,sizeof(struct Passenger),1,fp);/读入磁盘 p+;/描述使第一个信息不被覆盖判断 fclose(fp); else/如不是第一个输入信息 fwrite(&amt;g,sizeof(struct Passenger),1,fp);/以添加形式读入磁盘 rewind(fp); fclose(fp); coutu; if(u=y|u=Y) goto loop1; /添加新的顾客信息 /*显示预定的客户信息*/ void display() FILE *fp; if(fp=fopen(roombook.txt,r)=NULL)/读出形式打开文件 cout文件打开失
40、败,无法读取数据!endl; return; if(TOTAL=0) /判断是否为空文件 p=0; coutn很抱歉,列表中没有可遍历的顾客信息!n; return; cout客房预定情况如下:nt姓名t房间号n;/不为空时输出所有信息 for(int j=0;(fread(&amt;gestersj,sizeof(struct Passenger),1,fp)!=0,j=TOTAL;j+) coutntgestersj.namet;/姓名 for(int i=0,w=1;i100&amt;&amt;gestersj.roomNOi600;i+,w+) coutgestersj.roomNOi6=0) coutntt; fclose(fp)