C++课程设计酒店管理系统Word文档下载推荐.docx
- 文档编号:17934715
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:30
- 大小:45.66KB
C++课程设计酒店管理系统Word文档下载推荐.docx
《C++课程设计酒店管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++课程设计酒店管理系统Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
1、类的设计
根据上述需求分析,有客房类和链表类。
(1)客房类
系统研究客房cGuestroom类中成员:
ID[SIZE]是客房编号,Type[SIZE]是客房类型,Book[SIZE]是定房日期,Price[SIZE]是每间客房的价格,StayTime[SIZE]是定房的有效期,Function[SIZE]是客房的主要内容(如浴室、卫生间、网线等设施),标志flag和构造函数cGuestroom()。
客房类的UML图如(图2)所示:
图2
(2)链表类
在tList类中,有成员:
构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty()const,从尾部插入一个元素的函数Insert(constTe),返回第i个节点的函数GetcNode(inti),在链表中查询某个值的函数boolFind(constTe),析构函数~tList(),头节点head。
链表类的UML图如(图3)所示:
图3
2.界面设计:
(1)主界面的设计
主界面中显示客房管理系统的全部信息,客房信息的录入,客房信息的保存,客房信息的修改,客房信息的删除,剩余客房的查询,剩余客房的排序,剩余客房的输出,客房信息管理系统如图4所示。
图4主界面
(2)分界面:
客房信息的录入的设计
提示输入客房编号,客房类型,客人定房日期,客房价格,客房中的主要内容,客房定房的有效期。
客房信息录入如图5所示。
图5录入客房信息的分界面
(3)分界面:
客房信息的保存的设计
针对第一步客房信息的输入及以后信息的修改、删除做一个文件保存。
客房信息保存如图6所示。
图6保存客房信息的分界面
(4)分界面:
客房信息的修改的设计
提示根据编号进行客房信息修改,输入要修改的内容,如不修改的项目就远洋输出。
客房信息修改界面如图7所示。
图7修改客房信息的分界面
(5)分界面:
客房信息的删除的设计
提示进入删除截面,根据客房编号查找所需删除的客房信息。
客房信息的删除界面如图8所示。
图8删除客房信息的分界面
(6)分界面:
剩余客房信息的查询的设计
在保存完所修改或删除的客房信息,查询剩余的客房信息,按提示进入剩余客房查询界面,有按编号、类型、价格查询,根据拥护自主选择。
查询剩余客房的信息界面如图9所示。
图9查询客房信息的分界面
(7)剩余客房信息的排序的设计
按提示进行剩余客房的排序,本系统中是以客人的入住天数排序,显示屏幕如图10所示。
(8)分界面:
剩余客房信息的输出的设计
在排序完后的剩余客房中,输出所有客房的信息,以检验客房的经营情况。
剩余客房信息输出界面如图10所示。
图10输出剩余客房的信息
4.关键代码分析
(1)系统的登录
在主函数中,输出客房信息系统的各功能提示。
选择需要执行功能的序号,由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"
2:
客房信息保存\n\n"
3.客房信息的修改\n\n"
4.客房信息的删除\n\n"
5.剩余客房信息的查询\n\n"
6.剩余客房信息的排序\n\n"
7.剩余客房信息的输出\n\n"
8.退出系统\n\n"
请选择:
intchoose=0;
cin>
>
choose;
switch(choose)//用户选择
{case1:
AddtheGuestroom(&
break;
//输入客房信息
case2:
SaveData(&
break;
//客房信息信息保存
case3:
ModifytheGuestroom(&
//修改客房信息
case4:
DeletetheGuestroom(&
//删除客房信息
case5:
FindtheremainGuestroom(&
//查询剩余客房信息
case6:
RanktheremainGuestroom(&
//排序剩余客房信息
case7:
OutputtheremainGuestroom(&
//输出剩余客房信息
case8:
exit(0);
//退出
default:
}
return0;
}
}
在读取数据库中,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,有利于后面的信息修改、删除等功能。
读取数据库:
voidReadData(tList<
*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);
//读取客房类型
strcpy(Guestroom.Type,buf);
//读取提前定房日期
strcpy(Guestroom.Book,buf);
//读取价格
strcpy(Guestroom.Price,buf);
//读取客房主要内容
strcpy(Guestroom.Function,buf);
//读取入住有效期
Guestroom.StayTime=atoi(buf);
Guestroom.flag=true;
tListMedic->
Insert(Guestroom);
读取数据成功!
\n\n"
ifile.close();
//关闭文件
return;
(2)信息的添加
客房信息的录入,创建cGuestroom类和tempGuestroom对象,调用构造函数,输入客房的房间编号、房间类型、定房日期、房间价格、房间内容及个人的入住有效期,通过Insert函数实现。
voidAddtheGuestroom(tList<
*tListMedic)//输入客房函数
{cGuestroomtempGuestroom;
//定义临时客房
下面开始添加客房信息\n"
请输入入住的客房编号:
tempGuestroom.ID;
//读入客房编号
请输入客房类型:
tempGuestroom.Type;
//读入客房类型
请输入客人定房日期:
tempGuestroom.Book;
//读入定房日期
请输入客房价格:
tempGuestroom.Price;
//读入价格
请输入客房的主要内容:
tempGuestroom.Function;
//读入主要内容
请输入客房入住有效期:
tempGuestroom.StayTime;
//读入入住有效期
tempGuestroom.flag=true;
tListMedic->
Insert(tempGuestroom);
添加成功!
\n"
system("
pause"
);
cls"
(3)信息的删除
删除客房信息,按要求提示输入要删除客房的房间编号,定义一个指向链表第一个节点的指针p。
如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。
如果相同,输出该客房的信息并删除;
如果没有相同的,提示没有所查询的房间。
voidDeletetheGuestroom(tList<
*tListMedic)//删除客房信息
{charid[BUFSIZE];
\n请输入你要查找的客房编号:
id;
boolflag=false;
intcount=0;
cNode<
*p;
p=tListMedic->
head->
next;
while(p)
{if(strcmp(p->
data.ID,id)==0&
&
p->
data.flag)
{count++;
flag=true;
break;
p=p->
if(flag==false)cout<
对不起,你所查找的客房延长了住房日期!
//如果不能删
else//如果能删
{count--;
找到了,该客房的原始信息是:
\n\n客房编号:
(p->
data).ID<
\t客房类型:
data).Type<
\n\t\t定房日期:
data).Book<
\n\t\t价格:
data).Price;
\n\t\t客房的主要内容:
data).Function<
\n\t\t入住有效期:
data).StayTime;
endl;
(p->
data).flag=false;
该客房的信息删除成功!
(4)信息的修改
按提示输入要修改的客房的客房编号,定义一个指向链表第一个节点的指针p。
如果相同,提示输入房间的各个信息;
如果没有相同,提示没有所查询的客房。
voidModifytheGuestroom(tList<
*tListMedic)//修改客房信息
cin>
{flag=true;
p=p->
if(flag==true)
{cout<
\n下面开始修改该客房的信息:
cGuestroomtempGuestroom;
请输入客房的客房编号:
cin>
请输入客房的客房类型:
请输入客人的定房日期:
请输入客房的客房价格:
请输入客房的客房主要内容:
//读入客房的主要内容
请输入客人入住客房有效期:
tempGuestroom.flag=true;
p->
data=tempGuestroom;
修改成功!
5.测试
程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
原程序:
voidRanktheremainGuestroom(tList<
*tListMedic)//排序剩余客房
{cNode<
*p,*q;
cGuestroomremainGuestroom;
for(p=tListMedic->
p!
=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.Function,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)
6.课题总结与体会
本次的C++课程设计虽然只是短短的两个星期,但是却令我体会很多,也学到很多东西。
利用C++去设计客房管理,使我加强了对C++的认识,也对现代客房的基本运作管理有了初步了解。
在这次课程设计中,我还懂得了程序开发中的一些比较重要的步骤并且学会了一些没有接触过的知识,比如需求分析、类的设计以及类与类之间的关系,UML图形的表示方法等。
面向对象程序设计作为一门软件设计的课
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 酒店 管理 系统