版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
03课题简介03TOC\o"1-5"\h\z设计方案 04具体设计及截屏图 05关键代码分析 10测试 15课题总结与体会 17参考文献 18源代码 19课题简介客房管理系统是根据某酒店对客房管理的实际情况进行编写的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的工作。经过电脑及生活中的调查研究,根据客人的经济水平和生活理念,客房的类型已趋向于多样化,有标准房,单人房,VIP间,甚至总统套房。而初步设定通过客房的编号、类型、价格来定位一个客房的管理系统。客房是一个对外服务的内容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。客人对剩余客房需要进行选择,系统必须实现相应的查询、排序和输出功能,使客人择优而居。本次课程设计需要实现的是一一客房管理系统的链表实现。主要实现的功能包括:客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。客房信息可写入文件,也可从文件中读取。客房信息涉及的数据有客房编号、客房类型、定房日期、客房内容(设施)、定房有效期等。设计方案按照需求分析所得,客房信息系统有以下几个功能模块:添加录入信息模块;编写指针摸板,定义临时的客房间数,包括其各项类的成员,编号,类型,定房日期,价格,客房内容,入住天数。修改客房信息模块;读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参数,并保存。删除客房信息模块;从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。查询剩余客房函数;分按编号、类型、价格查询,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。排序剩余客房模块;根据具体所需排序,可以是编号、价格或者类型,本系统中根据的是客房入住的天数来排序。输出剩余客房函数;输出根据系统所需排序后的客房信息,本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。由上述需求分析可得,系统的功能模块图如图1所示。具体设计及截屏图1、类的设计
根据上述需求分析,有客房类和链表类。客房类系统研究客房cGuestroom类中成员:ID[SIZE]是客房编号,Type[SIZE]是客房类型,Book[SIZE]是定房日期,Price[SIZE]是每间客房的价格,StayTime[SIZE]是定房的有效期,Function[SIZE]是客房的主要内容(如浴室、卫生间、网线等设施),标志flag和构造函数cGuestroom()。客房类的UML图如(图2)所示:class cGt图ptroom(2)链表类+ID[BUFSIZE]:char//客房在tList类中,有成员:构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty(Tyco£BU,S(2)链表类+ID[BUFSIZE]:char//客房在tList类中,有成员:构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty(Tyco£BU,S从尾部插1入/■客房元素的函数Insert(constTe),返回第i个节点的JgK®GetcNode(inti),在链表中查询某个值的函数boolFind(constTe),析构函数tList(),头节点head。链表类的UML图如(图3)所示:tList图32.界面设计:+tList();(1)主界面的设计+Create():void主界面中显示客房管理系统的全部信息,客房信息的录入,客房信息的保+Empty()const:bool存,客房信息的修改,客房信息的删除,剩余客房的查询,剩余客房的排序,剩+Insert(conste:T):void余客房的输出,客房信息管理系统如图4所示。图4主界面(2)分界面:客房信息的录入的设计提示输入客房编号,客房类型,客人定房日期,客房价格,客房中的主要内容,客房定房的有效期。客房信息录入如图5所示。图5录入客房信息的分界面(3) 分界面:客房信息的保存的设计针对第一步客房信息的输入及以后信息的修改、删除做一个文件保存。客房信息保存如图6所示。图6保存客房信息的分界面(4) 分界面:客房信息的修改的设计提示根据编号进行客房信息修改,输入要修改的内容,如不修改的项目就远洋输出。客房信息修改界面如图7所示。图7修改客房信息的分界面(5) 分界面:客房信息的删除的设计提示进入删除截面,根据客房编号查找所需删除的客房信息。客房信息的删除界面如图8所示。图8删除客房信息的分界面(6) 分界面:剩余客房信息的查询的设计在保存完所修改或删除的客房信息,查询剩余的客房信息,按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。查询剩余客房的信息界面如图9所示。图9查询客房信息的分界面(7) 剩余客房信息的排序的设计按提示进行剩余客房的排序,本系统中是以客人的入住天数排序,显示屏幕如图10所示。分界面:剩余客房信息的输出的设计在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。剩余客房信息输出界面如图10所示。图10输出剩余客房的信息4.关键代码分析系统的登录在主函数中,输出客房信息系统的各功能提示。选择需要执行功能的序号,由switch判断和选择所需要执行的功能。选择1:执行客房信息的录入;选择2:执行保存客房的信息;选择3:执行教工基本信息的保存;选择4:执行教工基本信息的删除;选择5:执行教工工资按从高到低排序;选择6:执行教工基本信息的修改;选择7:执行教工基本信息的查询;选择8:退出;主函数:intmain()(tList<cGuestroom>tListMedic;tListMedic.Create(); //创建链表ReadData(&tListMedic);while(1)(cout<<"\n\n 客房管理系统 \n\n〃;cout<<" \n\n";cout<<"1.客房信息的录入\n\n";cout<<"1.客房信息的录入\n\n";cout<<" 2:客房信息保存\n\n";cout<<" 3.客房信息的修改 \n\n";cout<<" 4.客房信息的删除 \n\n";cout<<" 5.剩余客房信息的查询 \n\n";cout<<"6.剩余客房信息的排序 \n\n";cout<<" 7.剩余客房信息的输出 \n\n";cout<<" 8.退出系统 \n\n";cout<<"请选择:”;intchoose=0;cin>>choose;switch(choose) //用户选择(case1:AddtheGuestroom(&tListMedic);break; //输入客房信息case2:SaveData(&tListMedic);break; //客房信息信息保存case3:ModifytheGuestroom(&tListMedic);break; //修改客房信息case4:DeletetheGuestroom(&tListMedic);break;//删除客房信息case5:FindtheremainGuestroom(&tListMedic);break;//查询剩余客房信息case6:RanktheremainGuestroom(&tListMedic);break;//排序乘。余客房信息case7:OutputtheremainGuestroom(&tListMedic);break;//输出剩余客房信息case8:exit(0); //退出default:break;}return0;}}在读取数据库中,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,有利于后面的信息修改、删除等功能。读取数据库:voidReadData(tList<cGuestroom>*tListMedic)//读取数据库(charbuf[BUFSIZE];ifstreamifile(〃Guestroom.txt〃,ios_base::in);//创建一个输出文件流对象if(!ifile)(cerr<<"读取时打开文件出错!"<<endl;}cGuestroomGuestroom;while(ifile.getline(buf,BUFSIZE)) //遍历文本,读取数据
ifile.getline(buf,BUFSIZE);strcpy(Guestroom.ID,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);strcpy(Guestroom.Type,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);strcpy(Guestroom.Book,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);strcpy(Guestroom.Price,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);strcpy(Guestroom.Function,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);Guestroom.StayTime二atoi(buf);memset(buf,0,BUFSIZE);Guestroom.flag二true;//读取客房编号//读取客房编号//读取客房类型〃读取提前定房日期//读取价格〃读取客房主要内容〃读取入住有效期//定义临时客房//定义临时客房//读入客房编号//读入客房类型//读入定房日期//读入价格//读入主要内容cout<<"读取数据成功!\n\n”;〃关闭文件ifile.close();〃关闭文件return;(2)信息的添加客房信息的录入,创建cGuestroom类和tempGuestroom对象,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间内容及个人的入住有效期,通过Insert函数实现。voidAddtheGuestroom(tList<cGuestroom>*tListMedic)//输入客房函数(cGuestroomtempGuestroom;cout<<〃下面开始添加客房信息\n”;cout<<〃请输入入住的客房编号:〃;cin>>tempGuestroom.ID;cout<<〃请输入客房类型:〃;cin>>tempGuestroom.Type;cout<<〃请输入客人定房日期:〃;cin>>tempGuestroom.Book;cout<<〃请输入客房价格:〃;cin>>tempGuestroom.Price;cout<<〃请输入客房的主要内容:〃;cin>>tempGuestroom.Function;cout<<〃请输入客房入住有效期:〃;tempGuestroom.flag二true;tListMedic->Insert(tempGuestroom);cout<<"添加成功!\n";system(〃pause〃);system(〃cls〃);}信息的删除删除客房信息,按要求提示输入要删除客房的房间编号,定义一个指向链表第一个节点的指针P。如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。如果相同,输出该客房的信息并删除;如果没有相同的,提示没有所查询的房间。voidDeletetheGuestroom(tList<cGuestroom>*tListMedic) //删除客房信息(charid[BUFSIZE];cout<<〃\n请输入你要查找的客房编号:〃;cin>>id; //读取客房编号boolflag二false;intcount=0;cNode<cGuestroom>*p;p=tListMedic->head->next;while(p)(if(strcmp(p->data.ID,id)==0&&p->data.flag)(count++;flag二true;break;}p=p->next;}if(flag二二false) cout<<"对不起,你所查找的客房延长了住房日期!\n”;〃如果不能删else //如果能删( count--;cout<<〃找到了,该客房的原始信息是:\n〃;cout<<"\n\n客房编号:〃<<(p->data).ID<<〃\t客房类型:〃<<(p->data).Type<<〃\n\t\t定房日期:〃<<(p->data).Book<<〃\n\t\t价格:〃<<(p->data).Price;cout<<〃\n\t\t客房的主要内容:〃<<(p->data).Function<<〃\n\t\t入住有效期:〃<<(p->data).StayTime;cout<<endl;(p->data).flag二false;cout<<〃该客房的信息删除成功!\n〃;}cout<<endl;system(〃pause〃);system(〃cls〃);return;信息的修改按提示输入要修改的客房的客房编号,定义一个指向链表第一个节点的指针p。如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。如果相同,提示输入房间的各个信息;如果没有相同,提示没有所查询的客房。voidModifytheGuestroom(tList<cGuestroom>*tListMedic) //修改客房信息(charid[BUFSIZE];cout<<〃\n请输入你要查找的客房编号:〃;cin>>id; //读取客房编号boolflag二false;cNode<cGuestroom>*p;p=tListMedic->head->next;while(p)(if(strcmp(p->data.ID,id)==0&&p->data.flag)(flag=true;break;}p=p->next;}if(flag==true){ cout<<〃找到了,该客房的原始信息是:\n〃;cout<<〃\n\n客房编号:〃<<(p->data).ID<<〃\t客房类型:〃<<(p->data).Type<<〃\n\t\t定房日期:〃<<(p->data).Book<<〃\n\t\t价格:〃<<(p->data).Price;cout<<〃\n\t\t客房的主要内容:〃<<(p->data).Function<<〃\n\t\t入住有效期:〃<<(p->data).StayTime;cout<<〃\n下面开始修改该客房的信息:\n〃;//定义临时客房//读入客房编//定义临时客房//读入客房编//读入客房类cout<<〃请输入客房的客房编号:〃;cin>>tempGuestroom.ID;号cout<<〃请输入客房的客房类型:〃;cin>>tempGuestroom.Type;型cout<<〃请输入客人的定房日期:〃;cout<<〃请输入客房的客房价格:〃;cin>>tempGuestroom.Price; //读入价格cout<<〃请输入客房的客房主要内容:〃;cin>>tempGuestroom.Function; //读入客房的主要内容cout<<〃请输入客人入住客房有效期:〃; 、cin>>tempGuestroom.StayTime; //读入入住有效期tempGuestroom.flag二true;p->data=tempGuestroom;cout<<〃修改成功!〃;}cout<<endl;system(〃pause〃);system(〃cls〃);return;}测试程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。原程序:voidRanktheremainGuestroom(tList<cGuestroom>*tListMedic) //排序剩余客房{cNode<cGuestroom>*p,*q;cGuestroomremainGuestroom;for(p=tListMedic->head->next;p!=NULL;p=p->next)(for(q=p;q!=NULL;q=q->next)(if(p->data.Price>q->data.Price)(remainGuestroom.flag=p->data.flag;strcpy(remainGuestroom.ID,p->data.ID);strcpy(remainGuestroom.Type,p->data.Type);strcpy(remainGuestroom.Book,p->data.Book);strcpy(remainGuestroom.Price,p->data.Price);strcpy(remainGuestroom.Function,p->data.Function);remainGuestroom.StayTime=p->data.StayTime;p->data.flag=q->data.flag;strcpy(p->data.Function,q->data.Function);strcpy(p->data.ID,q->data.ID);strcpy(p->data.Type,q->data.Type);strcpy(p->data.Book,q->data.Book);p->data.StayTime=q->data.StayTime;q->data.flag=remainGuestroom.flag;strcpy(q->data.Function,remainGuestroom.Function);strcpy(q->data.ID,remainGuestroom.ID);strcpy(q->data.Type,remainGuestroom.Type);strcpy(q->data.Book,remainGuestroom.Book);q->data.StayTime=remainGuestroom.StayTime;}}}}编译成功后开始运行,信息录入后,不能在文档中正确排序输出,经Debug调试,发现,以客人的入住天数排序来及时调出空余客房为最佳选择。voidRanktheremainGuestroom(tList<cGuestroom>*tListMedic)//排序剩余客房{cNode<cGuestroom>*p,*q;for(p二tListMedic->head->next;p!=NULL;p=p->next)(for(q=p;q!=NULL;q=q->next)(if(p->data.StayTime>q->data.StayTime)(remainGuestroom.flag=p->data.flag;strcpy(remainGuestroom.ID,p->data.ID);strcpy(remainGuestroom.Type,p->data.Type);strcpy(remainGuestroom.Book,p->data.Book);strcpy(remainGuestroom.Price,p->data.Price);strcpy(remainGuestroom.Function,p->data.Function);remainGuestroom.StayTime=p->data.StayTime;p->data.flag=q->data.flag;strcpy(p->data.Function,q->data.Function);strcpy(p->data.ID,q->data.ID);strcpy(p->data.Type,q->data.Type);strcpy(p->data.Book,q->data.Book);p->data.StayTime=q->data.StayTime;q->data.flag=remainGuestroom.flag;strcpy(q->data.Function,remainGuestroom.Function);strcpy(q->data.ID,remainGuestroom.ID);strcpy(q->data.Type,remainGuestroom.Type);strcpy(q->data.Book,remainGuestroom.Book);q->data.StayTime=remainGuestroom.StayTime;}}}课题总结与体会本次的C++课程设计虽然只是短短的两个星期,但是却令我体会很多,也学到很多东西。利用C++去设计客房管理,使我加强了对C++的认识,也对现代客房的基本运作管理有了初步了解。在这次课程设计中,我还懂得了程序开发中的一些比较重要的步骤并且学会了一些没有接触过的知识,比如需求分析、类的设计以及类与类之间的关系,UML图形的表示方法等。面向对象程序设计作为一门软件设计的课程,具有极强的实践性,使我加强了灵活应用理论知识的能力及面向对象程序设计技能。C++语言相对于C语言来更具有优越性,它不仅兼容C,还有一个非常重要的特点就是面向对象(具体来讲就是类),另外模板技术的频繁引用,也使整个程序看起来更清晰,更有条理化,所以,对模块的掌握,在C++学习中是非常重要的。在本次的应用程序的设计和创建过程中,我遇到了许多问题,有些是自己没有在教科书中学过的,但是却是系统所必须的,我通过在网上查找资料、查找书本、请教老师,一步步的把这些问题搞懂了,所以,课程设计也培养了我们探索实践的能力。总之,我觉得,我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用。以前上C++课程,只是零散被动地接受知识,而不是主动地去吸收渗透,而此次的课程设计却让我对编程产生了兴趣,习惯独立自主地完成任务,在困难中寻求帮助,加强和同学间的互帮互助,相信自己会在以后的学习和工作更加有经验。通过课程设计,我既复习了以前的旧知识,乂学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。参考文献【1】陈维兴,林小茶.C++面向对象程序设计教程.北京.清华大学出版社2010,10【2】谭浩强.C语言程序设计.北京:清华大学出版社.2010,5【3】源代码//客房管理系统主要实现的功能包括:客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。客房信息可写入文件,也可从文件中读取。/*系统的登录信息的添加信息的删除 信息的修改*/#include<iostream> //指示编译器将文件iostream中的代码嵌入到该程序中该指令所在的地方usingnamespacestd;#include<fstream>//包含文件流头文件#defineBUFSIZE50classcGuestroom;voidFindTheGuestroom(); //查找客房voidFindTheGuestroomById(); //按照编号找客房voidFindTheGuestroomByType(); //按照类型找客房voidFindTheGuestroomByPrice(); //按照价格找客房voidDeleteTheGuestroom();voidAddTheGuestroom();voidDeleteTheGuestroom();voidAddTheGuestroom();voidModifyTheGuestroom();template<classT>classcNode(〃删除客房〃客房添加//修改客房//template:模板,样板〃节点public:Tdata;cNode*next;template<classT>classtListtemplate<classT>classtList(public:tList();voidCreate();boolEmpty()const;voidInsert(constTe);cNode<T>*GetcNode(inti);boolFind(constTe);~tList();cNode<T>*head;};template<classT>tList<T>::tList()(head二newcNode<T>;head->next=NULL;}template<classT>//定义成员函数//创建链表〃判断链表是否为空//从尾部插入一个元素//返回第i个节点//在链表中查找某个值〃销毁链表,析构//头节点//类的成员函数的实现voidtList<T>::Create()(cNode<T>*p;p=head;p->next=NULL;}template<classT>booltList<T>::Empty()const(return(head->next==NULL);}template<classT>voidtList<T>::Insert(constTe) //insert:插入(cNode<T>*p,*q;p=head;q=newcNode<T>;q->data=e;while(p->next)(p=p->next;p->next=q;q->next=NULL;}template<classT>cNode<T>*tList<T>::GetcNode(inti) //返回第i个节点(intk=0;cNode<T>*p;p=head;while(p&&k<i)(p=p->next;++k;}returnp;}template<classT>booltList<T>::Find(constTe) //在链表中查找某个值(boolflag二false;cNode<T>*p;p=head->next;while(p)(if(p->data=二e)(flag二true;break;}p=p->next;}returnflag;}template<classT>tList<T>::~tList()(cNode<T>*p;while(head)(p=head->next;deletehead;head二p;classcGuestroom(public:charID[BUFSIZE];//客房编号charType[BUFSIZE];//客房类型charBook[BUFSIZE];//提前定房日期charPrice[BUFSIZE];//客房价格charFunction[BUFSIZE];//客房主要内容intStayTime; //入住天数有效期bool flag;//标志cGuestroom()//构造函数初始化(memset(ID,0,BUFSIZE);memset(Type,0,BUFSIZE);memset(Book,0,BUFSIZE);memset(Function,0,BUFSIZE);memset(Price,0,BUFSIZE);StayTime=0.0;flag二false;} //memset:把char类型转换成ASCII值};voidReadData(tList<cGuestroom>*tListGue)//读取数据库charbuf[BUFSIZE];ifstreamifile(〃Guestroom.txt〃,ios_base::in);//创建一个输出文件流对if(!ifile)(cerr<<"读取时打开文件出错!"<<endl;}cGuestroomGuestroom;while(ifile.getline(buf,BUFSIZE))//遍历文本,读取数据(ifile.getline(buf,BUFSIZE);strcpy(Guestroom.ID,buf);//读取客房编号memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);//读取客房类型strcpy(Guestroom.Type,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);//读取提前定房日期strcpy(Guestroom.Book,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);//读取价格strcpy(Guestroom.Price,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);//读取客房主要内容strcpy(Guestroom.Function,buf);memset(buf,0,BUFSIZE);ifile.getline(buf,BUFSIZE);//读取入住有效期Guestroom.StayTime二atoi(buf);memset(buf,0,BUFSIZE);Guestroom.flag二true;tListGue->Insert(Guestroom);}cout<<"读取数据成功!\n\n”;ifile.close();//关闭文件return;}voidAddtheGuestroom(tList<cGuestroom>*tListGue)//输入客房函数(cGuestroomtempGuestroom;//定义临时客房cout<<〃下面开始添加客房信息\n”;cout<<〃请输入入住的客房编号:〃;cin>>tempGuestroom.ID; //读入客房编号cout<<〃请输入客房类型:〃;cin>>tempGuestroom.Type; //读入客房类型cout<<〃请输入客人定房日期:〃;cin>>tempGuestroom.Book;//读入定房日期cin>>tempGuestroom.Book;//读入定房日期cout<<"请输入客房价格:〃;cin>>tempGuestroom.Price; //读入价格cout<<〃请输入客房的主要内容:〃;cin>>tempGuestroom.Function;//读入主要内容cout<<〃请输入客房入住有效期:〃;cin>>tempGuestroom.StayTime;//读入入住有效期tempGuestroom.flag二true;tListGue->Insert(tempGuestroom);cout<<〃添加成功!\n〃;system(〃pause〃); //pause:停顿,终止system(〃cls〃);}voidSaveData(tList<cGuestroom>*tListGue) //保存数据(inti=0;ofstreamofile(〃Guestroom.txt〃,ios_base::out); //创建一个输入文件流对象if(!ofile)(cerr<<〃保存时打开文件出错!〃<<endl;}cNode<cGuestroom>*p;p=tListGue->head->next;while(p)(//从内存中读取数据,存到外盘if(p->data.flag)(ofile<<〃\n〃;ofile<<(p->data).ID<<〃\n〃;ofile<<(p->data).Type<<〃\n〃;ofile<<(p->data).Book<<〃\n〃;ofile<<(p->data).Price<<〃\n〃;ofile<<(p->data).Function<<〃\n〃;ofile<<(p->data).StayTime<<〃\n〃;}p=p->next;}cout<<"保存数据成功!\n”;ofile.close();system(〃pause〃);system(〃cls〃);return;}voidModifytheGuestroom(tList<cGuestroom>*tListGue) //修改客房信息(charid[BUFSIZE];cout<<〃\n请输入你要查找的客房编号:〃;cin>>id; //读取客房编号boolflag二false;cNode<cGuestroom>*p;p=tListGue->head->next;while(p)(if(strcmp(p->data.ID,id)==0&&p->data.flag)(flag二true;break;}p=p->next;}if(flag==true)(//显示屏幕cout<<〃找到了,该客房的原始信息是:\n〃;\n〃;\n〃;//定义临时客房//读入客房编号//读入客房类型//读入定房日期//读入价格//读入客房的主要内容〃读入入住有效期cout<<"\n\n客房编号:〃<<(p->data).ID<<〃\t客房类型:〃<<(p->data).Type<<〃\n\t\t定房日期:〃<<(p->data).Book<<〃\n\t\t价格:〃<<(p->data).Price;cout<<"\n\t\t客房的主要内容:〃<<(p->data).Function<<〃\n\t\t入住有效期:〃<<(p->data).StayTime;cout<<〃\n下面开始修改该客房的信息:cGuestroomtempGuestroom;cout<<〃请输入客房的客房编号:〃;cin>>tempGuestroom.ID;cout<<〃请输入客房的客房类型:〃;cin>>tempGuestroom.Type;cout<<〃请输入客人的定房日期:〃;cin>>tempGuestroom.Book;cout<<〃请输入客房的客房价格:〃;cin>>tempGuestroom.Price;cout<<〃请输入客房的客房主要内容:〃cin>>tempGuestroom.Function;cout<<〃请输入客人入住客房有效期:〃cin>>tempGuestroom.StayTime;tempGuestroom.flag二true;p->data=tempGuestroom;cout<<〃修改成功!〃;cout<<endl;system(〃pause〃);system(〃cls〃);return;}voidDeletetheGuestroom(tList<cGuestroom>*tListGue) //删除客房信息(charid[BUFSIZE];cout<<〃\n请输入你要查找的客房编号:〃;cin>>id; //读取客房编号boolflag二false;intcount=0;cNode<cGuestroom>*p;p=tListGue->head->next;while(p)(if(strcmp(p->data.ID,id)==0&&p->data.flag)(count++;flag二true;break;}p=p->next;}if(flag二二false) cout<<"对不起,你所查找的客房延长了住房日期!\n〃;//如果不能删else //如果能删(count--;cout<<〃找到了,该客房的原始信息是:\n〃;cout<<"\n\n客房编号:〃<<(p->data).ID<<〃\t客房类型:〃<<(p->data).Type<<〃\n\t\t定房日期:〃<<(p->data).Book<<〃\n\t\t价格:〃<<(p->data).Price;cout<<〃\n\t\t客房的主要内容:〃<<(p->data).Function<<〃\n\t\t入住有效期:〃<<(p->data).StayTime;cout<<endl;(p->data).flag二false;cout<<〃该客房的信息删除成功!\n〃;}cout<<endl;system(〃pause〃);system(〃cls〃);return;}voidFindtheremainGuestroomById(tList<cGuestroom>*tListGue)//根据客房编号查找(charid[BUFSIZE];cout<<〃\n请输入你要查找的客房编号:〃;cin>>id; //读取客房编号boolflag二false;cNode<cGuestroom>*p;p=tListGue->head->next;while(p)(if(strcmp(p->data.ID,id)==0&&p->data.flag)(flag二true;break;}p=p->next;}if(flag==false)cout<<〃对不起,没有该标号的客房!\n〃; //如果找不到else//如果找到了(cout<<"\n找到了,该客房的信息是:\n”;cout<<"\n\n客房编号:〃<<(p->data).ID<<〃\t客房类型:〃<<(p->data).Type<<〃\n\t\t定房日期:〃<<(p->data).Book<<〃\n\t\t价格:〃<<(p->data).Price;cout<<"\n\t\t主要内容:〃<<(p->data).Function<<〃\n\t\t入住有效期:〃<<(p->data).StayTime;}cout<<endl;system(〃pause〃);system("cls"); //清屏return;}voidFindtheremainGuestroomByType(tList<cGuestroom>*tListGue)//根据客房类型查找客房(chartype[BUFSIZE];cout<<〃\n请输入你要查找的客房类型:〃;cin>>type; //读取客房类型boolflag二false;cNode<cGuestroom>*p;p=tListGue->head->next;while(p)(if(strcmp(p->data.Type,type)==0&&p->data.flag)(flag二true;break;}p=p->next;}if(flag==false) cout<<"对不起,没有该类型的客房!\n"; //如果满了else //如果找到了(cout<<"\n找到了,该客房信息是:\n”;cout<<"\n\n客房编号:〃<<(p->data).ID<<〃\t客房类型:〃<<(p->data).Type<<〃\n\t\t定房日期:〃<<(p->data).Book<<〃\n\t\t价格:〃<<(p->data).Price;cout<<"\n\t\t客房的主要内容:〃<<(p->data).Function<<〃\n\t\t入住有效期:〃<<(p->data).StayTime;}cout<<endl;system(〃pause〃);system(〃cls〃);return;}voidFindtheremainGuestroomByPrice(tList<cGuestroom>*tListGue)//根据价格查找客房(charprice[BUFSIZE];cout<<〃\n请输入你要查找的剩余客房的价格:〃;cin>>price; //读取价格boolflag二false;cNode<cGuestroom>*p;p=tListGue->head->next;while(p)(if(strcmp(p->data.Price,price)==0&&p->data.flag)flag二true;cout<<"\n\n客房编号:〃<<(p->data).ID<<〃\t客房类型:〃<<(p->data).Type<<〃\n\t\t定房日期:〃<<(p->data).Book<<〃\n\t\t价格:〃<<(p->data).Price;cout<<"\n\t\t客房的主要内容:〃<<(p->data).Function<<〃\n\t\t入住有效期:〃<<(p->data).StayTime;}p=p->next;}if(flag==false) cout<<"对不起,没有你所要求价格的客房!\n”;〃如果找不到cout<<endl;system(〃pause〃);system(〃cls〃);return;}voidFindtheremainGuestroom(tList<cGuestroom>*tListGue)//查找客房(system(〃cls〃);while(1)cout<<"\n\n\n\n";户选择查询查询cout<<"1:按客房编号查询\n\n〃;cout<<"2:按客房类型查询\n\n〃;cout<<"3:按价格查询\n\n〃;cout<<"4:退出查询\n\n〃;cout<<"你选择:〃;intchoose=0;cin>>choose;switch(choose)//根据用(case1:FindtheremainGuestroomById(tListGue);break;case2:FindtheremainGuestroomByType(tListGue);break;case3:FindtheremainGuestroomByPrice(tListGue);break;case4://按客房编号〃按客房类型//按价格查system(〃cls〃);return;//退出查default:break;}}return;}voidRanktheremainGuestroom(tList<cGuestroom>*tListGue) //排序乘。余客房{cNode<cGuestroom>*p,*q;cGuestroomremainGuestroom;for(p=tListGue->head->next;p!=NULL;p=p->next)(for(q=p;q!=NULL;q=q->next)(if(p->data.StayTime>q->data.StayTime)(remainGuestroom.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑设计有限公司建筑设计流程的管理细则
- 社区获得性肺炎防治指南
- 防治质量通病的措施
- 防汛应急预案响应程序
- 方城密封固化地坪施工方案
- 2026年客户满意度调查分析报告
- (新)《美术鉴赏》测试题及答案
- 2023药品销售年度工作总结
- 2026年高考北京卷政治考试复习试卷及答案
- 2025年绵阳南山双语中学初一入学数学分班考试真题含答案
- 2025中数联物流科技(上海)有限公司招聘笔试历年参考题库附带答案详解
- 物业交接表格2
- 驾驶员雨天安全教育培训课件
- 超市即时配送管理办法
- 2025年常州市中考物理试卷(含标准答案及解析)
- 2024年高校辅导员素质能力大赛试题(附答案)
- 2025译林版高中英语新教材必修第一册单词表默写(汉英互译)
- SolidWorks软件介绍讲解
- 交换机的工作原理
- 2025年针灸简答题试题及答案
- 2025年高考真题-化学(湖南卷) 含答案
评论
0/150
提交评论