C课程设计·酒店管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)所示:
(2)链表类
在tList Create(),判断链表是否为空的函数,返回第i个节点的函数bool Find(const T e),析构函数~tList()
图3
2.界面设计:
(1)
图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:退出;
主函数:
int main()
{ tList
tListMedic.Create(); //创建链表
ReadData(&tListMedic);
while(1)
{ cout<<"\n\n 客房管理系统 \n\n";
cout<<" ---------------------------------- \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<<" 请选择:";
int choose=0;
cin>>choose;
switch (choose) //用户选择
{ case 1:AddtheGuestroom(&tListMedic); break; //输入客房信息
case 2:SaveData(&tListMedic);break; //客房信息信息保存 case 3:ModifytheGuestroom(&tListMedic); break; //修改客房信息
case 4:DeletetheGuestroom(&tListMedic); break; //删除客房信息
case 5:FindtheremainGuestroom(&tListMedic); break; //查询剩余客房信息
case 6:RanktheremainGuestroom(&tListMedic); break; //排序剩余客房信息 case 7:OutputtheremainGuestroom(&tListMedic); break; //输出剩余客房信息
case 8:exit(0); //退出
default : break;}
return 0; }
}
在读取数据库中,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,有利于后面的信息修改、删除等功能。
读取数据库:
void ReadData(tList
{
char buf[BUFSIZE];
ifstream ifile("Guestroom.txt",ios_base::in); //创建一个输出文件流对象if (!ifile)
{
cerr << "读取时打开文件出错!" << endl;
}
cGuestroom Guestroom;
while(ifile.getline(buf,BUFSIZE)) //遍历文本,读取数据