C++课程设计+宾馆管理系统+完整的报告Word文件下载.docx
《C++课程设计+宾馆管理系统+完整的报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++课程设计+宾馆管理系统+完整的报告Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
(3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;
2实验基本要求:
(1)实现用户信息的输入
(2)实现不同等级房间费用的查询
(3)实现用户房间的预定
(4)实现用户住宿费用的结算
二、程序设计步骤
1、设计用户登陆界面
2、建立类别
3、合理的使用继承和多态性把各类别组合起来
三、程序分块设计
1、用户登陆界面程序:
voidwelcome()//验证用户登陆,登陆成功显示欢迎信息
{
cout<
<
endl;
"
▲*******************************▲\n"
;
*欢迎使用宾馆管理系统!
*\n"
}
程序运行截图:
2订房实现程序如下:
voidbook_room()
customer[i]=newCustomer;
introom_standard,day;
请您选择预定房间的标准:
\n"
1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n"
cin>
>
room_standard;
请输入预定天数\n"
day;
customer[i]->
set_day(day);
switch(room_standard)
{
intn;
case1:
cout<
住房费用总共为:
"
day*150<
元\n"
for(n=0;
n<
20;
n++)//从第一个级别的房间中查找一个空闲的房间
{
if(room[n].state==0)//state=0表示该住房没有被预定的
预定成功★房间号码为:
room[n].number<
room[n].state=1;
customer[i]->
set_room_number(room[n].number);
break;
}
case2:
day*200<
for(n=20;
40;
n++)
if(room[n].state==0)
case3:
day*300<
for(n=40;
60;
case4:
day*600<
for(n=60;
80;
}
i++;
//住房的顾客数加1
程序运行的截图如下:
3顾客的入住登记程序:
voidcheck_in()
charname1[10],id1[19];
intding_or_no,prepaid;
该顾客订房了吗?
(1->
订了2->
没订)"
ding_or_no;
if(ding_or_no==1)
请输入顾客的姓名:
cin>
name1;
请输入顾客的身份证号码:
id1;
for(intj=0;
j<
=i;
j++)
if((strcmp(customer[j]->
get_name(),name1)==0)&
&
(strcmp(customer[j]->
get_ID(),id1)==0))//查找该顾客的定房信息
intnum=customer[j]->
get_room_number();
//取得定房的房间号
顾客"
name1<
今天入住本宾馆!
?
num<
room[num%100-1].state=2;
//修改房间状态为入住状态
}
else
customer[i]=newCustomer;
introom_standard,day;
请输入住宿天数\n"
switch(room_standard)
{
case1:
prepaid=day*150;
set_prepaid(prepaid);
请收房费"
prepaid<
元整!
入住房间号码为:
room[n].state=2;
case2:
prepaid=day*200;
case3:
prepaid=day*300;
case4:
prepaid=day*600;
i++;
4程序的退房结算:
voidcheck_out()
charname2[10],id2[19];
intstandard,j,room_number,day1,day2,day;
请输入要退房的顾客姓名和身份证号码:
name2>
id2;
请输入该顾客实住天数:
day2;
for(j=0;
i;
get_name(),name2)==0)&
get_ID(),id2)==0))
room_number=customer[j]->
standard=room_number/100;
day1=customer[j]->
get_day();
day=day1-day2;
switch(standard)
case6:
顾客的房间号是"
room_number<
:
为单人间,每天150元\n"
实际消费"
day2*150<
case7:
为单人间,每天200元\n"
day2*200<
case8:
为单人间,每天300元\n"
day2*300<
case9:
为单人间,每天600元\n"
day2*600<
退房核算清楚,请按1:
characcount;
account;
if(account=='
1'
)
for(intk=0;
k<
k++)
if(room[k].number==customer[j]->
get_room_number())
room[k].state=0;
i--;
for(;
customer[j]=customer[j+1];
deletecustomer[i];
5系统的查询功能程序如下:
voidinquire()
charinquire_choice;
房间信息查询请按1"
inquire_choice;
if(inquire_choice=='
intj,k=0;
下列房间还没人预订,也没人入住:
for(j=0;
if(room[j].state==0)
if(k%10==0)cout<
room[j].number<
'
\t'
k++;
k=0;
下列房间已预订:
if(room[j].state==1)
下列房间有人入住:
if(room[j].state==2)
6、主函数程序如下:
voidmain()//程序入口从这里开始运行
charchoice='
initial_room();
//初始化80个房间的信息,分四个等级
welcome();
//验证用户登陆,登陆成功显示欢迎信息
while(choice=='
enter();
//根据用户的选择执行不同的功能
继续使用本系统请按\"
1\"
退出请按\"
2\"
!
choice;
四、完整源程序如下:
#include<
iostream.h>
string.h>
//***********************************************************************************
voidinitial_room();
//初始化80个房间信息
voidwelcome();
voidenter();
voidbook_room();
voidcheck_in();
voidcheck_out();
voidinquire();
inti=0;
structRoom
intnumber;
intdank;
intprice;
intstate;
};
classCustomer
public:
Customer();
voidset_name(char*n){strcpy(name,n);
voidset_ID(char*p){strcpy(ID,p);
voidset_room_number(intn){room_number=n;
voidset_day(intd){day=d;
voidset_prepaid(intp){prepaid=p;
char*get_name(){returnname;
char*get_ID(){returnID;
intget_room_number(){returnroom_number;
intget_day(){returnday;
virtual~Customer();
private:
charname[10],ID[19];
introom_number;
intprepaid;
intchange;
intday;
Customer:
:
Customer()
请您输入顾客的姓名\n"
name;
请您输入顾客的身份证号码\n"
ID;
prepaid=change=day=0;
~Customer()
该顾客退房成功!
Roomroom[80];
Customer*customer[80];
//系统登陆界面***********************************************************************
//系统入口***************************************************************************
voidenter()
intkind_of_service;
请选择服务类别:
订房、入住、退房还是查询?
\n"
1->
定房2->
入住3->
退房4->
查询:
kind_of_service;
if((kind_of_service>
4)||(kind_of_service<
1))
您的输入有误,请重试!
else
switch(kind_of_service)
book_room();
break;
check_in();
check_out();
inquire();
//订房实现***************************************************************************
set_room_number(room[n].number