酒店管理系统-C++课程设计报告_第1页
酒店管理系统-C++课程设计报告_第2页
酒店管理系统-C++课程设计报告_第3页
酒店管理系统-C++课程设计报告_第4页
酒店管理系统-C++课程设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上酒店管理系统程序设计基础课程设计报告专 业: 计算机科学与技术 班 级: 11计科1班 姓 名: 指导教师: 2012 年 7 月 2 日1、课程设计题目描述和要求 1.1课程题目: 酒店管理系统 1.2 课程要求:1. 屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,如不同级别房间价格的查询、修改、刷除等 。2. 对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在等级的入住的时候进行选择。3. 月底进行结算,实收多少,应收多少。2、课程设计目的: 通过C+语言编程实现酒店管理系统的基本功能。酒店管理系统的实现核心是要录入客人

2、信息并在退房时结算,同时具有月底结算功能。此程序重在满足其要求,使用者可以方便的使用。也可以根据自己的需求对程序进行优化。3、课程设计结构图 4. 课程设计总结 在做程序设计前就已经感觉到我设计的酒店管理系统比较复杂,不仅要写出实现各种功能的函数还要保证函数之间的连接,怎样通过函数之间的关系能很好的把函数连接起来,还要保证程序能够很好的而且有效的运行。还有可能遇到一些以前没有用到的知识,像怎样在输入有误的情况下进行异常处理,这些都要通过函数的功能来实现,这些对我来说都是新的知识,而且觉得很有难度。 在做程序设计前还必须把书本上的基本知识搞懂,程序设计会用到书中的类做,对类的理解也不是很到位,一

3、些概念的知识还没有很好的理解,所以还需要借助书中的知识来加深对类的理解。在编程的过程中也遇到了很多的困难,但是通过同学的帮助渐渐对于程序有更深一步的理解,而且他们也帮我编一个对异常处理的函数,这样在异常处理的过程中就能很好的处理因为在输入有误的情况的错误。经过这次课程设计的编写我有增加了一些新知识,知道自己在编程方面还欠缺甚多,在自己完成了编程之后觉得收益良多,原来书本上的东西并不少,我们学习不要贪多,一定要把书本上的知识掌握好!在这次课程设计的编写中我了解了一些输入输出流,知道了如何把程序保存到磁盘中,这些知识都是以前没有深究和不多用的。比如:常用的输入输出流除iostream(通用输入输出

4、流和其他输入输出流的基类)外还有fstream(输入输出文件流)和strstream(输入书出字符串流类)。书本上好多知识都是我们没留意而在程序中要用到的。选课题的时候心高气傲觉得自己能编出来,而正要着手编的时候才知道题目并不简单。看到这个课题的时候觉得题目要求并不高,而且函数名及功能都给出来了,只需把它填满就行。处于心理作用而且老师也说了课程设计是要把整本书的知识都融合在一起的,于是我开始想如何用类、如何把程序写得简单明了,但是想了好久也想不出来,于是自己搜了一些有关这一课题的程序,想从中获得一些灵感,找到一些好的方法。事与愿违,网上的程序好多,大都用到了数据库,看不懂,我选了一个C程序来看

5、,发现里面好多头文件都不认识,而它用的是struct和class相结和,多文件的编程,包括的知识广泛,感觉很复杂。我后面就模范他的结构,用简单的语句编出框架,然后在一步步深入细化,最后用fstream类输入输出文本,然而简单的程序也有出错的时候,经过反复的修改、调试终于写出了这个程序!5、 参考书目: 1 谭浩强,C+程序设计,北京,清华大学出版社,2006年. 2 詹红霞、侯思颖、陶永红,Visual C+ 程序设计教程,北京,清华大学出版社, 2007年附录:#include <iostream>#include <fstream>using namespace s

6、td;int n;char b5="kong"struct date /时间结构体int year; int month; int day;in,out;struct hotell /客房结构体int num; /房号 char leixing5 ; /房间类型 int price; /房间价格 char noman5; /房间是否空闲 char name20; /客户姓名 date in; /用结构体定义的入住时间date out; /用结构体定义的退房时间 int pay; /预付金额 int shenfen; /身份证号 int shu; /客房数目int input

7、; /客房收入 room100;void luru() /客房信息录入函数 int i,j;ofstream kefang("kefang.txt",ios:binary); /打开二进制文件if ( ! kefang)cerr<<"文件没有打开!"<<endl;abort();cout<<" 您选择了客房信息录入功能n"cout<<" 现在进行客房信息的录入n"cout<<" 总客房数为100间,请输入您要录入的客房数。nn"cout

