1、根据上述需求分析,有客房类和链表类。(1)客房类系统研究客房cGuestroom类中成员: IDSIZE是客房编号,TypeSIZE是客房类型,BookSIZE是定房日期,PriceSIZE是每间客房的价格,StayTimeSIZE是定房的有效期,FunctionSIZE是客房的主要内容(如浴室、卫生间、网线等设施),标志flag和构造函数cGuestroom()。客房类的UML图如(图2)所示:class cGuestroom+ IDBUFSIZE:char/ 客房编号+ TypeBUFSIZE:char/客房类型+ BookBUFSIZE:char/定房日期+ FunctionBUFSIZ
2、E:char/客房内容+StayTime :int/定房有效期+ flay :bool/标志+ cGuestroom()/构造函数初始化图2(2)链表类在tList类中,有成员:构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty() const,从尾部插入一个元素的函数Insert(const T e),返回第i个节点的函数GetcNode(int i),在链表中查询某个值的函数bool Find(const T e),析构函数tList(),头节点head。链表类的UML图如(图3)所示:tList+tList();+ Create():void +Empty
3、() const:bool +Insert(conste:T):+*GetcNode(i:int):cNode+Find(const e:+tList();+ *head: 图32界面设计:(1) 主界面的设计主界面中显示客房管理系统的全部信息,客房信息的录入,客房信息的保存,客房信息的修改,客房信息的删除,剩余客房的查询,剩余客房的排序,剩余客房的输出,客房信息管理系统如图4所示。图4 主界面(2)分界面:客房信息的录入的设计提示输入客房编号,客房类型,客人定房日期,客房价格,客房中的主要内容,客房定房的有效期。客房信息录入如图5所示。图5 录入客房信息的分界面(3)分界面:客房信息的保存的
4、设计针对第一步客房信息的输入及以后信息的修改、删除做一个文件保存。客房信息保存如图6所示。图6 保存客房信息的分界面(4)分界面:客房信息的修改的设计提示根据编号进行客房信息修改,输入要修改的内容,如不修改的项目就远洋输出。客房信息修改界面如图7所示。图7 修改客房信息的分界面(5)分界面:客房信息的删除的设计提示进入删除截面,根据客房编号查找所需删除的客房信息。客房信息的删除界面如图8所示。图8 删除客房信息的分界面(6)分界面:剩余客房信息的查询的设计在保存完所修改或删除的客房信息,查询剩余的客房信息,按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。查询剩余客房的信
5、息界面如图9所示。图9 查询客房信息的分界面(7)剩余客房信息的排序的设计按提示进行剩余客房的排序,本系统中是以客人的入住天数排序,显示屏幕如图10所示。(8)分界面:剩余客房信息的输出的设计在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。剩余客房信息输出界面如图10所示。图10 输出剩余客房的信息4.关键代码分析(1)系统的登录在主函数中,输出客房信息系统的各功能提示。选择需要执行功能的序号,由switch判断和选择所需要执行的功能。选择1:执行客房信息的录入;选择2:执行保存客房的信息;选择3:执行教工基本信息的保存;选择4:执行教工基本信息的删除;选择5:执行教工工资按
6、从高到低排序;选择6:执行教工基本信息的修改;选择7:执行教工基本信息的查询;选择8:退出;主函数:int main() tList tListMedic; tListMedic.Create(); /创建链表 ReadData(&tListMedic); while(1) coutnn 客房管理系统 nn; cout - nn coutchoose; switch (choose) /用户选择 case 1:AddtheGuestroom(& break; /输入客房信息 case 2:SaveData(&break; /客房信息信息保存 case 3:ModifytheGuestroom(
7、& /修改客房信息 case 4:DeletetheGuestroom(& /删除客房信息 case 5:FindtheremainGuestroom(& /查询剩余客房信息 case 6:RanktheremainGuestroom(& /排序剩余客房信息 case 7:OutputtheremainGuestroom(& /输出剩余客房信息 case 8:exit(0); /退出 default : return 0; 在读取数据库中,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,有利于后面的信息修改、删除等功能。读取数据库:void ReadData(tList *tLi
8、stMedic) /读取数据库 char bufBUFSIZE; ifstream ifile(Guestroom.txt,ios_base:in); /创建一个输出文件流对象 if (!ifile) cerr 读取时打开文件出错! Insert(Guestroom);读取数据成功!nn i(); /关闭文件 return;(2)信息的添加客房信息的录入,创建cGuestroom类和tempGuestroom对象,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间内容及个人的入住有效期,通过Insert函数实现。void AddtheGuestroom(tListInsert
9、(tempGuestroom);添加成功!n system(pause);cls(3)信息的删除删除客房信息,按要求提示输入要删除客房的房间编号,定义一个指向链表第一个节点的指针p。如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。如果相同,输出该客房的信息并删除;如果没有相同的,提示没有所查询的房间。void DeletetheGuestroom(tList *tListMedic) /删除客房信息 char idBUFSIZE;n请输入你要查找的客房编号:id; bool flag=false; int count=0; cNodehead-ne
10、xt; while(p) if(strcmp(p-data.ID,id)=0 & p-data.flag) count+; flag=true; break; p=p- if(flag=false) coutdata).IDt客房类型:data).Typentt定房日期:data).Bookntt价格:data).Price;ntt客房的主要内容:data).Functiondata).flag=false;该客房的信息删除成功!(4)信息的修改按提示输入要修改的客房的客房编号,定义一个指向链表第一个节点的指针p。如果相同,提示输入房间的各个信息;如果没有相同,提示没有所查询的客房。void
11、ModifytheGuestroom(tList flag=true; p=p- if(flag=true) cout请输入客房的客房类型:请输入客人的定房日期:请输入客房的客房价格:请输入客房的客房主要内容: /读入客房的主要内容请输入客人入住客房有效期: tempGuestroom.flag=true; p-data=tempGuestroom;修改成功!5.测试程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。原程序:void RanktheremainGuestroom(tList *tListMedic) /排序剩余客房cNode p
12、!= NULL; p=p-next) for (q=p; q! q=q- 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.Fun
13、ction, p-data.Function); remainGuestroom.StayTime = p-data.StayTime; p-data.flag = q- strcpy(p-data.Function, q-data.ID, q-data.Type, q-data.Book, q-data.StayTime = q- q-data.flag = remainGuestroom.flag; strcpy(q-data.Function, remainGuestroom.Function);data.ID, remainGuestroom.ID);data.Type, remainGuestroom.Type);data.Book, remainGuestroom.Book);data.StayTime = remainGuestroom.StayTime; 编译成功后开始运行,信息录入后,不能在文档中正确排序输出,经Debug调试,发现,以客人的入住天数排序来及时调出空余客房为最佳选择。data.StayTime data.StayTime)data.Type, remainGuestroom.Type
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1