计算机学院课程设计报告
课程名称: C++课程设计
课题:客房管理系统
专业班级:
学号:
姓名:
指导老师:
日期: 2013年7 月3 日
目录
1.课题简介 (03)
2.设计方案 (04)
3.具体设计及截屏图 (05)
4.关键代码分析 (10)
5.测试 (15)
6.课题总结与体会 (17)
7.参考文献 (18)
8.源代码 (19)
1.课题简介
客房管理系统是根据某酒店对客房管理的实际情况进行编写的,主要目的是
为了方便酒店对客房的实际情况进行集中的查询与管理工作,以提高整个酒店的
工作。
经过电脑及生活中的调查研究,根据客人的经济水平和生活理念,客房的类型已趋向于多样化,有标准房,单人房,VIP间,甚至总统套房。而初步设定通过客房的编号、类型、价格来定位一个客房的管理系统。
客房是一个对外服务的容,为了客人的住宿要求,所以系统需要实现客房信息的录入、修改和删除功能。
客人对剩余客房需要进行选择,系统必须实现相应的查询、排序和输出功能,使客人择优而居。
主要实现的功能包括:客房信息的录入、修改、删除、剩余客房信息查询、排序、输出。客房信息可写入文件,也可从文件中读取。客房信息涉及的数据有
客房编号、客房类型、住房天数、订金、客户、客户等。
2.设计方案
按照需求分析所得,客房信息系统有以下几个功能模块:
1.新建两个类;
分别为Customer和HolterRoom ,其中Customer为基类,HolterRoom通过共有继承,成为Customer的派生类。
2.录入,增添客房信息;
先判断是否已存在客房信息,如果已存在,则再选择是否添加;若不存在,则添加客房信息。
3.修改客房信息;
读取保存的客房信息数据,根据客房编号查找所需修改的客房信息,然后根据具体所需,修改成员参数。
4.删除客房信息模块;
从保存中的文件中读取信息,删除需要删除的信息,完善现在的客房运作。5.查询客房函数;
分按编号、类型、客户查找客房信息,这样可以更具有人性化来选择所剩余的客房,从而进行日常安排。
7.输出剩余客房函数;
输出根据系统所需排序后的客房信息,本系统中是根据了客人入住的有效期即天数来及时了解空出的房间。
图1
2.具体设计及截屏图
1、类的设计
根据上述需求分析,有客房类和客户类。
(1)客户类
客户类中的主要成员有:name为客户,ID为客户,money为客户订金,StayTime 为将要入住客房时长。
(2)客房类
客房类中的主要成员有:num是客房编号,Type是客房类型,Price是客房价格, HolterRoom()为客房类的构造函数,同时Customer类中的成员均是客房类的成员。
2.界面设计:
(1) 主界面的设计
主界面中显示客房管理系统的全部信息,客房信息的录入,客人入住登记,客房信息的修改,客人退房结算,查询所有客房信息,查询(包括按房间号,按房间类型,按客户查询,同时还有输出所有空房信息),删除客房信息。
酒店客房管理系统如图1所示。
图2 主界面
(2)分界面:客房信息查询设计
分别实现按,按房间号和按房间类型查询客房信息的功能,还可实现输出所有空房信息的功能。客房信息录入如图2所示。
图3录入客房信息的分界面
(4)分界面:客房信息的修改的设计
提示根据编号寻找到客房并输出该客房容,然后询问用户是否要修改客房信息,修改界面如图所示。
图4 修改客房信息的分界面
(5)分界面:客房信息的删除的设计
提示根据编号寻找到客房并输出该客房容,然后询问用户是否要删除客房信息
,修改界面如图所示。
图5 删除客房信息的分界面
(6)分界面:剩余客房信息的查询的设计
在保存完所修改或删除的客房信息,查询剩余的客房信息,可浏览所有空房信息。查询空房的信息界面如图6所示。
图6 查询客房信息的分界面
(7)分界面:所有信息的输出的设计
在排序完后的所有客房中,输出所有客房的信息,以检验客房的经营情况。
所有客房信息输出界面如图7所示。
图7 所有客房的信息
4.关键代码分析
(1)系统的登录
在主函数中,输出客房信息系统的各功能提示。选择需要执行功能的序号,由switch判断和选择所需要执行的功能。
选择1:执行客房信息的录入;
选择2:执行客人入住登记;
选择3:执行教工客房信息的修改;
选择4:执行客人退房结算;
选择5:执行查询所有客房信息;
选择6:执行查询;
选择7:执行删除客房信息;
选择8:退出系统;
主函数:
int main()
{
HolterRoom Room[200]; //创建客房对象数组
int top;
HolterRoom b;
top=-1;
fstream file("Room.txt",ios::in);
while (1)
{
file.read((char *)&b,sizeof(b));
if (!file) break;
top++;
Room[top]=b;
}
file.close(); //读取文件夹Room.txt中的数据
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;
system("cls");
switch (choose) //用户的选择
{
case 1:set_HolterRoom_info(Room); break; //输入客房信息
case 2:set_Customer_info(Room);break; //客人入住登记
case 3:Change_HolterRoom_info(Room); break; //修改
客房信息
case 4:SetCount(Room);break; //客户退房
case 5:PrintAll(Room); break; //查询所有客房信息 case 6:Find_choose(Room); break; //查询
case 7:Delete_HolterRoom(Room);break; //删除客房信息
case 8:Write(Room);
Save_HolterRoom_info(Room);
Save_Customer_info(Room);
exit(0); //退出 default : break;
}
}
return 0;
}
在读取数据时,可以从以有的文件中读取数据到程序中,避免了程序的重复输入数据,既实现了程序的多次可持续地使用,又有利于后面的信息修改、删除等功能。
void Read(HolterRoom *Room) //读取数据库
int top;
HolterRoom b;
top=-1;
fstream file("Room.txt",ios::in); //创建一个输入文件流对象,读取文件夹Room.txt中的数据。
while (1)
{
file.read((char *)&b,sizeof(b));
if (!file) break;
top++;
Room[top]=b;
};
file.close();//关闭文件
(2)信息的添加
客房信息的录入,创建HolterRoom类和Room对象数组,调用构造函数,
输入客房的房间编号、房间类型、定房日期、房间价格、房间容及个人的入住有效期。
void set_HolterRoom_info(HolterRoom *Room)
if(Room[0].num==0)
{
int size;
cout<<"暂无房间信息,请添加!"< static int Number=700; cout<<"请输入要添加的房间数:"; cin>>size; for(int i=0;i { Room[i].num=Number++; cout<<"房间:"< cout<<"房间类型:"; cin>>Room[i].Type; cout<<"房间价格:"; cin>>Room[i].Price; cout< }; cout<<"客房信息录入成功!"< } else { string P; cout<<"客房信息已有,是否要添加房间?(Y/N)"; cin>>P; if(P=="Y") add_HolterRoom_info(Room); else if(P=="N") cout<<"已取消房间添加."< else cout<<"此操作非法!"< }; system("pause"); system("cls"); }; (3)信息的删除 删除客房信息,按要求提示输入要删除客房的房间编号,通过for循环和if语句寻找到要删除的客房,并显示其信息,然后询问用户是否要删除客房信息,通过if语句进行判断,若输入“Y”则删除,并显示删除成功,若为“N” ,则取消删除,输入其他均显示“非法操作!”。 void Delete_HolterRoom(HolterRoom *Room) { int Num; cout<<"请输入要删除的房间号:"; cin>>Num; for(int i=0;i<30;i++) if(Room[i].num==Num ) { string B; cout<<"房间已找到:"< cout<<"房间类型:"; cout< cout<<"房间价格:"; cout< cout<<"客户信息:"< cout<<"客户:";