C++课程设计+宾馆管理系统+完整的报告.docx
- 文档编号:3650381
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:30
- 大小:129.50KB
C++课程设计+宾馆管理系统+完整的报告.docx
《C++课程设计+宾馆管理系统+完整的报告.docx》由会员分享,可在线阅读,更多相关《C++课程设计+宾馆管理系统+完整的报告.docx(30页珍藏版)》请在冰豆网上搜索。
C++课程设计+宾馆管理系统+完整的报告
课程设计报告
课程设计题目:
宾馆管理系统
专业:
信息工程
姓名:
学号:
班级:
071132
指导教师:
2009年5月30日
C++课程设计报告目录
一、程序设计…………………………………………………………………………………2
1>基本要求……………………………………………………………………………………2
2>程序设计要求………………………………………………………………………………2
二、程序实现步骤……………………………………………………………………………2
三、程序分块设计……………………………………………………………………………2
四、完整源程序………………………………………………………………………………11
五、存在问题…………………………………………………………………………………22
六、课程设计总结……………………………………………………………………………22
七、参考文献…………………………………………………………………………………22
八、表格………………………………………………………………………………………22
一、程序设计要求:
1基本要求
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;
2实验基本要求:
(1)实现用户信息的输入
(2)实现不同等级房间费用的查询
(3)实现用户房间的预定
(4)实现用户住宿费用的结算
二、程序设计步骤
1、设计用户登陆界面
2、建立类别
3、合理的使用继承和多态性把各类别组合起来
三、程序分块设计
1、用户登陆界面程序:
voidwelcome()//验证用户登陆,登陆成功显示欢迎信息
{
cout< cout< cout<<"▲*******************************▲\n"; cout<<"*欢迎使用宾馆管理系统! *\n"; cout<<"▲*******************************▲\n"; cout< } 程序运行截图: 2订房实现程序如下: 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<<"预定成功★房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } } break; case2: cout<<"住房费用总共为: "< for(n=20;n<40;n++) { if(room[n].state==0) { cout<<"预定成功★房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } } break; case3: cout<<"住房费用总共为: "< for(n=40;n<60;n++) { if(room[n].state==0) { cout<<"预定成功★房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } } break; case4: cout<<"住房费用总共为: "< for(n=60;n<80;n++) { if(room[n].state==0) { cout<<"预定成功★房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } } break; } i++;//住房的顾客数加1 } 程序运行的截图如下: 3顾客的入住登记程序: 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<<"顾客"< ? "< room[num%100-1].state=2;//修改房间状态为入住状态 break; } break; } } else { 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: prepaid=day*150; customer[i]->set_prepaid(prepaid); cout<<"请收房费"< \n"; for(n=0;n<20;n++) { if(room[n].state==0) { cout<<"入住房间号码为: "< room[n].state=2; 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<<"入住房间号码为: "< room[n].state=2; 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<<"入住房间号码为: "< room[n].state=2; 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<<"入住房间号码为: "< room[n].state=2; customer[i]->set_room_number(room[n].number); break; } } break; } i++; } } 程序运行截图: 4程序的退房结算: 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"; cout< break; case7: cout<<"顾客的房间号是"< 为单人间,每天200元\n"; cout<<"实际消费"< \n"; cout< break; case8: cout<<"顾客的房间号是"< 为单人间,每天300元\n"; cout<<"实际消费"< \n"; cout< break; case9: cout<<"顾客的房间号是"< 为单人间,每天600元\n"; cout<<"实际消费"< \n"; cout< break; } cout< 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]; } } } } 程序运行截图: 5系统的查询功能程序如下: voidinquire() { charinquire_choice; cout<<"房间信息查询请按1"< cin>>inquire_choice; if(inquire_choice=='1') { intj,k=0; cout< cout<<"下列房间还没人预订,也没人入住: "< for(j=0;j<80;j++) { if(room[j].state==0) { if(k%10==0)cout< cout< k++; } } cout< cout< k=0; cout<<"下列房间已预订: "< for(j=0;j<80;j++) { if(room[j].state==1) { if(k%10==0)cout< cout< k++; } } k=0; cout< cout< cout<<"下列房间有人入住: "< for(j=0;j<80;j++) { if(room[j].state==2) { if(k%10==0)cout< cout< k++; } } cout< } } 程序运行截图: 6、主函数程序如下: voidmain()//程序入口从这里开始运行 { charchoice='1'; initial_room();//初始化80个房间的信息,分四个等级 welcome();//验证用户登陆,登陆成功显示欢迎信息 while(choice=='1') { enter();//根据用户的选择执行不同的功能 cout< cout<<"继续使用本系统请按\"1\",退出请按\"2\"! "; cin>>choice; cout< } } 四、完整源程序如下: #include #include //*********************************************************************************** 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() { 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()//验证用户登陆,登陆成功显示欢迎信息 { cout< 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<<"预定成功★房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } } break; case2: cout<<"住房费用总共为: "< for(n=20;n<40;n++) { if(room[n].state==0) { cout<<"预定成功★房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number); break; } } break; case3: cout<<"住房费用总共为: "< for(n=40;n<60;n++) { if(room[n].state==0) { cout<<"预定成功★房间号码为: "< room[n].state=1; customer[i]->set_room_number(room[n].number
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 宾馆 管理 系统 完整 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)