宾馆客房管理系统的设计与实现.docx
- 文档编号:11222688
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:12
- 大小:17.46KB
宾馆客房管理系统的设计与实现.docx
《宾馆客房管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《宾馆客房管理系统的设计与实现.docx(12页珍藏版)》请在冰豆网上搜索。
宾馆客房管理系统的设计与实现
源代码
#include
#include
voidinitial_room();//初始化80个房间信息
voidwelcome();//验证用户登陆,登陆成功显示欢迎信息
voidenter();//系统入口
voidbook_room();//订房
voidcheck_in();//入住
voidcheck_out();//退房
voidinquire();//信息查询
inti=0;
structRoom//Room结构体
{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;}
intget_prepaid(){returnprepaid;}
virtual~Customer();
private:
charname[10],ID[19];
introom_number;
intprepaid;
intchange;
intday;
};
Customer:
:
Customer()
{cout<<"请您输入顾客的姓名\n";cin>>name;
cout<<"请您输入顾客的身份证号码\n";cin>>ID;
prepaid=change=day=0;
}
Customer:
:
~Customer()
{cout<<"该顾客退房成功!
"< Roomroom[80];Customer*customer[80]; voidmain()//程序入口从这里开始运行 {charchoice='1'; initial_room();//初始化80个房间的信息,分四个等级 welcome();//验证用户登陆,登陆成功显示欢迎信息 while(choice=='1') {enter();//根据用户的选择执行不同的功能cout< cout<<"继续使用本系统请按\"1\",退出请按\"2\"! "; cin>>choice;cout< //系统登陆界面 voidwelcome()//验证用户登陆,登陆成功显示欢迎信息 {charname[4],code[7]; cout<<"请输入用户名和密码(以空格隔开): \n";cin>>name>>code; while((strcmp(name,"0")! =0)||(strcmp(code,"1")! =0)) {cout<<"用户名或密码输入有误,请重新输入! \n";cin>>name>>code;}cout< cout<<"▲----------------------------------------▲\n"; cout<<"△欢迎使用宾馆客房管理系统! △\n"; cout<<"▲-----------------------------------------▲\n"; cout< } //系统入口 voidenter() {intkind_of_service; cout<<"请选择服务类别: 订房、入住、退房还是查询? \n"; cout<<"1->定房2->入住3->退房4->查询: "; cin>>kind_of_service; if((kind_of_service>4)||(kind_of_service<1)) {cout<<"您的输入有误,请重试! \n";cin>>kind_of_service;} else switch(kind_of_service) {case1: book_room();break; case2: check_in();break; case3: check_out();break; case4: inquire();break;}} //订房实现 voidbook_room() {customer[i]=newCustomer; introom_standard,day; cout<<"请您选择预定房间的标准: \n"; cout<<"1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n"; cin>>room_standard; cout<<"请输入预定天数\n";cin>>day; customer[i]->set_day(day); switch(room_standard) {intn; case1: cout<<"住房费用总共为: "< for(n=0;n<20;n++)//从第一个级别的房间中查找一个空闲的房间 {if(room[n].state==0)//state=0表示该住房没有被预定的 {cout<<"预定成功★房间号码为: "< customer[i]->set_room_number(room[n].number);break;}}break; case2: cout<<"住房费用总共为: "< for(n=20;n<40;n++) {if(room[n].state==0) {cout<<"预定成功★房间号码为: "< customer[i]->set_room_number(room[n].number);break;}}break; case3: cout<<"住房费用总共为: "< for(n=40;n<60;n++) {if(room[n].state==0) {cout<<"预定成功★房间号码为: "< customer[i]->set_room_number(room[n].number);break;}}break; case4: cout<<"住房费用总共为: "< for(n=60;n<80;n++) {if(room[n].state==0) {cout<<"预定成功★房间号码为: "< customer[i]->set_room_number(room[n].number);break;}}break;} i++;}//住房的顾客数加1 //入住登记 voidcheck_in() {charname1[10],id1[19]; intding_or_no,prepaid; cout<<"该顾客订房了吗? (1->订了2->没订)"; cin>>ding_or_no; if(ding_or_no==1) {cout<<"请输入顾客的姓名: "< cin>>name1; cout<<"请输入顾客的身份证号码: "< cin>>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();//取得定房的房间号 cout<<"顾客"< 房间号码为: "< switch(num/100) {case6: prepaid=customer[j]->get_day()*150;customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< room[num%100-1].state=2;//修改房间状态为入住状态break; case7: prepaid=customer[j]->get_day()*200;customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< case8: prepaid=customer[j]->get_day()*300;customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< case9: prepaid=customer[j]->get_day()*600;customer[j]->set_prepaid(prepaid); cout<<"请收房费"< "< else {customer[i]=newCustomer; introom_standard,day; cout<<"请您选择预定房间的标准: \n"; cout<<"1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n"; cin>>room_standard; cin>>day;customer[i]->set_day(day); switch(room_standard) {intn; case1: prepaid=day*150;customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=0;n<20;n++) {if(room[n].state==0) {cout<<"入住房间号码为: "< customer[i]->set_room_number(room[n].number);break;}}break; case2: prepaid=day*200;customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=20;n<40;n++) {if(room[n].state==0) {cout<<"入住房间号码为: "< customer[i]->set_room_number(room[n].number);break;}}break; case3: prepaid=day*300;customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=40;n<60;n++) {if(room[n].state==0) {cout<<"入住房间号码为: "< customer[i]->set_room_number(room[n].number);break;}}break; case4: prepaid=day*600;customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=60;n<80;n++) {if(room[n].state==0) {cout<<"入住房间号码为: "< customer[i]->set_room_number(room[n].number);}} //退房结算 voidcheck_out() {charname2[10],id2[19]; intstandard,j,room_number,day1,day2,day; cout<<"请输入要退房的顾客姓名和身份证号码: \n";cin>>name2>>id2; cout<<"请输入该顾客实住天数: \n";cin>>day2; for(j=0;j {if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0)) {room_number=customer[j]->get_room_number();standard=room_number/100; day1=customer[j]->get_day();day=day1-day2; switch(standard) { case6: cout<<"顾客的房间号是"< 为单人间,每天150元\n"; cout<<"该顾客预付了房费"< \n"; if(day>0)cout<<"请退给该顾客"< \n"; if(day)cout<<"请补收该顾客住房费"<<-day*150<<"元整! \n";break; case7: cout<<"顾客的房间号是"< 为单人间,每天200元\n"; cout<<"该顾客预付了房费"< \n";cout< if(day>0)cout<<"请退给该顾客"< \n"; if(day<0)cout<<"请补收该顾客住房费"<<-day*200<<"元整! \n";break; case8: cout<<"顾客的房间号是"< 为单人间,每天300元\n"; cout<<"该顾客预付了房费"< \n";cout< if(day>0)cout<<"请退给该顾客"< \n"; if(day<0)cout<<"请补收该顾客住房费"<<-day*300<<"元整! \n";break; case9: cout<<"顾客的房间号是"< 为单人间,每天600元\n"; cout<<"该顾客预付了房费"< \n";cout< if(day>0)cout<<"请退给该顾客"< \n"; if(day<0)cout<<"请补收该顾客住房费"<<-day*600<<"元整! \n";break;} cout<<"退房核算清楚,请按1: ";characcount;cin>>account; if(account=='1') { for(intk=0;k<80;k++) {if(room[k].number==customer[j]->get_room_number())room[k].state=0;}i--; for(;j {customer[j]=customer[j+1];}deletecustomer[i];}}}} //信息查询 voidinquire() {charinquire_choice; cout<<"房间信息查询请按1,顾客信息查询请按2: "< if(inquire_choice=='1') {intj,k=0;cout<<"下列房间还没人预订,也没人入住: "< for(j=0;j<80;j++) {if(room[j].state==0) {if(k%10==0)cout< k=0;cout<<"下列房间已预订: "< for(j=0;j<80;j++) {if(room[j].state==1) {if(k%10==0)cout< "< for(j=0;j<80;j++) {if(room[j].state==2) {if(k%10==0)cout< elseif(inquire_choice=='2') {cout<<"按姓名查询请按1,按身份证查询请按2: "< charinquire_choice; if(inquire_choice=='1') {charname3[10];cout<<"请输入顾客的姓名: "< for(intj=0;j<=i;j++) {if(strcmp(customer[j]->get_name(),name3)==0) {cout< \n"; cout<<'\t'<<"房间号为: "< cout<<"\t"<<"预付房费为: "< if(inquire_choice=='2') { charid3[10];cout<<"请输入顾客的身份证: "< for(intj=0;j<=i;j++) { if(strcmp(customer[j]->get_ID(),id3)==0) {cout< \n"; cout<<'\t'<<"房间号为: "< cout<<"\t"<<"预付房费为: "< //房间信息初始化 voidinitial_room()//对80个房间进行初始化,分4个等级 {intj,k=601; for(j=0;j<20;j++) {room[j].number=k++;room[j].dank=1;room[j].price=150;room[j].state=0;} k=701; for(j=20;j<40;j++) {room[j].number=k++;room[j].dank=2;room[j].price=200;room[j].state=0;} k=801; for(j=40;j<60;j++) {room[j].number=k++;room[j].dank=3;room[j].price=300;room[j].state=0;} k=901; for(j=60;j<80;j++) {room[j].number=k++;room[j].dank=4;room[j].price=600;room[j].state=0;}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 客房 管理 系统 设计 实现