C++课程设计酒店管理系统.docx
《C++课程设计酒店管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计酒店管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![C++课程设计酒店管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/28/78deca05-98ae-4818-981a-015a3b696131/78deca05-98ae-4818-981a-015a3b6961311.gif)
C++课程设计酒店管理系统
1.课题简介………………………………………03
2.设计方案………………………………………04
3.具体设计及截屏图……………………………05
4.关键代码分析…………………………………10
5.测试……………………………………………15
6.课题总结与体会………………………………17
7.参考文献………………………………………18
8.源代码…………………………………………19
1.课题简介
客房管理系统是根据某酒店对客房管理的实际情况进行编写的,主要目的是为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的工作。
经过电脑及生活中的调查研究,根据客人的经济水平和生活理念,客房的类型已趋向于多样化,有标准房,单人房,VIP间,甚至总统套房。
而初步设定通过客房的编号、类型、价格来定位一个客房的管理系统。
客房是一个对外服务的内容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。
客人对剩余客房需要进行选择,系统必须实现相应的查询、排序和输出功能,使客人择优而居。
本次课程设计需要实现的是——客房管理系统的链表实现。
主要实现的功能包括:
客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。
客房信息可写入文件,也可从文件中读取。
客房信息涉及的数据有客房编号、客房类型、定房日期、客房内容(设施)、定房有效期等。
2.设计方案
按照需求分析所得,客房信息系统有以下几个功能模块:
1.添加录入信息模块;
编写指针摸板,定义临时的客房间数,包括其各项类的成员,编号,类型,定房日期,价格,客房内容,入住天数。
3.修改客房信息模块;
读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参数,并保存。
4.删除客房信息模块;
从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。
5.查询剩余客房函数;
分按编号、类型、价格查询,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。
6.排序剩余客房模块;
根据具体所需排序,可以是编号、价格或者类型,本系统中根据的是客房入住的天数来排序。
7.输出剩余客房函数;
输出根据系统所需排序后的客房信息,本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。
由上述需求分析可得,系统的功能模块图如图1所示。
图1
2.具体设计及截屏图
1、类的设计
根据上述需求分析,有客房类和链表类。
(1)客房类
系统研究客房cGuestroom类中成员:
ID[SIZE]是客房编号,Type[SIZE]是客房类型,Book[SIZE]是定房日期,Price[SIZE]是每间客房的价格,StayTime[SIZE]是定房的有效期,Function[SIZE]是客房的主要内容(如浴室、卫生间、网线等设施),标志flag和构造函数cGuestroom()。
客房类的UML图如(图2)所示:
classcGuestroom
+ID[BUFSIZE]:
char//客房编号
+Type[BUFSIZE]:
char//客房类型
+Book[BUFSIZE]:
char//定房日期
+Function[BUFSIZE]:
char//客房内容
+StayTime:
int//定房有效期
+flay:
bool//标志
+cGuestroom()//构造函数初始化
图2
(2)链表类
在tList类中,有成员:
构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty()const,从尾部插入一个元素的函数Insert(constTe),返回第i个节点的函数GetcNode(inti),在链表中查询某个值的函数boolFind(constTe),析构函数~tList(),头节点head。
链表类的UML图如(图3)所示:
tList
+tList();
+Create():
void
+Empty()const:
bool
+Insert(conste:
T):
void
+*GetcNode(i:
int):
cNode
+Find(conste:
T):
bool
+~tList();
+*head:
cNode
图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()
{tListtListMedic;
();房信息的录入\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)D<<"\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<(p->data).flag=false;
cout<<"该客房的信息删除成功!
\n";}
cout<system("pause");
system("cls");
return;
}
(4)信息的修改
按提示输入要修改的客房的客房编号,定义一个指向链表第一个节点的指针p。
如果指针创建成功,开始用while和if语句实现p指向的节点的客房编号与存在的客房编号的比较。
如果相同,提示输入房间的各个信息;如果没有相同,提示没有所查询的客房。
voidModifytheGuestroom(tList*tListMedic)D<<"\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";
cGuestroomtempGuestroom;试
程序测试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
原程序:
voidRanktheremainGuestroom(tList*tListMedic)题总结与体会
本次的C++课程设计虽然只是短短的两个星期,但是却令我体会很多,也学到很多东西。
利用C++去设计客房管理,使我加强了对C++的认识,也对现代客房的基本运作管理有了初步了解。
在这次课程设计中,我还懂得了程序开发中的一些比较重要的步骤并且学会了一些没有接触过的知识,比如需求分析、类的设计以及类与类之间的关系,UML图形的表示方法等。
面向对象程序设计作为一门软件设计的课程,具有极强的实践性,使我加强了灵活应用理论知识的能力及面向对象程序设计技能。
C++语言相对于C语言来更具有优越性,它不仅兼容C,还有一个非常重要的特点就是面向对象(具体来讲就是类),另外模板技术的频繁引用,也使整个程序看起来更清晰,更有条理化,所以,对模块的掌握,在C++学习中是非常重要的。
在本次的应用程序的设计和创建过程中,我遇到了许多问题,有些是自己没有在教科书中学过的,但是却是系统所必须的,我通过在网上查找资料、查找书本、请教老师,一步步的把这些问题搞懂了,所以,课程设计也培养了我们探索实践的能力。
总之,我觉得,我们学习和掌握的知识,只有通过实际应用,才能真正的理解和掌握,才能更好的去应用。
以前上C++课程,只是零散被动地接受知识,而不是主动地去吸收渗透,而此次的课程设计却让我对编程产生了兴趣,习惯独立自主地完成任务,在困难中寻求帮助,加强和同学间的互帮互助,相信自己会在以后的学习和工作更加有经验。
通过课程设计,我既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。
7.参考文献
【1】陈维兴,林小茶.C++面向对象程序设计教程.北京.清华大学出版社2010,10
【2】谭浩强.C语言程序设计.北京:
清华大学出版社.2010,5
【3】源代码
D<<"\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";
();
system("pause");
system("cls");
return;
}
voidModifytheGuestroom(tList*tListGue)D<<"\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";
cGuestroomtempGuestroom;D<<"\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<(p->data).flag=false;
cout<<"该客房的信息删除成功!
\n";
}
cout<system("pause");
system("cls");
return;
}
voidFindtheremainGuestroomById(tList*tListGue)D<<"\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<system("pause");
system("cls");D<<"\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<system("pause");
system("cls");
return;
}
voidFindtheremainGuestroomByPrice(tList*tListGue)D<<"\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";D<<"\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;
}
cout<system("pause");房信息的录入\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(&tListGue);break;//输入客房信息
case2:
SaveData(&tListGue);break;//客房信息信息保存
case3:
ModifytheGuestroom(&tListGue);break;//修改客房信息
case4:
DeletetheGuestroom(&tListGue);break;//删除客房信息
case5:
FindtheremainGuestroom(&tListGue);break;//查询剩余客房信息
case6:
RanktheremainGuestroom(&tListGue);break;//排序剩余客房信息
case7:
OutputtheremainGuestroom(&tListGue);break;//输出剩余客房信息
case8:
exit(0);//退出
default:
break;
}
}
return0;
}