8、<<" 请输入房间数"<<endl;cout<<" "cin>>n;if(n>100|n<=0)cout<<" 您的输入有误,请重试nn"luru();for(i=0;i<n;i+)cout<<" 客房号"<<endl; cout<<" " cin>>roomi.num; cout<<" 客房类型(1、 2、 3、)n 请在1-3中进行选择"

9、;<<endl; cout<<" " cin>>roomi.leixing; cout<<" 客房价格"<<endl; cout<<" " cin>>roomi.price;for(j=0;j<5;j+) roomi.nomanj=bj; /此时客房为kong roomi.shu=n; /录入的客房数目cout<<endl;cout<<" 本客房信息录入结束nn" kefang.write(char*)

10、&roomi,sizeof(roomi);kefang.close();void dengji() /客人入住登记函数 char a5="man"int k,j,i;fstream kefang("kefang.txt",ios:in|ios:out|ios:binary); if(!kefang)cerr<<"文件打开失败!"<<endl;abort();cout<<" 请输入客人人数"<<endl;cout<<" " cin

11、>>k; for (int x=0;x<k;x+)cout<<" 请输入客人的房号"<<endl; cout<<" " cin>>i;roomi-1.num=i; kefang.seekg(i-1*sizeof(ai-1);kefang.read(char*)&roomi-1,sizeof(roomi-1);cout<<" 请输入客人的姓名"<<endl; cout<<" " cin>>room

12、; cout<<" 请输入客人的身份证号"<<endl; cout<<" " cin>>roomi-1.shenfen; cout<<" 请输入客人入住时间,年/月/日"<<endl; cout<<" 年: " cin>>roomi-1.in.year; cout<<" 月: "cin>>roomi-1.in.month; cout<<"

13、日: "cin>>roomi-1.in.day; cout<<" 请输入客人的预付金额(单位:元)"<<endl; cout<<" " cin>>roomi-1.pay;for(j=0;j<5;j+) roomi-1.nomanj=aj; /此时客房为man kefang.write(char*)&roomi-1,sizeof(roomi-1);kefang.close();cout<<" 客人入住登记结束,按回车键返回主菜单!"<&

14、lt;endl;void tuifang() /客人退房结算int a,i,j,pay1,pay2;fstream kefang("kefang.txt",ios:in|ios:out|ios:binary); if(!kefang)cerr<<"文件打开失败!"<<endl;abort(); cout<<" 请输入客人住的房间号"<<endl; for(i=0;i<n;i+) cout<<" "cin>>a;if(a=roomi.num

15、) kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);cout<<" 客人的房间号"<<roomi.num; cout<<" 客人的入住时间为:"<<roomi.in.year<<"年"<<roomi.in.month<<"月"<<roomi.in.day;cout<<endl; cout<<"

16、 请输入客人的退房时间 年/月/日"<<endl;cout<<" 年: " cin>>roomi.out.year; cout<<" 月: "cin>>roomi.out.month; cout<<" 日: " cin>>roomi.out.day; cout<<" 客人的退房时间为"<<roomi.out.year<<"年"<<roomi.out.mon

17、th<<"月"<<roomi.out.day<<"日"<<" " pay1=roomi.pay-(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out.day-roomi.in.day)*roomi.price;pay2=(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out

18、.day-roomi.in.day)*roomi.price-roomi.pay; if(pay1>=0)cout<<" 总的住宿费用为"<<(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out.day-roomi.in.day)*roomi.price<<"元,n"cout<<" 入住时预付费用为:"<<roomi.pay<<endl;cout&l

