宾馆客房管理系统.docx
- 文档编号:22998724
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:57
- 大小:345.90KB
宾馆客房管理系统.docx
《宾馆客房管理系统.docx》由会员分享,可在线阅读,更多相关《宾馆客房管理系统.docx(57页珍藏版)》请在冰豆网上搜索。
宾馆客房管理系统宾馆客房管理系统计算机科学与技术专业数据结构课程设计任务书(11级)题目:
宾馆客房管理系统学生姓名:
崔宝文学号:
*班级:
11级计算机科学与技术一班题目类型:
软件工程(R)指导教师:
王连相一题目简介该设计要求学生以宾馆客房管理业务为背景,设计、开发一套“宾馆客房管理系统”软件。
通过该题目的设计过程,可以加深理解线性表、查找表的逻辑结构、存储结构,掌握查找、排序等基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
二主要任务第一部分:
基本算法实现1、线性结构基本算法实现(指导老师根据题目指定);2、树型结构基本算法实现(指导老师根据题目指定);3、图型结构基本算法实现(指导老师根据题目指定);4、查找基本算法实现(指导老师根据题目指定);5、排序基本算法实现(指导老师根据题目指定);第二部分:
指定题目的设计与实现1、查阅文献资料,一般在3篇以上;2、建立数据的逻辑结构和物理结构;3、完成相应算法的设计;4、完成测试工作;5、撰写设计说明书;6、做好答辩工作。
三主要内容、功能及技术指标
(1)使用链表或顺序表实现数据的录入(顺序表或链表的创建)、查找、修改、插入、追加、删除、排序、统计、输出等功能;
(2)建立一个测试的数据表,至少要有20个测试数据,算法对于这些合法的输入数据都能产生满足规格说明要求的结果;(3)算法对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;对算法实现过程中的异常情况能给出有效信息;(4)系统所涉及的信息有:
顾客信息包括:
编号,姓名,性别,籍贯,身份证号,出生日期,年龄,民族,居住地,工作单位等。
客房信息包括:
房间编号,房间等级,价格,是否空闲等入住信息包括:
所住顾客编号,顾客姓名,入住日期,退房日期等。
服务信息包括:
服务项目编号,项目名称,费用等。
系统能够实现:
信息浏览功能;查询功能:
按房号、姓名、入住时间查询;信息的删除与修改。
四提交的成果1.设计说明书一份,内容包括:
1)中文摘要100字;关键词3-5个;2)序言;3)采用类c语言定义相关的数据类型4)各模块的伪码算法5)函数的调用关系图6)调试分析a、调试中遇到的问题及对问题的解决方法;b、算法的时间复杂度和空间复杂度。
7)测试结果8)源程序(带注释)9)设计总结、参考文献、致谢等。
2.刻制光盘一张。
五主要参考文献1严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社.2严蔚敏,吴伟民.数据结构题集(C语言版).清华大学出版社.3DATASTRUCTUREWITHC+.WilliamFord,WilliamTopp.清华大学出版社(影印版).4谭浩强.c语言程序设计.清华大学出版社.5数据结构与算法分析(Java版),APracticalIntroductiontoDataStructuresandAlgorithmAnalysisJavaEditionCliffordA.Shaffer,张铭,刘晓丹译电子工业出版社2001年1月六各阶段时间安排(共2周)周次日期内容地点第1周星期一教师讲解设计要求,准备参考资料教室星期二三分析设计要求,进行数据结构及算法设计教室、实验室星期四五算法设计,编程实现实验室第2周星期一三编程上机实现、测试程序实验室星期四五检查程序,答辩实验室2013年6月28日中文摘要宾馆客房管理系统是以客房管理业务为背景,设计开发的一套软件。
该程序主要实现对宾馆的业务流程进行管理,具有浏览,增加和删除功能,方便管理。
同时实现把保存在文件中的数据读出,依次存放在一个列表中,再被列表行行操作来实现相应的功能。
在用户退出时再把列表中的内容保存回文本文件中。
同时,这一套系统也是应该数据库原理,在数据结构管理的基础上,应用C语言创编的源程序。
其调用函数共分七个大的模块。
在编制好程序之后,要对程序进行相应的调试,并且进行测试,以验证程序的正确性与可用性。
调试及测试时,通过相关信息,充分验证程序的可用性。
本程序通篇均用C语言写成,具有很高的严密性,测试应用宾馆实例,具有很高的真实性与可靠性,这一点也充分验证了C语言在现代社会当中的实用性及普遍性。
关键词:
源程序代码宾馆客房管理系统链表序言在竞争激烈的现代市场中,随处都可用到系统,程序。
可见,一套完整的系统对人们的生活显得尤为重要。
当然,这些最主要的还是应用于与人们息息相关的宾馆等住宿情况当中。
尤其是暑假即将来临之际,人们出行的机率在日益升高。
为此,设计一套完整的宾馆客房管理系统对实现宾馆的系统管理显得尤为重要。
随着我国经济的迅速发展,人们的生活水平有了显著提高,假日经济和旅游经济已成为人们消费的热点。
各地也把旅游业当作本地经济发展的重要支柱之一,从而促进了宾馆酒店业的快速发展。
同时,随着宾馆酒店越来越多,人们的要求越来越高,宾馆酒店业的竞争也愈来愈激烈。
如何在激烈的竞争中生存发展,是每一个宾馆酒店必须面临的问题。
对宾馆的经营状况起决定作用的是宾馆的服务管理水平。
如何利用先进的管理手段,提高宾馆的管理水平,已成为宾馆酒店业发展的当务之急。
面对信息时代的机遇和挑战,利用科技手段提高企业管理无疑是一条行之有效的途径。
虽然计算机管理并不是宾馆管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对宾馆的服务管理提供强有力的支持。
因此,采用全新的计算机网络和宾馆管理系统,已成为提高宾馆的管理效率、改善服务水准的重要手段之一。
在某种意义上,宾馆客房管理方面的信息化已成为现代化宾馆的重要标志。
一.采用类c语言定义相关的数据类型二.各模块的伪码算法1.主函数2.入住函数3.退房函数4.查询函数5.统计业务函数6.订餐系统函数三.函数的调用关系图1.程序运行流程图2.入住流程图3.退房业务图4.查询业务图5.统计业务图6.订餐系统图四.调试分析1.调试中遇到的问题2.调试程序中问的题解决方法五.测试结果六.设计总结参考文献致谢源程序一.采用类c语言定义相关的数据类型charname20;/定义数组姓名charminzu4;/定义数组民族intage;/定义整形年龄charsex5;/定义数组性别charjiguan8;/定义数组籍贯intshenfenzhenghao;/定义整形身份证号intchushengriqi;/定义整形出生日期intlv;/定义整形等级号intfj_num;/定义整形房间号码intbed_num;/定义整形床位号码intyear;/定义整形年intmonth;/定义整形月intday;/定义整形日charleixing20;/定义数组房间类型二.各模块的伪码算法1.主函数voidmain()/主函数hotel_lv*L;cus*p;intc;L=(hotel_lv*)malloc(sizeof(hotel_lv);printf(初始化旅店信息:
n);Init(L);while
(1)/进入菜单选项system(cls);printf(nnn);printf(*n);printf(*n);printf(*欢迎进入宾馆客房管理系统*n);printf(*n);printf(*n);printf(1录入客人信息n);printf(2退房业务n);printf(3查询客人信息n);printf(4统计客人信息n);printf(5宾馆订餐服务n);printf(0退出系统n);printf(请选择你要办理的业务n);scanf(%d,&c);/做选择getchar();switch(c)case1:
input(L);break;case2:
p=Delete(L);free(p);break;case3:
cx_customer(L);break;case4:
tongji_cus(L);break;case5:
dingcan(L);break;case0:
return;getchar();2.入住函数voidinput(hotel_lv*L)/入住函数charc;inti,lv;fangjian*p1;cus*s,*p2,*p3;hotel_lv*l;l=L-next;if(full(L)/判断是否客满printf(房间已满,不能入住。
n);system(pause);elseprintf(请输入旅客所需的房间等级:
);scanf(%d,&lv);while(l!
=NULL)/等级不为空时if(l-lv_num!
=lv)l=l-next;else/有此等级时p1=l-fj_next;while(p1!
=NULL)/房间不为空if(p1-mem_num=p1-max)/是否有空床位p1=p1-next;if(p1=NULL)getchar();printf(此等级为%d的所有房间均无空位n是否愿意更好等级y/n,lv);scanf(%c,&c);/选择if(c=y)input(L);elsereturn;else/客人信息登记/因为床位没有设置头结点,所以对于第一个结点要特别判断if(p1-mem_num=0)s=(cus*)malloc(sizeof(cus);printf(n-n);printf(n入住客人信息:
);printf(n请输入客人的姓名:
);scanf(%s,s-name);printf(n请输入客人民族:
);scanf(%2s,s-minzu);printf(n请输入客人的性别(如:
男1;女0):
);scanf(%s,&(s-sex);printf(n请输入客人籍贯:
);scanf(%s,&(s-jiguan);printf(n请输入客人身份证号:
);scanf(%d,&(s-shenfenzhenghao);printf(n请输入客人出生日期:
);scanf(%d,&(s-chushengriqi);printf(n请输入客人年龄:
);scanf(%d,&(s-age);printf(n房间号:
);scanf(%d,&(s-fj_num);printf(n床位号:
);scanf(%d,&(s-bed_num);printf(n请输入客人入住的时间:
);scanf(%d%d%d,&(s-year),&(s-month),&(s-day);printf(n请输入您所需房间类型(单人间、双人间、总统套房):
);scanf(%s,&(s-leixing);s-lv=lv;/指针修改p1-cus_next=s;p1-mem_num+;/房间当前最大人数加1s-bed_num=1;s-next=NULL;/尾指针设置为空Pr_divide(s,p1);/打印房间分配表system(cls);break;elsep2=p1-cus_next;p3=p2;i=1;while(imem_num)if(i=p3-bed_num)p3=p3-next;i+;elsei+;break;if(p3=NULL)s=(cus*)malloc(sizeof(cus);printf(n-n);printf(n入住客人信息:
);printf(n请输入客人的姓名:
);scanf(%s,s-name);printf(n请输入客人民族:
);scanf(%s,s-minzu);printf(n请输入客人的性别(如:
男1;女0):
);scanf(%s,&(s-sex);printf(n请输入客人籍贯:
);scanf(%s,&(s-jiguan);printf(n请输入客人身份证号:
);scanf(%d,&(s-shenfenzhenghao);printf(n请输入客人出生日期:
);scanf(%d,&(s-chushengriqi);printf(n请输入客人年龄:
);scanf(%d,&(s-age);printf(n房间号:
);scanf(%d,&(s-fj_num);printf(n床位号:
);scanf(%d,&(s-bed_num);printf(n请输入客人入住的时间:
);scanf(%d%d%d,&(s-year),&(s-month),&(s-day);printf(n请输入您所需房间类型(单人间、双人间、总统套房):
);scanf(%s,&(s-leixing);s-lv=lv;while(p2-next!
=p3)p2=p2-next;p2-next=s;p1-mem_num+;s-bed_num=i;s-next=NULL;Pr_divide(s,p1);system(cls);break;elsewhile(p2-bed_num=i)p2=p2-next;s=(cus*)malloc(sizeof(cus);printf(n-n);printf(n入住客人信息:
);printf(n请输入客人的姓名:
);scanf(%s,s-name);printf(n请输入客人民族:
);scanf(%s,s-minzu);printf(n请输入客人的性别(如:
男1;女0):
);scanf(%s,&(s-sex);printf(n请输入客人籍贯);scanf(%s,&(s-jiguan);printf(n请输入客人身份证号:
);scanf(%d,&(s-shenfenzhenghao);printf(n请输入客人出生日期:
);scanf(%d,&(s-chushengriqi);printf(n请输入客人年龄:
);scanf(%d,&(s-age);printf(n房间号:
);scanf(%d,&(s-fj_num);printf(n床位号:
);scanf(%d,&(s-bed_num);printf(n请输入客人入住的时间:
);scanf(%d%d%d,&(s-year),&(s-month),&(s-day);printf(n请输入您所需房间类型(单人间、双人间、总统套房):
);scanf(%s,&(s-leixing);s-lv=lv;s-next=p2-next;p2-next=s;p1-mem_num+;s-bed_num=i-1;Pr_divide(s,p1);system(cls);break;break;3.退房函数cus*Delete(hotel_lv*L)/退房cus*p,*q;charc;fangjian*f;intlv,hotel_num,bed_num;hotel_lv*l;l=L-next;printf(请输入该退房客人的房间等级号码:
n);scanf(%d,&lv);/输入退房人的房间等级getchar();while(l!
=NULL)if(l-lv_num!
=lv)l=l-next;else/找到该等级f=l-fj_next;printf(请输入退房客人的房间号码:
n);scanf(%d,&hotel_num);/输入退房人的房间号码getchar();while(f!
=NULL)if(f-fj_num!
=hotel_num)f=f-next;else/找到该房间p=f-cus_next;q=f-cus_next;printf(请输入该客人的床位号:
n);scanf(%d,&bed_num);/输入退放入的床位号getchar();while(q!
=NULL)if(q-bed_num!
=bed_num)q=q-next;else/查找该床位if(bed_num=1)/因为床位没有设置头结点,所以对第一个结点要特别判断/直接打印客人信息printf(此等级、此房间、此床位的客人信息为:
n);printf(改客人的信息为:
n);printf(姓名t性别t年龄t入住时间n);printf(%st%dt%dt%d-%d-%dn,q-name,q-sex,q-age,q-year,q-month,q-day);printf(是否与退房人的信息相同?
y/nn);scanf(%c,&c);if(c=y)/做出是否退房的选择f-mem_num-;printf(退房成功!
n);system(pause);return(q);elsereturnNULL;else/如果床位不为1while(p-next!
=q)/指向下一床位p=p-next;/打印客人信息printf(此等级、此房间、此床位的客人信息为:
n);printf(改客人的信息为:
n);printf(姓名t性别t年龄t入住时间t房间类型n);printf(%st%dt%dt%d-%d-%dn,q-name,q-sex,q-age,q-year,q-month,q-day,q-leixing);printf(是否与退房人的信息相同?
y/nn);scanf(%c,&c);if(c=y)/做出是否退房的选择f-mem_num-;printf(退房成功!
n);system(pause);return(q);elsereturnNULL;if(q=NULL)/如果该房间内床位为空printf(没有找到该床位,请核对信息后重新输入。
n);if(f=NULL)/如果该等级的房间为空printf(没有找到该房间号,请从新输入。
n);if(l=NULL)/如果等级链表为空printf(没有找到该房间等级,请核对后输入!
n);system(pause);4.查询函数voidcx_customer(hotel_lv*L)/查询客人信息chars15;hotel_lv*l;fangjian*f;cus*t;intflag=0;/设置标志量printf(请输入要查询的客人姓名:
n);scanf(%s,s);/输入要查询的客人姓名getchar();l=L-next;while(l!
=NULL)/等级不为空时,走向房间f=l-fj_next;while(f!
=NULL)/房间不为空时,走向床位if(f-mem_num=0)/若此房间当前人数为0,走向下一见房f=f-next;elset=f-cus_next;while(t!
=NULL)if(!
strcmp(t-name,s)/如果找到该客人Pr_divide(t,f);/打印信息t=t-next;/指向下一个人,继续查找flag+;/标量加1elset=t-next;f=f-next;l=l-next;if(!
flag)/标志量为0,则未查找到printf(没有找到该客人,请核对再输入。
n);system(pause);/统计函数与查询函数基本类似voidtongji_cus(hotel_lv*L)/统计当前客人人数函数hotel_lv*l;fangjian*f;cus*t;inti=0,j=0;intflag;l=L-next;while(l!
=NULL)flag=0;i+;f=l-fj_next;while(f!
=NULL)if(f-mem_num=0)f=f-next;elset=f-cus_next;while(t!
=NULL)flag+;j=j+flag;t=t-next;f=f-next;printf(等级为%d的房间的入住人数为%dn,i,flag);l=l-next;if(!
j)printf(此时无人入住。
n);system(pause);5.统计业务函数p=p-next;/打印客人信息printf(此等级、此房间、此床位的客人信息为:
n);printf(改客人的信息为:
n);printf(姓名t性别t年龄t入住时间t房间类型n);printf(%st%dt%dt%d-%d-%dn,q-name,q-sex,q-age,q-year,q-month,q-day,q-leixing);printf(是否与退房人的信息相同?
y/nn);scanf(%c,&c);if(c=y)/做出是否退房的选择f-mem_num-;printf(退房成功!
n);system(pause);return(q);elsereturnNULL;6.订餐系统函数voiddingcan(hotel_lv*l)intb;printf(请输入您需要订餐的类型(1早餐、2午餐、3晚餐):
n);scanf(%d,&b);/做选择getchar();switch(b)case1:
printf(早餐n豆浆、面包、牛奶n);break;case2:
printf(午餐n西餐、炒菜、火锅n);break;case3:
printf(晚餐n西餐、炒菜、火锅、海鲜n);break;case0:
return;三.函数的调用关系图1程序运行流程图2.入住流程图3.退房业务图4.查询业务图5.统计业务图6.订餐系统图四.调试分析1.调试程序中遇到的问题数据类型不匹配数据输出格式控制不匹配该程序用结构体定义数据类型,由于数据结构体的定义理解不到位使得数据结构体的定义出错程序运行时出现年份、房间号不能显示从键盘上输入的信息不能通过运行软件对应的输出2.调试程序中问的题解决方法程序完成之后,面对在软件运行中遇到的问题,我们组三人通过在读书馆借C语言、数据结构等书籍,查找C语法数据类型定义规则,修改当前错误,通过数据结构中链表数据存储查找,修改链表存储的正确定义,最终使得该程序能够运行出正确的信息。
五.测试结果图5.1初始化信息图5.2客房系统总界面图5.3录入客人信息图图5.4录入客人信息成功图图5.5退房失败图5.6退房成功图5.7统计客人信息图图5.8订餐服务图图5.9退出系统六.设计总结通过对“宾馆客房管理系统“的程序设计,我更深刻地了解了软件开发的重要性,同时,我解决实际问题的能力也得到了提高。
我所设计的宾馆客房管理系统是以宾馆客房管理业务为背景的,通过调研和分析现有的宾馆管理模式和已有的管理软件,我建立了一套完整的系统模型。
先从整体框架入手,编写一份结构模型,从而绘制一份完整的程序流程图,再根据流程图确定要调用的函数及总体数据结构,完成系统的程序编写,编写出宾馆客房管理程序。
最后进行程序调试并进行测试工作,经测试,充分验证了该程序的正确性。
上一周刚开始设计程序时,我还是没有一丝头绪,甚至不知道该做些什么,但经过一周的努力,我找到了自己的设计方向,凭着自己所学的知识和自己所了解的东西,在老师的悉心指导下,完成各项任务。
虽然有许多时候感到困难重重,甚至没有信心,但自己的付出也总算有了回报。
我相信,我的努力会得到老师的承认和大家的认同,并且我也会以此为基础,更深入地学好这门课程。
通过这次做课程设计,我学到了许多以前没有学到的东西,认识了许多自己以前没有认识到的问题。
通过这段时间的学习,我更深刻地感受到设计程序是我们的一门必修课。
参考文献1严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社.2严蔚敏,吴伟民.数据结构题集(C语言版).清华大学出版社.3DATASTRUCTUREWITHC+.WilliamFord,WilliamTopp.清华大学出版社(影印版).4谭浩强.c语言程序设计.清华大学出版社.5数据结构与算法分析(Java版),APracticalIntroductiontoDataStructuresandAlgorithmAnalysisJavaEditionCliffordA.Shaffer,张铭,刘晓丹译电子工业出版社2001年1月。
致谢通过这一段时间的学习分析,并同老师的交流,锻炼了我分析问题的能力,同时培养了我解决实际问题的能力。
如果没有老师
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 客房 管理 系统