c++-宾馆客房管理系统

上传人:无*** 文档编号:107814765 上传时间:2022-06-15 格式:DOC 页数:52 大小:629.50KB
返回 下载 相关 举报
c++-宾馆客房管理系统_第1页
第1页 / 共52页
c++-宾馆客房管理系统_第2页
第2页 / 共52页
c++-宾馆客房管理系统_第3页
第3页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datec+-宾馆客房管理系统本模板是课程设计报告模板,请各位同学认真阅读以下要求:面向对象的课 程 设 计学院: 数学学院 专业: 数学与应用数学 班级: 2010 XXX 学号:XXX 姓名: XXXX 学号: XXX 姓名: XXXX 课程设计周次: 第19-20 起始日期:2012.6.25至 2012.7.6 目录1. c+课程设计成绩评定表I页2. c+课程设计任务书II页3. 程序一基本框架结构图.1页4. 程序一设计说明书.2页5. 程序一源代码清单.11页6. 程序一课程设计总结.25页7. 程序二基本框架结构图.26页8. 程序二设计说明书.27页9. 程序二源代码清单.32页10. 程序二课程设计总结.35页-课程设计成绩评定表班级XXX学号XXX姓名XXXXXXXX项目组宾馆客房管理系统项目组长XXXXXXX项目组组员XXX XXX本人工作简介:本人主要负责3.程序基本框架结构图和4.程序设计说明书部分,对程序的设计结构及设计理念做了深入的思考和研究,为做好本次课程设计做出大量努力。组长评语:组长及组员都极其负责的对待自己的任务,用心去思考程序思路,认真完成每一个步骤,解决每一个难点及错误,真诚的对待这次课程设计,最终完成任务。 成绩评定标准ABCDE报告完成情况很好好比较好一般不好纪律表现很好好比较好一般不好程序功能性强较强一般较弱弱界面美观性很好好一般较差不好程序可操作性很好好一般较差不好答辩表现很好好一般较差不好所起作用程度80%以上60%以上60%以下最后成绩优秀A=5C=3C=2C=4及格A=0B=0C=3不及格A=0B=0C=1 2010 xxx 班c+语言课程设计任务书一、设计目的通过本次课程设计使学生进一步加深对c+语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握高级语言的编程方法和技巧,提高学生用高级语言解决实际问题的能力。二、设计要求1、认真查阅参考书、资料2、遵守课程设计时间安排3、按时上机,认真调试程序4、认真完成课程设计报告三、课设报告装订内容及顺序1、课程设计封皮2、目录3、课程设计成绩评定表4、课程设计任务书5、程序基本框架图 6、程序设计说明书7、源代码清单8、课设总结与心得四、设计题目l XXX(此处填写所选题目)五、时间安排(从 6月25日到 7 月 6 日 )1、查阅资料及程序设计(3天)2、程序编制及调试(7天)3、成绩评定(0.5天)3、打印报告(0.5天)六、参考文献1、c+语音基础教程吕凤翥编著. 清华大学出版社2、c+ Primer Plus(美)Stephen Prata.人民邮电出版社3、C+程序设计教程(美)H.M.Deitel P.J. Deitel.清华大学出版社4、C+时尚编程百例网冠科技编.机械工业出版社程序基本框架结构图程序开始,对80个房间初始化调用welcome函数,对登录用户进行验证通过验证了吗 否显示系统信息,进入系统界面退房信息系统入住信息系统查询信息系统订房信息系统显示操作菜单,选择服务类别 是客户信息查询房间信息查询退房结算系统客户信息系统费用信息管理是否订房信息房间标准信息客户身份信息程序设计说明书摘 要: 本文论述了宾馆客房管理系统程序编写过程。针对系统的功能实现展开叙述,该系统包括客房查询、客户信息查询、用户入住管理、用户退房管理等功能;最后介绍了软件测试的方法、必要性和调试的过程中遇到的一些问题及解决方案。该系统采用基于C+运行环境。关键词:宾馆客房管理,C+,源程序代码。1 前言随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类行业在日常经营管理各个方面也在悄悄地走向规范化和网络化。客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。2 目的和意义运用所学知识设计宾馆客房管理系统,完成课程设计,在此基础上对以前所学知识进行系统的学习和掌握。通过这次课程设计使我对所学知识进行一次全面检验,查漏补缺,为以后的学习提供参考。3 系统主要功能宾馆的客房信息包括客房号、客房类型、客房价格、空闲情况、客人姓名、客人身份证号、入住时间、退房时间,预付费用等信息。系统以菜单方式工作,使之能提供以下功能:l 客房信息的录入功能l 客人入住登记l 客人退房结算l 客房信息浏览功能,浏览全部客房的信息l 客房信息查询:查询空房间情况、按姓名或房间号查询l 客房信息的删除、修改功能4 系统的实现和核心模块的描述4.1 登录模块及执行图系统登录模块用于验证会员登录系统时输入的会员名、密码以及身份是否正确,只有合法的用户才能进入系统。进入系统后会有管理选择菜单供客户选择服务。4.2 订房信息系统模块及执行图 客户进入订房系统后会有客户姓名及客户身份证号码录入界面,正确无误之后会有预定房间标准和费用选择界面及预订客房时间和住房费用。4.3 入住信息系统模块及执行图客户能够通过身份验证进入入住系统,会有客户是否已经预定房间选择,之后会显示客户入住时间、房间号码及收费系统。选择1.订了界面选择2.没界面4.4 退房信息系统模块及执行图 客户能够通过身份验证进入退房系统,则会显示客户入住房间号、房间标准、入住时间及费用结算。4.5 查询信息系统模块及执行图客户能够通过身份验证进入查询系统,则会显示选择房间信息查询或客户信息查询。房间系统查询显示空房,已经预定过的房间及已入住房间。客户信息查询显示客户入住时间,房间号码等。按房间信息查询界面按顾客信息查询界面5 软件测试每个软件产品都是不可避免的存在缺陷,所以在系统设计基本完成后,我们就必须对设计的作品从各方面进行测试,使作品趋于完善,增加作品的稳定性。测试本身的目的是尽可能多地暴露程序中的错误,但是,发现错误的最终目的还是为了改正错误。在成功的测试之后,还必须进一步诊断和改正程序中的错误,这就是调试的任务。调试的过程由两个步骤组成,它从表示程序中存在错误的某些迹象开始。首先确定错误的准确位置,也就是找出是哪个模块或哪些接口引起的错误;然后,仔细研究这段代码以确定问题的原因,并设法改正错误。通过不断地测试、调试,解决了系统中一系列错误所在,如:界面美化问题,控件使用问题,代码出错问题,数据连接与数据正确显示等,使系统功能更加完善,系统更加强大有力。总的来说,本系统能基本实现预计的功能,但是由于能力有限,还有一些功能尚未实现,有待解决。源代码清单#include#include/*void initial_room(); /初始化80个房间信息void welcome(); /验证用户登陆,登陆成功显示欢迎信息void enter();void book_room();void check_in();void check_out();void inquire();int i=0;/*struct Roomint number;int dank;int price;int state;class Customerpublic:Customer();void set_name(char *n)strcpy(name,n);void set_ID(char *p)strcpy(ID,p);void set_room_number(int n)room_number=n;void set_day(int d)day=d;void set_prepaid(int p)prepaid=p;char *get_name()return name;char *get_ID()return ID;int get_room_number()return room_number;int get_day()return day;int get_prepaid()return prepaid;virtual Customer();private:char name10,ID19;int room_number;int prepaid;int change;int day;Customer:Customer()coutname;coutID;prepaid=change=day=0;Customer:Customer()cout该顾客退房成功!endl;/*Room room80;Customer *customer80;void main() /程序入口从这里开始运行char choice=1;initial_room(); /初始化80个房间的信息,分四个等级welcome(); /验证用户登陆,登陆成功显示欢迎信息while(choice=1)enter(); /根据用户的选择执行不同的功能coutendl;coutchoice;coutendl;/系统登陆界面*void welcome() /验证用户登陆,登陆成功显示欢迎信息char name4,code7;coutnamecode;while(strcmp(name,000)!=0)|(strcmp(code,666666)!=0)coutnamecode;coutendl;coutendl;cout *n; cout 欢迎使用*系统!n; cout *n; coutendl;/系统入口*void enter()int kind_of_service;cout请选择服务类别:订房、入住、退房还是查询? n; cout定房 2-入住 3-退房 4-查询: ;cinkind_of_service;if(kind_of_service4) | (kind_of_service1)coutkind_of_service;elseswitch(kind_of_service)case 1: book_room();break;case 2: check_in();break;case 3: check_out();break;case 4: inquire();break;/订房实现*void book_room()customeri=new Customer;int room_standard,day;cout请您选择预定房间的标准:n; coutroom_standard;coutday;customeri-set_day(day);switch(room_standard)int n;case 1:cout住房费用总共为: day*150元n; /计算住房费用for(n=0;n20;n+) /从第一个级别的房间中查找一个空闲的房间if(roomn.state=0) /state=0表示该住房没有被预定的cout预定成功房间号码为: roomn.numberset_room_number(roomn.number);break;break;case 2:cout住房费用总共为: day*200 元n; for(n=20;n40;n+)if(roomn.state=0)cout预定成功房间号码为: roomn.numberset_room_number(roomn.number);break;break;case 3:cout住房费用总共为: day*300 元n; for(n=40;n60;n+)if(roomn.state=0)cout预定成功房间号码为: roomn.numberset_room_number(roomn.number);break;break;case 4:cout住房费用总共为: day*600元n; for(n=60;n80;n+)if(roomn.state=0)cout预定成功房间号码为: roomn.numberset_room_number(roomn.number);break;break;i+; /住房的顾客数加1/入住登记*void check_in()char name110,id119;int ding_or_no,prepaid;cout订了 2-没订) ;cinding_or_no;if(ding_or_no=1)cout请输入顾客的姓名:name1;cout请输入顾客的身份证号码:id1;for(int j=0;jget_name(),name1)=0)&(strcmp(customerj-get_ID(),id1)=0) /查找该顾客的定房信息int num=customerj-get_room_number(); /取得定房的房间号cout顾客name1今天入住本宾馆! 房间号码为: numget_day()*150;customerj-set_prepaid(prepaid);cout请收房费 prepaid元整!get_day()*200;customerj-set_prepaid(prepaid);cout请收房费 prepaid元整!get_day()*300;customerj-set_prepaid(prepaid);cout请收房费 prepaid元整!get_day()*600;customerj-set_prepaid(prepaid);cout请收房费 prepaid元整!endl;room59+num%100.state=2;break;break;elsecustomeri=new Customer;int room_standard,day;cout请您选择预定房间的标准:n; coutroom_standard;coutday;customeri-set_day(day);switch(room_standard)int n;case 1:prepaid=day*150;customeri-set_prepaid(prepaid);cout请收房费 prepaid元整!n; for(n=0;n20;n+)if(roomn.state=0)cout入住房间号码为: roomn.numberset_room_number(roomn.number);break;break;case 2:prepaid=day*200;customeri-set_prepaid(prepaid);cout请收房费 prepaid元整!n; for(n=20;n40;n+)if(roomn.state=0)cout入住房间号码为: roomn.numberset_room_number(roomn.number);break;break;case 3:prepaid=day*300;customeri-set_prepaid(prepaid);cout请收房费 prepaid元整!n; for(n=40;n60;n+)if(roomn.state=0)cout入住房间号码为: roomn.numberset_room_number(roomn.number);break;break;case 4:prepaid=day*600;customeri-set_prepaid(prepaid);cout请收房费 prepaid元整!n; for(n=60;n80;n+)if(roomn.state=0)cout入住房间号码为: roomn.numberset_room_number(roomn.number);break;break;i+;/退房结算*void check_out()char name210,id219;int standard,j,room_number,day1,day2,day;coutname2id2;coutday2;for(j=0;jget_name(),name2)=0)&(strcmp(customerj-get_ID(),id2)=0)room_number=customerj-get_room_number();standard=room_number/100;day1=customerj-get_day();day=day1-day2;switch(standard)case 6:cout顾客的房间号是room_number :为单人间,每天150元n;cout该顾客预付了房费 get_prepaid()元, 实际消费 day2*150元整!n;cout0)cout请退给该顾客 day*150 元整!n; if(day0)cout请补收该顾客住房费 -day*150 元整!n;break;case 7:cout顾客的房间号是room_number :为单人间,每天200元n;cout该顾客预付了房费 get_prepaid()元, 实际消费 day2*200元整!n;cout0)cout请退给该顾客 day*200 元整!n; if(day0)cout请补收该顾客住房费 -day*200 元整!n;break;case 8:cout顾客的房间号是room_number :为单人间,每天300元n;cout该顾客预付了房费 get_prepaid()元, 实际消费 day2*300元整!n;cout0)cout请退给该顾客 day*300 元整!n; if(day0)cout请补收该顾客住房费 -day*300 元整!n;break;case 9:cout顾客的房间号是room_number :为单人间,每天600元n;cout该顾客预付了房费 get_prepaid()元, 实际消费 day2*600元整!n;cout0)cout请退给该顾客 day*600 元整!n; if(day0)cout请补收该顾客住房费 -day*600 元整!n;break;coutendl;coutaccount;if(account=1)for(int k=0;kget_room_number()roomk.state=0;i-;for(;ji;j+)customerj=customerj+1;delete customeri;/信息查询*void inquire()char inquire_choice;cout房间信息查询请按1, 顾客信息查询请按2: inquire_choice;if(inquire_choice=1)int j,k=0;coutendl;cout下列房间还没人预订,也没人入住:endl;for(j=0;j80;j+)if(roomj.state=0)if(k%10=0) coutendl;coutroomj.numbert;k+;coutendl;coutendl;k=0;cout下列房间已预订:endl;for(j=0;j80;j+)if(roomj.state=1)if(k%10=0) coutendl;coutroomj.numbert;k+;k=0;coutendl;coutendl;cout下列房间有人入住:endl;for(j=0;j80;j+)if(roomj.state=2)if(k%10=0) coutendl;coutroomj.numbert;k+;coutendl;coutendl;else if(inquire_choice=2)cout按姓名查询请按1, 按身份证查询请按2: inquire_choice;if(inquire_choice=1)char name310;cout请输入顾客的姓名: name3;for(int j=0;jget_name(),name3)=0)coutname3的住房信息如下:n;coutt房间号为: get_room_number()endl;coutt预付房费为: get_prepaid()endl;if(inquire_choice=2)char id310;cout请输入顾客的姓名: id3;for(int j=0;jget_ID(),id3)=0)coutget_name()的住房信息如下:n;coutt房间号为: get_room_number()endl;coutt预付房费为: get_prepaid()endl;/房间信息初始化*void initial_room() /对80个房间进行初始化,分4个等级int j,k=601;for(j=0;j20;j+)roomj.number=k+;roomj.dank=1;roomj.price=150;roomj.state=0;k=701;for(j=20;j40;j+)roomj.number=k+;roomj.dank=2;roomj.price=200;roomj.state=0;k=801;for(j=40;j60;j+)roomj.number=k+;roomj.dank=3;roomj.price=300;roomj.state=0;k=901;for(j=60;j0、=0或0来决定求解方法。 Switch(2)/有两个不相等的实数解 switch(1)/有两个相等的实数解 switch(0)/有两个不相等的虚数解 2、课程设计性质和目的 该课程设计的主要任务是运用在面向对象程序设计课程中学到的理论知识来指导实践,使 学生了解面向对象与面向过程之间的区别,学会用类的方法解决实际问题。掌握一般类的定义、测 试、 封装、 数据隐藏、 继承及多态等概念, 掌握面向对象程序设计的基本概念和基本方法, 掌握 C+ 语言的基本语法和基本内容,并能运用 C+语言进行基本的面向对象程序设计,并且通过综合课程 设计,提高学生的实践动手技能,培养学生独立分析分析问题和解决问题的能力。3、设计背景现实学习生活中,常会遇到一些自变量较大数据繁杂的方程运算,徒手运算起来很困难,这时候我们就必须用到计算机,所以便着手开发了这个解一元二次方程程序,以便用于自己的学习工作。现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。这些大大方便了我们的生活 给我们更多的选择和实现方式。 这个程序可以直接输入一元二次方程自变量的系数,不需要任何转换,就可以直接输出方程的解并且操作简单、界面清晰、灵活、实用、方便,一元二次方程的设计使我们所学到的c+知识在现实中得到检验。4、程序的实现功能 用户运行程序后进入系统界面,在主界面用户可以输入一元二次方程自变量的系数,直接输出方程的解。本系统同时只能对一个方程进行求解操作,不能同时求解多个方程。 5、 程序概要设计 本系统使用到的库函数有: #include #include #include 系统定义的函数有: void Input(); void Display(); void Find(); 系统定义了类 class FindRoot;6、 结果运行及分析6.1开始界面6.2系数的输入和根的求值6.3各种情况的根的求值6.4程序的退出源代码清单#include /包含iostream的头文件#include #include/字符串处理函数using namespace std;class FindRoot/定义类FindRootprivate: float a,b,c;double r,q,x1,x2;/定义数据成员类型 int jud;public: void Input();/输入函数 void Display();/显示函数 void Find();/求根函数;/以上是类的声明部分,以下是类的实现部分void FindRoot:Input()cout这是一个求解ax2+bx+c=0的根的程序:endl;/总述程序 for(; ;) couta; if(a=0) cout错误:a不能为0!:endl; else break; /输入a,并对a的可能情况进行判断 coutb;/输入b coutc;/输入cvoid FindRoot:Find()/定义求根的函数 float delta=b*b-4*a*c;/定义求根公式的数据类型 if(delta0) jud=0; r=-b/(2*a); q=sqrt(-delta)/(2*a);/有两个共轭复数根的情况 else if(delta=0) x1=-b/(2*a); jud=1;/有两个相同的根的情况 else x1=(-b+sqrt(delta)/(2*a); x2=(-b-sqrt(delta)/(2*a); jud=2;/有两个不同的根的情况 void FindRoot:Display()/定义显示函数switch(jud)case 0: coutx1=r+qiendl;coutx2=r-qiendl;break;/显示有共轭复数根时的解case 1:coutx1=x2=x1endl;break;/显示有一实根时的解case 2:coutx1=x1nx2=x2endl;break;/显示有两不同根情况的解void main()/主函数while(1) FindRoot f;/定义类型 f.Input(); f.Find(); f.Display();/以上各函数按顺序执行 cout是否退出?(Y退出,其它任意键继续)m;if(strcmp(m,Y)=0|strcmp(m,y)=0)break;/如果退出则终止运行elsecout请继续endl;/如果不退出则继续执行课程设计总结通过对C+程序设计一个学期的学习,我对所学知识有了一定的掌握,知道了C+语言是一种面向对象的程序设计语言。然而在做C+课程设计的时候我才发现,C+语言并不像我想的那么容易,它是一个相当复杂的过程。虽然这个课程设计很难,但我通过一个星期的探索,查找了各种相关资料,最终在老师的指导下和同学的帮助下,我成功完成了C+课程设计。做对一元二次方程的求解的编程,首先需要设置一个类,定义几个基本函数,最后在主函数中调用这些函数。在做C+课程设计的过程中,我加深了对C+知识的掌握,积累了编程实践的经验,同时也让我认识到了自己的不足,让我知道了我对知识点掌握的不牢固,下一学期我需要更加认真、更加投入的学习。致谢首先衷心感谢老师在整个课程设计期间给予我的建议和细心的指导。在设计过程中老师针对我的学习方法和习惯提出了许多宝贵的意见和建议,使我受益匪浅。在此对所有关心、帮助过我的老师、朋友和同学们表示真诚的感谢。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!