酒店客房预订管理系统方案_第1页
酒店客房预订管理系统方案_第2页
酒店客房预订管理系统方案_第3页
酒店客房预订管理系统方案_第4页
酒店客房预订管理系统方案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

/院系:计算机科学学院专业、年级:2010计科〔1大班课程名称:软件工程项目名称:酒店客房预订管理系统学号姓名:10061064朱辰学号姓名:10061065徐丽学号姓名:10081109张赛北学号姓名:10151251张胜南指导教师:刘卫平2012年12月23日目录第一章系统概述11.1系统开发背景和意义11.2开发语言简介11.3本系统简介11.4系统运行环境2第二章系统需求分析22.1用户需求22.2功能需求32.3性能需求32.4出错处理需求32.5功能图32.6数据流图42.7E-R图5第三章系统总体设计53.1系统功能设计53.2系统功能模块图6第四章系统详细设计84.1系统详细设计进度规划〔甘特图84.2系统详细设计任务84.3系统物理方案配置设计94.4系统输入输出设计94.5系统程序流程图11第五章模块设计思路分析11第六章使用说明12第七章程序源代码16结束语36参考文献37第一章系统概述1.1系统开发背景和意义随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域,成为不可缺少的工具,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。在人民生活水平提高的同时,餐饮,住宿,娱乐业在服务行业中占有越来越重要的地位。要使在当前酒店行业日趋激烈的竞争中脱颖而出,必须努力发展自己在管理方面的特色,避免传统管理方法的失误,使酒店的信誉以及各个管理方面都能够出现零失误,给管理者和普通的营业员带来操作上的方便,对整个酒店各个方面的业务带来快捷,方便,高效的服务,才是管理软件的成功之处。现今酒店宾馆的规模不断扩大,客户数量急剧增加,有关客户的各种信息也成倍增长,尤其是大量的客房预订信息。面对庞大的信息量,需要有客户信息管理系统来提高客户管理工作的效率。通过这样的系统,可以做到信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量。当前许多酒店正在逐步完善客户信息管理工作,需要一个能满足内部管理需求,提高管理效率的应用系统进行内部管理。许多酒店经过多年的发展,规模不断扩大,客流量成倍增长,积累了大量的客户信息急需进行统一管理以防信息的流失。因此,许多酒店需要一个功能全面的客户信息管理系统来进行管理,以使管理客户信息的工作在该系统的配合下更加高效和便捷。1.2开发语言简介酒店客房预订信息管理系统是一个对客户全方面管理的程序。该客房预订信息管理系统是在VisualC++6.0平台下设计开发,以TXT文档为后台数据库,利用VisualC++6.0提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。Microsoft的VisualC++6.0作为一种面向网络、支持各种用户终端的开发平台环境,推动新一代因特网的发展,真正地让人们可以在任何时间、任何地点、通过任何设备得到信息。1.3本系统简介现代化的酒店组织庞大、服务项目多、信息量大,想要提高劳动生产、降低成本、提高服务质量和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。酒店管理系统正是为此而设计的。优秀的酒店客房管理系统操作方便,灵活性好,系统安全性高,运行稳定。这也是我所设计本程序的目的之一。本系统针对用户和客户以及客房的管理采用了当今常用的C/S结构而设计。采用面向对象的语言开发而成,实现对客户预订信息的基本管理,包括订房,退房,客房信息、客户信息的添加、修改和查询。1.4系统运行环境机型:PC处理器:奔四或更高内存:512M或更高硬盘:4G或更高输入输出设备:键盘、扫描仪、打印机、显示器等。数据库软件:Notepad编程工具、编程语言:visualC++编译软件:MicrosoftVisualC++6.0操作系统:MicrosoftWindowsXP第二章系统需求分析2.1用户需求该酒店预订管理系统使用户能迅速而便捷的了解和查询酒店信息,根据自己的需求来预订房间。一个方便地实现对客房变更、房价及预订信息的自动化操作。使用该系统全面管理酒店信息,为用户节省时间和人力,更能全面、有效地掌握酒店基本情况,及时获取最新的准确资料和信息。该软件能系统管理酒店的信息,功能与实现方面有相当的针对性和实用性。该系统的主要功能有酒店信息管理,房间类型管理,订单信息管理,业务人员编辑和系统用户管理。2.2功能需求本系统主要具备以下几个基本功能:〔1客房预订:按照客户需求,为新客户分配新客房。〔2退房管理:删除已退客户信息,及时更新客房留存状态,方便新客户入住。〔3客房设置:可以添加新客房,修改客房描述〔房间等级,内部设施等,删除客房。〔4客户设置:可以添加新客户,修改客户信息,删除已退订客户等,可准确了解每一客户的预订信息。<5>房间预订情况查询:可按客户号、房号查询,方便实用,在众多房间、客户中准确查询到某一个房间或客户。2.3性能需求技术可行性该客房预订信息管理系统是在VisualC++6.0平台下设计开发,以TXT文档为后台数据库,采用面向对象的语言开发而成,系统的客户端在Windows平台下运行,服务器端可在Windows平台或UNIX平台下运行。经济可行性该系统节省人力资源成本的同时,可以提高业务效率,并能够及时、准确、迅速地满足顾客服务的需求,系统的开发成本低,现有的PC机即可提供该系统开发工作需要的所有硬件设备环境。操作可行性直接浏览网页的形式,利用鼠标进行傻瓜式的操作,操作中的每一步都会有相应的提示,这样可以让更多的人群在最短的时间内学会使用他。2.4出错处理需求在进行每一步操作时,都会有相应的提示操作,当系统出错时,会有相应的提示信息让你寻找错误,它的简单,易学的特性使得能够广泛普及,让更多的人去使用。〔为了更好地阐述需求更能,我们做了详细的图形说明2.5系统功能图2.6系统数据流图2.7E-R图第三章系统总体设计3.1系统功能设计该系统充分考虑用户的操作简便性,实现快捷操作。它有以下几个功能:〔1客房预订:按照客户需求,为新客户分配新客房。〔2退房管理:删除已退客户信息,及时更新客房留存状态,方便新客户入住。〔3客房设置:可以添加新客房,修改客房描述〔房间等级,内部设施等,删除客房。〔4客户设置:可以添加新客户,修改客户信息,删除已退订客户等,可准确了解每一客户的预订信息。〔5房间预订情况查询:可按客户号、房号查询,方便实用,在众多房间、客户中准确查询到某个房间或客户。4.2系统功能模块图根据上述系统功能分析,能得出下面系统软件功能模块图:3.2.1整体模块分配该系统充分考虑用户的操作简便性,实现快捷操作。它有以下四大模块:〔1订房:按照客户需求,为新客户分配新客房。〔2退订:删除已退客户信息,及时更新客房留存状态,方便新客户入住。〔3客房信息:可以添加新客房,修改客房描述〔房间等级,内部设施等,删除客房以及查看所有客房的状态信息。〔4客户信息:可以添加新客户,修改客户信息〔客户编号,客户姓名,删除已退订客户信息以及查看所有客户的订房状态信息。客户信息子模块〔1新增:录入客户编号、客户姓名等信息〔2更改:更改相应客户的个人信息。〔3删除:删除相应客户的个人信息。〔4查询:查询所需客户的订房信息。〔5显示:显示所有预订客户的个人信息以及预订房号。〔6全删:删除所有客户信息。3.2.3客房信息子模块〔1新增:录入客房编号、客房描述等相关信息。〔2更改:更改相应客房的信息。〔3删除:删除相应客户及客房的信息。〔4查询:查询所需客房的订房状态。〔5显示:显示所有客房的房号以及预订状态信息。〔6全删:删除所有客房信息。第四章系统详细设计4.1系统详细设计进度规划甘特图如下4.2系统详细设计任务1.算法过程的设计:本详细设计采用的是流程图的方式来表达每个处理过程的算法。2.数据结构的设计:对于处理过程中涉及的概念性的数据类型进行确切的定义。3.测试用例设计:测试用例包括输入数据和预期结果等内容。4.3系统物理方案配置设计1.设计指标1系统的可靠性:该系统要求24小时不间断工作工作,发生错误的概率低于0.01%。系统吞吐量2要提高系统的吞吐量:要求使用具有大吞吐量的计算机。应该选择具有较高性能的计算机。3系统响应时间:响应时间不超过2秒4系统处理方式:该系统采用主机系统方式。2.计算机硬件配置计算机硬件选择取决于要运行的软件系统,本系统建议最低采取如下配置:内存:512MB;CPU:奔四1.8GHZ以上;硬盘:空余空间4G。4.4系统输入输出设计4.4.1输入设计原则1.输入数据量设计:需要输入客户数据,数据量不大。2.输入错误检测:检测客户登记状态,确保不会重复登记或登记错误。4.4.2数据输入设备的选择本系统选择键盘、鼠标人工输入方式。4.4.3输入检验设计本系统对输入检验设计的地方有如下几处:1.当前台工作人员输入客户数据时,系统会自动检测该信息是否已在系统中存在。2.当业务员输入房间号时,系统会检测该房间号是否存在,若不存在会提示酒店没该房间。4.4.4输出设计内容1.输出信息应包括系统的使用者,如客户、酒店管理人员、前台服务人员等。2.信息应以表格及文档形式输出。3.输出设备:打印机、终端显示器。4.输出介质:输出到专用纸张及电脑屏幕上。4.4.5错误改正方法系统出现错误时,将弹出提示框。并允许工作人员改正。4.5系统程序流程图第五章模块设计思路分析本程序共有五大功能模块:新建模块、更改模块、删除模块、查询模块和显示模块。各模块在功能上互相补充,在程序中互相融合,才能实现一个具有多种功能的管理系统。〔1新建模块:实现所有客房、订房客户的录入工作。〔2更改模块:提供数据的修改,包括客户姓名、客房描述等。〔3删除模块:将已退订的客户从数据库中删除。〔4查询模块:本程序最重要的模块,也是本系统的精髓所在。通过房间号或客户号实现客房的预订情况以及客户入住情况的查询工作。〔5显示模块:显示所有客房、订房客户的基本信息。在程序设计上,我们的目标就是先实现单个模块,进而实现整个程序。本程序正是本着这种思想,一步一步,有条不紊的进行规划与设计。本程序通过四个类:客户类、客户库类、客房类、客房库类,并通过主函数调用类函数实现了这五大功能模块的功能。使用说明〔1程序主界面:界面简洁明了,一目了然,便于操作。选择数字0-6进入相应功能。订房:主界面选择1进入订房功能查询房间预订情况:主界面选择3进入该功能增删客户信息:主界面选择4进入该功能1.增加客户信息:系统提示输入客户号码、姓名等信息,按要求录入即可。2.删除个人信息:系统提示输入要更改的客户号,输入后即可更改该客户的个人信息。3.返回:返回主界面。〔5增删房间信息:主界面选择5进入客房信息管理菜单。1.新增:系统提示输入房间号、房间描述等信息,按要求录入即可。2.删除:系统提示输入要删除的房间号,输入后即可删除该房间。3.返回:返回主界面。〔6查询客户和房间总信息量:主界面选择6进入该功能,通过读取文件信息、预订然后将信息输出显示。〔7退房:主界面选择2进入退房功能。〔8退出:主界面选择0退出程序。文件中读取房间信息room文件读取客户信息customer第七章程序源代码程序源代码包含三大块:类定义、各功能函数定义及实现和主函数实现类定义源代码:#ifndefINFO_H#defineINFO_H#include<fstream>#include<string>#include<cstdlib>usingnamespacestd;namespaceinfo_space{classCustomer{public: Customer<>; stringname; intnumber;//客户编号};classRoom{public: Room<>; introom_number; introom_level;//房间等级,1-5级 stringroom_config;//房间配置:高级,优,良,中等,普通};classCustomerBase{public:CustomerBase<>; voidadd<Customertemp>;//前条件,temp已经含有值 voidremove<Customertemp>; Customerthe_customer; CustomerBase*next;};classRoomBase{public:RoomBase<>; voidadd<Roomtemp>; voidremove<Roomtemp>; Roomthe_room; RoomBase*next;};classInfoBase{public: intcustomer_number; introom_number; InfoBase<>; voidadd<InfoBase*&temp_ptr,intcnum,intrnum>; voidremove<InfoBase*&temp_ptr,intcnum>; boolcheck<InfoBase*&temp_ptr,intcnum>; boolcheckall<InfoBase*&temp_ptr,intcnum,intrnum>; voidoutput<InfoBase*&temp_ptr>; InfoBase*next;};typedefCustomerBase*CBasePtr;typedefRoomBase*RBasePtr;typedefInfoBase*IBasePtr;Customer::Customer<>//构造函数{ name=""; number=-1;}Room::Room<>{ room_number=-1; room_level=0; room_config="";}CustomerBase::CustomerBase<>{ next=NULL;}RoomBase::RoomBase<>{ next=NULL;}InfoBase::InfoBase<>{ next=NULL;}voidpause<>{ charget; cout<<"请按下任何键继续……"<<endl; cin.get<get>; cin.get<get>;}}//info_space的结尾#endif//INFO_H各功能函数源代码:#ifndefINFO_FUN_H#defineINFO_FUN_H#include<iostream>#include<fstream>#include<string>#include<cstdlib>#include"info.h"namespaceinfo_space{ voidreadfile<ifstream&instream,CBasePtr&temp>//从文件中读取客户数据 { intt_number=-1; stringt_name=""; CBasePtrt_temp=newCustomerBase; instream>>t_name; while<!instream.eof<>> { instream>>t_number; t_temp->the_=t_name; t_temp->the_customer.number=t_number; if<instream.eof<>>return; t_temp->next=temp; temp=t_temp; t_temp=NULL; t_temp=newCustomerBase;//循环创建用户信息类 instream>>t_name; } } voidwritefile<ofstream&outstream,CBasePtr&temp>//信息写入文件中 { if<temp==NULL>return; CBasePtrt_temp=temp;//为了防止写完文件后,指针到达指针尾 while<t_temp!=NULL> { if<t_temp->the_==""> t_temp=t_temp->next; if<t_temp==NULL>break;//这两个if语句用来判别输出客户信息 outstream<<t_temp->the_<<"" <<t_temp->the_customer.number<<endl; t_temp=t_temp->next; } } voidreadfile<ifstream&instream,RBasePtr&temp>//读取文件函数的重载 { intnumber=-1; intlevel=0; stringconfig=""; RBasePtrt_temp=newRoomBase; instream>>number; while<!instream.eof<>> { instream>>level; instream>>config; t_temp->the_room.room_number=number; t_temp->the_room.room_level=level; t_temp->the_room.room_config=config; if<instream.eof<>>return; t_temp->next=temp; temp=t_temp; t_temp=NULL; t_temp=newRoomBase; instream>>number; } } voidwritefile<ofstream&outstream,RBasePtr&temp> { if<temp==NULL>return; RBasePtrt_temp=temp; while<t_temp!=NULL> { if<t_temp->the_room.room_number==-1> t_temp=t_temp->next; if<t_temp==NULL>break;//这两个if语句用来判别输出房间信息 outstream<<t_temp->the_room.room_number<<"" <<t_temp->the_room.room_level<<"" <<t_temp->the_room.room_config<<endl; t_temp=t_temp->next; } } boolcheck<CBasePtr&temp_ptr,intnumber>//若找到相同编号则返回true,否则返回false { CBasePtrthe_ptr=temp_ptr; while<the_ptr!=NULL> { if<the_ptr->the_customer.number==number> returntrue; elsethe_ptr=the_ptr->next; } returnfalse; } boolcheck<RBasePtr&temp_ptr,intnumber>//核对预订的客户和客房信息,看是否还有空房 { RBasePtrthe_ptr=temp_ptr; while<the_ptr!=NULL> { if<the_ptr->the_room.room_number==number> returntrue; elsethe_ptr=the_ptr->next; } returnfalse; } voidCustomerBase::add<Customertemp>//添加客户信息 { if<==""||temp.number==-1> { cout<<"用户信息未填写完整,请重新填写!"; return; } else { ifstreaminstream; ofstreamoutstream; instream.open<"E:\\customer.txt">; CBasePtrtemp_ptr=NULL; readfile<instream,temp_ptr>;//读取文件中的客户信息,存入temp_ptr中CBasePtrtt_ptr=temp_ptr; //用此临时指针获取指针尾部指针,从而让新客户信息加到指针尾部,写入的时候也会相应写到文件尾部 while<tt_ptr->next!=NULL> tt_ptr=tt_ptr->next; if<check<temp_ptr,temp.number>> { cout<<"客户编号已经存在,请核查!"<<endl; return; } else { CBasePtrptr=newCustomerBase; ptr->the_customer=temp; tt_ptr->next=ptr; } outstream.open<"E:\\customer.txt">;//open函数会刷新文档,里面存储的内容全失 writefile<outstream,temp_ptr>;//将新的链表信息写入文件中 } } voidCustomerBase::remove<Customertemp>//删除客户信息 { intflag=0;//设置一个标记,用来检验删除是否成功 ifstreaminstream; ofstreamoutstream; instream.open<"E:\\customer.txt">; CBasePtrtemp_ptr=NULL; readfile<instream,temp_ptr>;//读取文件中的客户信息,存入temp_ptr中 if<!check<temp_ptr,temp.number>> { cout<<"不存在此编号!"<<endl; return; }CBasePtrbefore=temp_ptr,after=temp_ptr;//创建一个前指针和后指针,方便删除对应元素 if<before->the_customer.number==temp.number> { temp_ptr=temp_ptr->next;//如果第一个元素就是要删除的元素则直接删除 after=NULL;//元素已经删除,可以直接写入文件中,设置after为NULL跳过while循环 flag=1; } while<after!=NULL> { if<after->the_customer.number==temp.number> { before->next=after->next; flag=1;//删除成功,设置标志为1 } else { before=before->next; after=before->next; } }//while循环结束 if<flag==0>cout<<"不存在此编号!"<<endl;//删除失败 else { outstream.open<"E:\\customer.txt">; writefile<outstream,temp_ptr>;//将新链表写入文件 } } voidRoomBase::add<Roomtemp>//文件中存在的房间信息 { if<temp.room_number==-1||temp.room_level==0||temp.room_config==""> { cout<<"房间信息未填写完整,请重新填写!"; return; } else { ifstreaminstream; ofstreamoutstream; instream.open<"E:\\room.txt">; RBasePtrtemp_ptr=NULL; readfile<instream,temp_ptr>;//读取文件中的房间信息,存入temp_ptr中RBasePtrtt_ptr=temp_ptr; //用此临时指针获取指针尾部指针,从而让新房间信息加到指针尾部,写入的时候也会相应写到文件尾部 while<tt_ptr->next!=NULL>tt_ptr=tt_ptr->next; if<check<temp_ptr,temp.room_number>> { cout<<"房间编号已经存在,请核查!"<<endl; return; } else { RBasePtrptr=newRoomBase; ptr->the_room=temp; tt_ptr->next=ptr; } outstream.open<"E:\\room.txt">; writefile<outstream,temp_ptr>;//将新的链表信息写入文件中 } } voidRoomBase::remove<Roomtemp> { intflag=0;//设置一个标记,用来检验删除是否成功 ifstreaminstream; ofstreamoutstream; instream.open<"E:\\room.txt">; RBasePtrtemp_ptr=NULL; readfile<instream,temp_ptr>;//读取文件中的房间信息,存入temp_ptr中 if<!check<temp_ptr,temp.room_number>> { cout<<"不存在此编号!"<<endl; return; }RBasePtrbefore=temp_ptr,after=temp_ptr;//创建一个前指针和后指针,方便删除对应元素 if<before->the_room.room_number==temp.room_number> { temp_ptr=temp_ptr->next;//如果第一个元素就是要删除的元素则直接删除 after=NULL;//元素已经删除,可以直接写入文件中,设置after为NULL跳过while循环 flag=1; } while<after!=NULL> { if<after->the_room.room_number==temp.room_number> { before->next=after->next; flag=1;//删除成功,设置标志为1 } else { before=before->next; after=before->next; } }//while循环结束 if<flag==0>cout<<"不存在此编号!"<<endl;//删除失败 else { outstream.open<"E:\\room.txt">; writefile<outstream,temp_ptr>;//将新链表写入文件 } } voidInfoBase::add<IBasePtr&temp_ptr,intcnum,intrnum>//增加预定信息 { if<cnum<0||rnum<0> { cout<<"请填写一个正整数编号!"; return; } else { IBasePtrptr=newInfoBase; ptr->customer_number=cnum; ptr->room_number=rnum; ptr->next=temp_ptr; temp_ptr=ptr; } } voidInfoBase::remove<IBasePtr&temp_ptr,intcnum>//退订后删除相关预定信息 { IBasePtrbefore=temp_ptr,after=temp_ptr; if<before->customer_number==cnum> { temp_ptr=temp_ptr->next; cout<<"退订成功!"<<endl; return; } while<after!=NULL> { if<after->customer_number==cnum> { before->next=after->next; cout<<"退订成功!"<<endl; return; } else { before=before->next; after=before->next; } } } boolInfoBase::check<IBasePtr&temp_ptr,intcnum>//检查该客户是否预定房间 { IBasePtrptr=temp_ptr; while<ptr!=NULL> { if<ptr->customer_number==cnum> returntrue; elseptr=ptr->next; } returnfalse; } boolInfoBase::checkall<IBasePtr&temp_ptr,intcnum,intrnum> { IBasePtrptr=temp_ptr; while<ptr!=NULL> { if<ptr->customer_number==cnum> { cout<<"该客户已经预订房间!"<<endl; returntrue; } elseif<ptr->room_number==rnum> { cout<<"该房间已被预订!"<<endl; returntrue; } elseptr=ptr->next; } returnfalse; } voidInfoBase::output<IBasePtr&temp_ptr> { if<temp_ptr==NULL> { cout<<"没有房间预订信息可查!"<<endl; return; } else { IBasePtrptr=temp_ptr; while<ptr!=NULL> {cout<<ptr->customer_number<<"号客户选择了"<<ptr->room_number<<"号房间"<<endl;#include<string>#include<cstdlib>#include<dos.h>#include"Info.h"//包含所有的类定义#include"info_fun.h"//包含所有的函数定义usingnamespaceinfo_space;intmain<>{intchoice; intcustomer_number,room_number; CBasePtrCB_ptr=NULL; RBasePtrRB_ptr=NULL; IBasePtrIB_ptr=NULL; Customerthe_customer; Roomthe_room;ifstreamin_customer; in_customer.open<"E:\\customer.txt">;//打开存储客户信息的文件ifstreamin_room; in_room.open<"E:\\room.txt">;//打开存储房间信息的文件label_menu: cout<<"房间预订菜单"<<endl;cout<<"1………………预定房间"<<endl;cout<<"2………………退订房间"<<endl; cout<<"3………………查询房间预定情况"<<endl; cout<<"4………………增删客户信息"<<endl; cout<<"5………………增删房间信息"<<endl; cout<<"6………………查询客户和房间总信息"<<endl;cout<<"0………………退出"<<endl;cout<<"Yourchoice:"<<endl;cin>>choice;if<choice>6||choice<0>{ cout<<"输入的数字有误,请重新输入!"<<endl; system<"cls">; gotolabel_menu;}switch<choice>{case1:{ cout<<"请输入客户编号和房间编号"<<endl; cout<<"客户编号:"<<endl; cin>>customer_number; cout<<"房间编号:"<<endl; cin>>room_number; readfile<in_customer,CB_ptr>;//读取文件客户信息 if<!check<CB_ptr,customer_number>> { cout<<"客户编号不存在,请核查!"<<endl; pause<>; //system<"cls">; gotolabel_menu; } readfile<in_room,RB_ptr>;//读取文件房间信息 if<!check<RB_ptr,room_number>> { cout<<"房间编号不存在,请核查!"<<endl; pause<>; //system<"cls">; gotolabel_menu; } if<!IB_ptr->checkall<IB_ptr,customer_number,room_number>>//客户没有预订房间且房间没有被预订 IB_ptr->add<IB_ptr,customer_number,room_number>; break; } case2: { cout<<"请输入客户编号:"<<endl; cout<<"客户编号:"<<endl; cin>>customer_number; readfile<in_customer,CB_ptr>;//读取文件客户信息 if<!check<CB_ptr,customer_number>> { cout<<"客户编号不存在,请核查!"<<endl; pause<>; //system<"cls">; gotolabel_menu; } if<IB_ptr->check<IB_ptr,customer_number>>//检查该客户是否已经预定房间 IB_ptr->remove<IB_ptr,customer_number>; else { cout<<"该客户未预定房间,请核查!"<<endl; pause<>; //system<"cls">; gotolabel_menu; } break; } case3: { IB_ptr->output<IB_ptr>; break; } case4: { intchoose; cout<<"1………………增加客户信息"<<endl; cout<<"2………………删除客户信息"<<endl; cout<<"3………………返回主菜单"<<endl; cin>>choose; switch<choose> { case1: { stringname=""; intnumber=-1; Customertemp; cout<<"请输入客户名称和编号:"<<endl; cout<<"客户名称:"<<endl; cin>>name; cout<<"客户编号:"<<endl; cin>>number; =name;temp.number=number; CB_ptr->add<temp>; break; } case2: { stringname=""; intnumber=-1; Customertemp; cout<<"请输入客户编号:"<<endl; cin>>number; =name;temp.number=number; CB_ptr->remove<temp>; break; } case3: { system<"cls">; gotolabel_menu; } } break; } case5: { intchoose; cout<<"1………………增加房间信息"<<endl; cout<<"2………………删除房间信息"<<endl; cout<<"3………………返回主菜单"<<endl; cin>>choose; switch<choose> { case1: { intnumber=-1; intlevel=0; stringconfig=""; Roomtemp; cout<<"请输入房间编号,等级<1-5级>,配置<高级,优,良,中等,普通>:"<<endl; cout<<"房间编号:"<<endl; cin>>number; cout<<"房间等级:"<<endl; cin>>level;cout<<"房间配置:"<<endl; cin>>config; temp.room_number=number; temp.room_level=level; temp.room_config=config; RB_ptr->add<temp>; break; } case2: { intnumber=-1; intlevel=0; stringconfig=""; Roomtemp; cout<<"请输入房间编号:"<<endl; cin>>number; temp.room_number=number; temp.room_level=level; temp.room_config=config; RB_ptr->remove<temp>; break; } case3: { system<"cls">; gotolabel_menu; } } break; } case6: { readfile<in_customer,CB_ptr>; readfile<in_room,RB_ptr>;//读取两个文件的所有信息 CBasePtrcptr=CB_ptr; RBasePtrrptr=RB_ptr;//不修改两个主要变量的的指向内容,所以定义了两个临时变量cout<<"所有客户信息:"<<endl; if<cptr->the_customer.number==-1> { cout<<"没有任何客户信息!"<<endl<<endl; cptr=NULL; } while<cptr!=NULL> { if<find_info<IB_ptr,cptr->the_customer.number>> { cout<<cptr->the_customer.number<<"号客户<"<<cptr->the_<<">已经预订房间"<<endl<<endl; } elsecout<<cptr->the_customer.number<<"号客户<"<<cptr->the_<<">还未预订房间"<<endl<<endl; cptr=cptr->next; }

温馨提示

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

评论

0/150

提交评论