19、t;<" 剩余费用为:"<<pay1<<endl;if(pay1<0)cout<<" 还须付:"<<pay2<<"元" for(j=0;j<5;j+)roomi.nomanj=bj; /初始化客房为空j=0; /初始化客人名字为空roomi.input=roomi.input+(roomi.out.year-roomi.in.year)*365+(roomi.out.month-roomi.in.month)*30+(roomi.out.

20、day-roomi.in.day)*roomi.price; kefang.write(char*)&roomi,sizeof(roomi); else if(a!=roomi.num) cout<<" 输入房号不存在!请确认后重试。nn"<<endl;break;kefang.close();cout<<" 按回车键返回主菜单返回主菜单!"<<endl;void find() /客房信息的查询int i=0;int k=0;char name20;ifstream kefang("kef

21、ang.txt",ios:binary); if(!kefang)cerr<<"文件打开失败!"<<endl;abort(); cout<<" 您选择要查询方式:nn"cout<<" 1.按空房间查询 2.按姓名查询房间n 3.按房号查询 4.所有客房信息nn"int chaxun;cout<<" "cin>>chaxun;switch(chaxun)case 1:cout<<" 空房间查询," /按空

22、房间查询 cout<<" 查询结果如下"<<endl;for(i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(strcmp(roomi.noman,b)=0)cout<<" 空客房号"<< roomi.num<<" "<<"客房类型"<< roomi.leixing;cout<<

23、;" "<<"客房价格"<< roomi.price<<endl;k+=1;cout<<" 现有空房为"<<k<<"间"<<endl<<endl<<" 查询结束"<<endl;kefang.close();cout<<" 按回车键返回主菜单"break;case 2:cout<<" 请输入您所查询的姓名:"<

24、<endl; /按姓名查询 cout<<" "cin>>name;for(i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(strcmp(name,)=0)cout<<" 此客人入住的房间号 "<<roomi.num<<endl;kefang.close();cout<<" 按回车键返回主菜单!"

25、break;case 3:cout<<endl<<" 请输入房间号:"<<endl; /按客房号查询int c; cout<<" "cin>>c;for(i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(roomi.num=c)cout<<" 房间号 "<< roomi.num<<" &q

26、uot;<<"入住客人姓名 "<< <<endl;kefang.close();cout<<" 按回车键返回主菜单!"break;case 4:cout<<" 所有房间信息如下"<<endl<<endl; /列出所有客房信息for(int i=0;i<roomi.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);cout

27、<<" 客房号"<<roomi.num<<" " cout<<" 客房类型"<< roomi.leixing<<" " cout<<" 客房价格"<< roomi.price<<" " cout<<" 空闲情况"<< roomi.noman<<" n" ; if(roomi.noman=&quo

28、t;man")cout<<" 客人姓名"<<<<" " cout<<" 客人身份证号"<<roomi.shenfen<<" " cout<<" 入住时间"<<roomi.in.year<<"年"<<roomi.in.month<<"月"<<roomi.in.day<<&qu

29、ot; "cout<<endl; cout<<" 预付费用"<<roomi.pay<<" "<<endl;else if(roomi.noman="kong")cout<<" 此房空"<<endl<<" 浏览功能结束,请您选择其他功能"<<endl;kefang.close();cout<<"n 查询结束n 按回车键返回主菜单!"<<e

30、ndl;break;void xiugai() /客房信息的删除与修改fstream kefang("kefang.txt",ios:in|ios:out|ios:binary); if(!kefang)cerr<<"文件打开失败!"<<endl;abort();hotell *p=room;char h20=" "int c,d,e,j;cout<<" 请输入要修改或删除的客房号."<<endl; cout<<" "cin>&g

31、t;c;for(int i=0;i<room0.shu;i+)kefang.seekg(i*sizeof(roomi);kefang.read(char*)&roomi,sizeof(roomi);if(roomi.num=c)cout<<" 请您选择要修改或删除的该客房的信息。"<<endl<<endl; cout<<" 1.客房价格修改"<<endl; cout<<" 2.客房信息的删除"<<endl; cout<<&qu

32、ot; " cin>>d;switch(d)case 1:cout<<" 客房价格修改"<<endl; /客房价格的修改 cout<<" "cin>>e;(p+c-1)->price=e;kefang.write(char*)&roomc-1,sizeof(roomc-1);kefang.close();cout<<" 修改成功!n 按回车键返回主菜单!"<<endl; break;case 2:cout<<&quo

33、t; 客房信息的删除" /客房信息的删除hotell *p=room; cout<<endl;cout<<" 1.删除类型 2.删除价格 "<<endl;int g;cout<<" "cin>>g;switch(g)case 1:for(j=0;j<20;j+) (p+c-1)->leixingj=hj;kefang.write(char*)&roomc-1,sizeof(roomc-1); kefang.close();cout<<" 该房类

34、型已删除n 按回车键返回主菜单" break;case 2:(p+c-1)->price=NULL;kefang.write(char*)&roomc-1,sizeof(roomc-1);kefang.close();cout<<" 该房价格已删除n 按回车键返回主菜单" break;void jiesuan() /本月结算 int k=0;ifstream kefang("kefang.txt",ios:binary); if(!kefang)cerr<<"文件打开失败!"<&l

35、t;endl;abort();for(int j=0;j<n;j+)kefang.read(char*)&roomj,sizeof(roomj);kefang.close();for(int i=0;i<100;i+)k=k+roomi.input;cout<<" 本月收入为:"<<k<<"n 按回车键返回主菜单"<<endl;int main () /宾馆客房系统主界面函数cout<<endl<<endl<<endl;cout<<" n"cout<<" $* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *$n"cout<<" $* *$n"cout<<"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论