还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《酒店管理系统》程序设计基础课程设计报告专业计算机科学与技术班级11计科1班姓名指导教师2012年7月2日
1、课程设计题目描述和要求
1.1课程题目酒店管理系统
1.2课程要求
1.屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作如不同级别____的查询、修改、刷除等
2.对不同标准的__实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在等级的入住的时候进行选择
3.月底进行结算,实收多少,应收多少
2、课程设计目的通过C++语言编程实现酒店管理系统的基本功能酒店管理系统的实现核心是要录入客人信息并在退房时结算,同时具有月底结算功能此程序重在满足其要求,使用者可以方便的使用也可以根据自己的需求对程序进行优化
3、课程设计结构图
4.课程设计总结在做程序设计前就已经感觉到我设计的《酒店管理系统》比较复杂,不仅要写出实现各种功能的函数还要保证函数之间的连接,怎样通过函数之间的关系能很好的把函数连接起来,还要保证程序能够很好的而且有效的运行还有可能遇到一些以前没有用到的知识,像怎样在输入有误的情况下进行异常处理,这些都要通过函数的功能来实现,这些对我来说都是新的知识,而且觉得很有难度在做程序设计前还必须把书本上的基本知识搞懂,程序设计会用到书中的类做,对类的理解也不是很到位,一些概念的知识还没有很好的理解,所以还需要借助书中的知识来加深对类的理解在编程的过程中也遇到了很多的困难,但是通过同学的帮助渐渐对于程序有更深一步的理解,而且他们也帮我编一个对异常处理的函数,这样在异常处理的过程中就能很好的处理因为在输入有误的情况的错误经过这次课程设计的编写我有增加了一些新知识,知道自己在编程方面还欠缺甚多,在自己完成了编程之后觉得收益良多,原来书本上的东西并不少,我们学习不要贪多,一定要把书本上的知识掌握好!在这次课程设计的编写中我了解了一些输入输出流,知道了如何把程序保存到磁盘中,这些知识都是以前没有深究和不多用的比如常用的输入输出流除iostream(通用输入输出流和其他输入输出流的基类)外还有fstream(输入输出文件流)和strstream(输入书出字符串流类)书本上好多知识都是我们没留意而在程序中要用到的选课题的时候心高气傲觉得自己能编出来,而正要着手编的时候才知道题目并不简单看到这个课题的时候觉得题目要求并不高,而且函数名及功能都给出来了,只需把它填满就行处于心理作用而且老师也说了课程设计是要把整本书的知识都融合在一起的,于是我开始想如何用类、如何把程序写得简单明了,但是想了好久也想不出来,于是自己搜了一些有关这一课题的程序,想从中获得一些灵感,找到一些好的方法事与愿违,网上的程序好多,大都用到了数据库,看不懂,我选了一个C程序来看,发现里面好多头文件都不认识,而它用的是struct和class相结和,多文件的编程,包括的知识广泛,感觉很复杂我后面就模范他的结构,用简单的语句编出框架,然后在一步步深入细化,最后用fstream类输入输出文本,然而简单的程序也有出错的时候,经过反复的修改、调试终于写出了这个程序!
5、参考书目
[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2006年.
[2]詹红霞、侯思颖、陶永红,《VisualC++程序设计教程》,北京,清华大学出版社,2007年附录#includeiostream#includefstreamusingnamespa__std;intn;charb
[5]=kong;structdate//时间结构体{intyear;intmonth;intday;}inout;structho____//客房结构体{intnum;//房号charleixing
[5];//__类型intpri__;//____charno__n
[5];//__是否空闲charname
[20];//客户姓名datein;//用结构体定义的入住时间dateout;//用结构体定义的退房时间intpay;//预付金额intshenfen;//___号intshu;//客房数目intinput;//客房收入}room
[100];voidluru//客房信息录入函数{intij;ofstreamkefangkefang.___ios::binary;//打开二进制文件if!kefang{__rr文件没有打开!endl;abort;}cout您选择了客房信息录入功能\n;cout现在进行客房信息的录入\n;cout总客房数为100间请输入您要录入的客房数\n\n;cout请输入__数endl;cout;cinn;ifn100||n=0{cout您的输入有误,请重试\n\n;luru;}fori=0;in;i++{cout客房号endl;cout;cinroom[i].num;cout客房类型(
1、
2、
3、)\n请在1-3中进行选择endl;cout;cinroom[i].leixing;cout客房__endl;cout;cinroom[i].pri__;forj=0;j5;j++{room[i].no__n[j]=b[j];//此时客房为kong}room[i].shu=n;//录入的客房数目coutendl;cout本客房信息录入结束\n\n;kefang.writechar*room[i]sizeofroom[i];kefang.close;}}voiddengji//客人入住登记函数{chara
[5]=__n;intkji;fstreamkefangkefang.___ios::in|ios::out|ios::binary;if!kefang{__rr文件打开失败!endl;abort;}cout请输入客人人数endl;cout;cink;forintx=0;xk;x++{cout请输入客人的房号endl;cout;cini;room[i-1].num=i;kefang.seekgi-1*sizeofa[i-1];kefang.readchar*room[i-1]sizeofroom[i-1];cout请输入客人的姓名endl;cout;cinroom[i-1].name;cout请输入客人的___号endl;cout;cinroom[i-1].shenfen;cout请输入客人入住时间,年/月/日endl;cout年:;cinroom[i-1].in.year;cout月:;cinroom[i-1].in.month;cout日:;cinroom[i-1].in.day;cout请输入客人的预付金额单位元endl;cout;cinroom[i-1].pay;forj=0;j5;j++{room[i-1].no__n[j]=a[j];//此时客房为__n}kefang.writechar*room[i-1]sizeofroom[i-1];}kefang.close;cout客人入住登记结束,按回车键返回主菜单!endl;}voidtuifang//客人退房结算{intaijpay1pay2;fstreamkefangkefang.___ios::in|ios::out|ios::binary;if!kefang{__rr文件打开失败!endl;abort;}cout请输入客人住的__号endl;fori=0;in;i++{cout;cina;ifa==room[i].num{kefang.seekgi*sizeofroom[i];kefang.readchar*room[i]sizeofroom[i];cout客人的__号room[i].num;cout客人的入住时间为room[i].in.year年room[i].in.month月room[i].in.day;coutendl;cout请输入客人的退房时间年/月/日endl;cout年;cinroom[i].out.year;cout月;cinroom[i].out.month;cout日;cinroom[i].out.day;cout客人的退房时间为room[i].out.year年room[i].out.month月room[i].out.day日;pay1=room[i].pay-room[i].out.year-room[i].in.year*365+room[i].out.month-room[i].in.month*30+room[i].out.day-room[i].in.day*room[i].pri__;pay2=room[i].out.year-room[i].in.year*365+room[i].out.month-room[i].in.month*30+room[i].out.day-room[i].in.day*room[i].pri__-room[i].pay;ifpay1=0cout总的住宿费用为room[i].out.year-room[i].in.year*365+room[i].out.month-room[i].in.month*30+room[i].out.day-room[i].in.day*room[i].pri__元\n;cout入住时预付费用为room[i].payendl;cout剩余费用为pay1endl;ifpay10cout还须付:pay2元;forj=0;j5;j++{room[i].no__n[j]=b[j];//初始化客房为空room[i].name[j]=0;//初始化客人名字为空}room[i].input=room[i].input+room[i].out.year-room[i].in.year*365+room[i].out.month-room[i].in.month*30+room[i].out.day-room[i].in.day*room[i].pri__;kefang.writechar*room[i]sizeofroom[i];}elseifa!=room[i].numcout输入房号不存在!请确认后重试\n\nendl;break;}kefang.close;cout按回车键返回主菜单返回主菜单!endl;}voidfind//客房信息的查询{inti=0;intk=0;;charname
[20];ifstreamkefangkefang.___ios::binary;if!kefang{__rr文件打开失败!endl;abort;}cout您选择要查询方式:\n\n;cout
1.按空__查询
2.按姓名查询__\n
3.按房号查询
4.所有客房信息\n\n;intchaxun;cout;cinchaxun;switchchaxun{case1:cout空__查询;//按空__查询cout查询结果如下endl;fori=0;iroom
[0].shu;i++{kefang.seekgi*sizeofroom[i];kefang.readchar*room[i]sizeofroom[i];ifstrcmproom[i].no__nb==0{cout空客房号room[i].num客房类型room[i].leixing;cout客房__room[i].pri__endl;k+=1;}}cout现有空房为k间endlendl查询结束endl;kefang.close;cout按回车键返回主菜单;break;case2:cout请输入您所查询的姓名endl;//按姓名查询cout;cinname;fori=0;iroom
[0].shu;i++kefang.seekgi*sizeofroom[i];kefang.readchar*room[i]sizeofroom[i];ifstrcmpnameroom[i].name==0cout此客人入住的__号room[i].numendl;kefang.close;cout按回车键返回主菜单!;break;case3:coutendl请输入__号endl;//按客房号查询intc;cout;cinc;fori=0;iroom
[0].shu;i++{kefang.seekgi*sizeofroom[i];kefang.readchar*room[i]sizeofroom[i];ifroom[i].num==ccout__号room[i].num入住客人姓名room[i].nameendl;}kefang.close;cout按回车键返回主菜单!;break;case4:cout所有__信息如下endlendl;//列出所有客房信息forinti=0;iroom[i].shu;i++{kefang.seekgi*sizeofroom[i];kefang.readchar*room[i]sizeofroom[i];cout客房号room[i].num;cout客房类型room[i].leixing;cout客房__room[i].pri__;cout空闲情况room[i].no__n\n;ifroom[i].no__n==__n{cout客人姓名room[i].name;cout客人___号room[i].shenfen;cout入住时间room[i].in.year年room[i].in.month月room[i].in.day;coutendl;cout预付费用room[i].payendl;}elseifroom[i].no__n==kongcout此房空endl浏览功能结束,请您选择其他功能endl;}kefang.close;cout\n查询结束\n按回车键返回主菜单!endl;break;}}voidxiugai//客房信息的删除与修改{fstreamkefangkefang.___ios::in|ios::out|ios::binary;if!kefang{__rr文件打开失败!endl;abort;}ho____*p=room;charh
[20]=;intcdej;cout请输入要修改或删除的客房号.endl;cout;cinc;forinti=0;iroom
[0].shu;i++{kefang.seekgi*sizeofroom[i];kefang.readchar*room[i]sizeofroom[i];ifroom[i].num==ccout请您选择要修改或删除的该客房的信息endlendl;cout
1.客房__修改endl;cout
2.客房信息的删除endl;cout;cind;}switchd{case1:cout客房__修改endl;//客房__的修改cout;cine;p+c-1-pri__=e;kefang.writechar*room[c-1]sizeofroom[c-1];kefang.close;cout修改成功!\n按回车键返回主菜单!endl;break;case2:cout客房信息的删除;//客房信息的删除ho____*p=room;coutendl;cout
1.删除类型
2.删除__endl;intg;cout;cing;switchg{case1:forj=0;j20;j++{p+c-1-leixing[j]=h[j];}kefang.writechar*room[c-1]sizeofroom[c-1];kefang.close;cout该房类型已删除\n按回车键返回主菜单;break;case2:p+c-1-pri__=NULL;kefang.writechar*room[c-1]sizeofroom[c-1];kefang.close;cout该房__已删除\n按回车键返回主菜单;break;}}}voidjiesuan//本月结算{intk=0;ifstreamkefangkefang.___ios::binary;if!kefang{__rr文件打开失败!endl;abort;}forintj=0;jn;j++kefang.readchar*room[j]sizeofroom[j];kefang.close;forinti=0;i100;i++k=k+room[i].input;cout本月收入为k\n按回车键返回主菜单endl;}int__in//宾馆客房系统主界面函数{coutendlendlendl;cout@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n;cout$************************************$\n;cout$**$\n;cout$*欢迎使用客房管理系统*$\n;cout$**$\n;cout$************************************$\n;cout@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n;cout\n;cout请选择您要使用的功能\n;cout\n\n;cout
1.客房信息录入
2.客人入住登记
3.客人退房结算\n;cout
4.客房信息查询
5.客房信息删除和修改
6.本月结算\n;cout
0.退出系统\n;cout\n\n;inta;cout;cina;switcha{case1:luru;cout按回车键返回主菜单!;systemcls;__in;break;case2:cout您选择了客人入住登记功能\n;dengji;systemcls;__in;break;case3:cout您选择了客人退房__功能\n;tuifang;__in;break;case4:cout您选择了客房信息查询功能\n;find;__in;break;case5:cout您选择了客房信息的删除和删改功能\n;xiugai;__in;break;case6:cout您选择了本月结算功能\n;jiesuan;__in;break;case0:cout\n\n\n;cout本系统由08计科顾力雄__\n;cout******感谢您使用本系统!******\n\n\n;return0;break;default:cout您的输入有误返回主菜单!;systemcls;__in;break;}return0;}。