欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    软件工程课程设计酒店客房管理系统.doc

    • 资源ID:2885162       资源大小:233KB        全文页数:50页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程课程设计酒店客房管理系统.doc

    数学与计算机学院课程设计说明书课 程 名 称: 软件工程 课 程 代 码: 8404131 题 目: 酒店客房管理系统 年级/专业/班: 09软件工程4班 学 生 姓 名: 学 号: 开 始 时 间: 2011 年 05 月 23 日完 成 时 间: 2011 年 06 月 06 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日学院名称: 数学与计算机学院 课程代码:_8404131_专业: 软件工程 年级: 09级 一、设计题目 客房管理系统二、主要内容本课程设计要求为某酒店开发一个客房管理系统,主要实现登记、预定、结帐、取消预定、续房、转房、预定转入住等功能。三、具体要求及应提交材料具体要求:本课程设计要求学生运用软件工程的思想,严格按照软件生命周期各阶段的目的和任务,完成对系统的分析、设计、编码、及测试。1完成系统的需求分析2完成系统的设计: 针对分析阶段提出的软件要求,给出实现的方案和具体细节的说明。(1)导出系统的数据流程图和功能模块图。(2)设计数据库。使用Microsoft Access创建数据库。确定数据库中数据表的组成。确定数据表中字段的构成、主键字段和有关字段的约束条件等。依靠数据表中主键字段建立数据表之间的关系,并由此建立数据表之间的参照完整性约束。(3)根据功能确定软件模块组成及调用关系。(4)确定每个模块的数据结构及算法。3编码建造模块,在可视化编程环境下,按照软件设计要求制作界面和完成对模块的编码,由此使软件设计具体化为软件作品。4. 测试编写合适的测试用例完成系统的测试工作并分析结果。5编写课程设计报告应提交材料:1上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2课程设计报告的打印稿和电子稿;四、主要技术路线提示1认真阅读相关知识,完成系统的功能分析和系统设计。2选用ACCESS作为DBMS。五、进度安排序号设计内容天数1分析设计内容,给出解决方案32创建数据库及建表33可视化界面设计34对所建数据库进行设计,整理设计思路,编码、测试,写出课程设计报告35指导老师检查设计结果并做成绩评定2总 计14六、参考资料1 张海藩. 软件工程导论. 北京:清华大学出版社,20042 陈明. 实用软件工程基础. 北京:清华大学出版社,20033 殷人昆. 实用软件工程. 北京:清华大学出版社,2003 指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日目 录1. 前言 12. 需求分析 22.1. 功能分析 22.2. 方案分析 23. 概要设计 33.1. 数据结构 33.2. 逻辑结构与物理结构 33.3. 功能模块划分 43.3.1结构框图53.3.2程序流图73.3.3模块功能分析及外部设计84. 详细设计 94.1. 数据类型定义 94.2. 主要模块内部设计 104.2.1预订管理功能模块设计 114.2.1.1模块算法 124.2.1.2流程图 134.3.1.3源代码 144.2.2. 入住管理功能模块设计 154.2.2.1. 模块算法 164.2.2.2. 流程图 164.2.2.3. 源代码 164.2.3. 退房管理功能模块16 4.2.3.1. 模块算法 16 4.2.3.2. 流程图 16 4.2.3.3. 源代码 164.2.4. 查询管理功能模块16 4.2.4.1. 模块算法16 4.2.4.2. 流程图16 4.2.4.3. 源代码165实现与调试分析165.1实现环境165.2语言选择165.3调试分析166测试分析176.1测试用例及测试结果176.2性能分析187用户手册 18总结 20参考文献 20附录 源程序文件名清单:1.前言酒店,是为客人提供住宿、餐饮、娱乐和其它服务的综合性服务企业,它所接待的客来自世界各地,而且这些客人的生活习惯、消费水平、宗教信仰等各不相同。随着我国旅游业的飞速发展,以及社会生活水平的普遍提高,人们对于酒店消费不断地提出更高、更多样性的要求。如何以酒店企业所拥有的有限的人力、物力、财力和信息资源服务于住店客人,满足客人的各种消费需求,在当今竞争日趋激烈的酒店行业中,是经营好酒店企业的重要问题。酒店经营管理人员不但要掌握科学的管理思想和管理方法来综合的运用酒店资源,还应该采用先进的计算机管理手段处理日益复杂的信息资源,正确、及时地对客源市场信息作出反应和正确的指定经营决策,这样才有可能保证酒店企业在如今激烈的竞争中求得生存和发展。成功的应用先进的计算机管理手段辅助酒店企业的经营管理,不但要求酒店的日常操作模式要符合计算机信息处理的要求,而且需要有相应的管理体系和人员配合。作为酒店的经营管理人员只有充分的掌握酒店的各职能岗位的信息流程和计算机处理的要求,并善于结合两者的要求和长处,才能使想进的计算信息处理技术有效的服务与酒店的经营管理。本课程设计主要解决的是在一个酒店的客房管理中,实现计算机对来客的订房情况,消费情况的统计与登记,实现对酒店住房费用的一次性结算服务,为酒店管理人员关于一定时间段里酒店的住房管理情况与酒店的经营情况提供快捷方便高效的管理手段。在本课程设计中,系统开发平台为Windows XP,程序设计设计语言采用Vc+,程序运行平台为Windows XP。在Vc+中可以实现的功能有预定客户管理,客户日常事务登记,住房管理等。通过本课程设计,主要实现对的是对酒店的客房进行管理,使用户能轻松地找到所需要的客房信息,提供订房和退房服务,并对酒店客房的业绩进行统计,以实现服务管理的电子化,自动化,提高酒店客房管理的办公效率,为提高和改善酒店的服务质量提供保证。2.需求分析2.1功能分析经过综合分析,确定了系统应该包括如下功能: 客房信息管理;用户可对酒店客房的相关信息进行管理,包括对客房的基本信息(如客房号,客房价格等)进行检索,录入和修改u 客房订房管理;实现客户对酒店客房的预定要求。酒店客户在可选择预订方式或者是到达酒店后再订的方式进行订房选择,系统用户根据客户的选择,为客户登记订房消息,并将客户的相关信息记录在案。为客户分配合适的客房后,将相应的客房信息更改后也记录在案。订房时,根据客户的类型,信息记录,以及订房方式,所选房间类型,用户作出相应处理。u 客房入住管理;实现客户对酒店客房的预订转入住要求。u 客房退房管理;实现客户的退房要求,并进行费用结算。u 客户信息管理;用户可对入住过酒店的客户信息进行查询,包括对客户的基本信息(如身份证号、客户姓名、联系电话)进行检索。2.2方案分析该系统的最终用户有两种类型:一是顾客,二是客房管理人员。顾客只在宾馆的网站部分有权限,可以预定宾馆房间,对宾馆进行评价等。客房管理人员拥有输入顾客预定、入住和修改客房等信息的权限。此客房管理系统将会对这两种不同类型的用户做不同的功能需求分析并满足其需求。系统需对用户登录进行管理。使用各功能模块时,系统应验证用户身份的有效性,否则要求用户登录。另外,允许用户对自己的密码进行修改。3.概要设计 3.1.数据结构 分析可画出客房管理系统的D层数据流图。由图可知此系统的终端用户酒店顾客和酒店管理人员。其中,酒店用户通过此系统可查询客房信息。而酒店管理人员可以对客户信息、客房信息和房卡账单等进行查询和更新操作。图3.1 总体数据流程图详细说明:u 酒店客户在可选择预订方式或者是到达酒店后再订的方式进行订房选择,系统用户根据客户的选择,为客户登记订房消息,并将客户的相关信息记录在案。为客户分配合适的客房后,将相应的客房信息更改后也记录在案。订房时,根据客户的类型,信息记录,以及订房方式,所选房间类型,用户作出相应处理。u 酒店客户在退房时,系统用户对客户应付金额进行结算后开出发票,并更新相应客房信息。E-R图设计:交易记录入住时间订房时间房间号码身份证号消费总额订房数入住天数退房时间 图3.2交易记录实体顾客身份证号联系电话房间号码姓名消费统计订房时间号图3.3 客户记录实体 客房房间号码客房类型使用状态床位数价格 图3.4 客房实体用户用户名联系电话密码 图3.5 管理人员实体111111n111mnmn用户管理客房客户消费记录交易记录住宿产生交易查询核算账单 图3.6 实体间的联系图3.2逻辑结构和物理结构 通过对上述数据结构的分析,根据酒店管理系统的需求,将以上的E-R图转换为关系模式:u 顾客(身份证号,姓名,电话,订房时间,房间号码,消费统计);u 房间(房间号码,房间类型,床位数,价格,使用状态);u 管理人员(用户名,密码,联系电话);u 交易记录(房间号码,身份证号,订房时间,入住时间,退房时间,入住天数,订房数,消费总额)。3.3. 功能模块划分 3.3.1结构框图 客房管理系统退房管理模块客户信息管理模块客房信息管理模块入住管理模块订房管理模块 图3.7 酒店客房管理系统结构方框图以下为各功能模块的主要功能描述:u 客房信息管理:用户可对酒店客房的相关信息进行管理,包括对客房的基本信息(如客房号,客房价格等)进行检索,录入和修改。u 客房预订管理:实现客户对酒店客房的预定要求。u 客房订房及入住管理:实现客户对酒店客房的订房以及预订转入住要求。u 客房退房管理:实现客户的退房要求,并进行费用结算。u 顾客信息管理:用户可对入住过酒店的客户信息进行查询,包括对客户的基本信息(如身份证号、客户姓名、联系电话)进行检索。3.3.2程序流图412132开始输入用户名和密码输入服务类型预 定入 住退 房查 询退 出 系 统返回用户界面 图3.8 系统流程图3.3.3模块功能分析及外部设计u 订房管理功能:酒店顾客可通过这个功能在未到达酒店之前先在酒店中预订住房,预订方式可通过电话或者请求他人,但应带有相关证件。顾客在预订房间之后须在系统设定期限内入住,否则取消预订。u 入住管理功能:顾客在预订转登记或者已登记好后,就进入本环节,顾客在交纳定金后可获得所订房间的房卡并入住房间。u 退房管理功能:本系统对结账方式如下规定:每个房间的消费总额由登记身份证号的顾客结账。结账方式为现金及银行卡结合的方式,不接受挂账。u 信息查询功能:本模块实现的是管理人员对顾客消费信息以及酒店内客房的基本信息进行管理的操作,基本操作为查询,录入和修改,客房的基本信息包括:客房的房间号,房间类型,房间状态。顾客信息包括顾客当前所住的房间号码和其姓名,身份证号等信息。4. 详细设计4.1. 数据类型定义struct Room int number; int dank; int price; int state; ;class Customer public: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;4.2. 主要模块内部设计 4.2.1预订管理功能模块 4.2.1.1模块算法 顾客输入其信息并选择了房间类型时,系统对顾客所选的房间类型逐一检查其房间状态,寻找到第一个房间状态为空(即0)的房间,则取出房间号码告知顾客预定成功并对其进行消费金额计算。最后将取出的房间的状态改为1(即已订),并将该顾客的个人信息存入系统中。 4.2.1.2流程图客户信息登记酒店可用房间分配计算消费总额提交数据酒店是否有充足空房告知客户并取消服务YesNo 图4.1 顾客预定流程图4.2.1.3源代码void book_room()customeri=new Customer;int room_standard,day;cout<<"请您选择预定房间的标准:n" cout<<"1.单人间/天元n2.双人间/天元n3.标准间/天元n4.总统套房/天元n" cin>>room_standard; cout<<"请输入预定天数n" cin>>day; customeri->set_day(day);switch(room_standard) int n;case 1:cout<<"住房费用总共为: "<<day*150<<"元n" /计算住房费用for(n=0;n<20;n+) /从第一个级别的房间中查找一个空闲的房间if(roomn.state=0) /state=0表示该住房没有被预定的cout<<"预定成功!您的房间号码为: "<<roomn.number<<endl; roomn.state=1;customeri->set_room_number(roomn.number);break; else cout<<”此类型房间已满!n”;break; case 2:cout<<"住房费用总共为: "<<day*200<<" 元n" for(n=20;n<40;n+)if(roomn.state=0)cout<<"预定成功!您的房间号码为: "<<roomn.number<<endl; roomn.state=1;customeri->set_room_number(roomn.number);break; else cout<<”此类型房间已满!n”;break; case 3:cout<<"住房费用总共为: "<<day*300<<" 元n" for(n=40;n<60;n+)if(roomn.state=0)cout<<"预定成功!您的房间号码为: "<<roomn.number<<endl; roomn.state=1;customeri->set_room_number(roomn.number);break; else cout<<”此类型房间已满!n”;break; case 4:cout<<"住房费用总共为: "<<day*600<<"元n" for(n=60;n<80;n+)if(roomn.state=0)cout<<"预定成功!您的房间号码为: "<<roomn.number<<endl; roomn.state=1;customeri->set_room_number(roomn.number);break; else cout<<”此类型房间已满!n”;break; i+; /住房的顾客数加4.2.2入住管理功能模块 4.2.2.1模块算法首先判断顾客是预订转入住还是直接订房入住。若该顾客是预订转入住则提示顾客输入相关信息,并判断是否存在该顾客的预订信息。若存在则计算其欲消费总额收取定金并将房间卡交给顾客,最后将该房间的状态由已订改为已入住。并将入住的信息存入系统中。 4.2.2.2流程图该顾客是否已订房间YesNo按客户要求查询酒店客房顾客输入姓名和身份证号Yes顾客身份确认顾客缴纳定金分给顾客房间钥匙提交数据告知顾客无预定信息No客户信息登记酒店是否有充足空房告知客户并取消服务酒店可用房间分配计算消费总额提交数据Yes 图4.2 顾客入住流程图 4.2.2.3源代码/入住登记*void check_in() char name110,id119; int ding_or_no,prepaid; cout<<"该顾客订房了吗? (1->订了 2->没订) " cin>>ding_or_no; if(ding_or_no=1)cout<<"请输入顾客的姓名:"<<endl;cin>>name1;cout<<"请输入顾客的身份证号码:"<<endl;cin>>id1;for(int j=0;j<=i;j+)if(strcmp(customerj->get_name(),name1)=0)&&(strcmp(customerj->get_ID(),id1)=0) /查找该顾客的定房信息int num=customerj->get_room_number(); /取得定房的房间号cout<<"顾客"<<name1<<"今天入住本宾馆! 房间号码为: "<<num<<endl;switch(num/100)case 6:prepaid=customerj->get_day()*150;customerj->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!"<<endl; /开始收费roomnum%100-1.state=2; /修改房间状态为入住状态break;case 7:prepaid=customerj->get_day()*200;customerj->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!"<<endl;room19+num%100.state=2;break;case 8:prepaid=customerj->get_day()*300;customerj->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!"<<endl;room39+num%100.state=2;break;case 9:prepaid=customerj->get_day()*600;customerj->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!"<<endl;room59+num%100.state=2;break;break; else cout<<"预订信息不存在!入住失败!n" else customeri=new Customer;int room_standard,day;cout<<"请您选择预定房间的标准:n" cout<<"1.单人间/天元n2.双人间/天元n3.标准间/天元n4.总统套房/天元n" cin>>room_standard; cout<<"请输入住宿天数n" cin>>day; customeri->set_day(day);switch(room_standard) int n;case 1:prepaid=day*150;customeri->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!n" for(n=0;n<20;n+)if(roomn.state=0)cout<<"入住房间号码为: "<<roomn.number<<endl;roomn.state=2;customeri->set_room_number(roomn.number);break;break; case 2:prepaid=day*200;customeri->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!n" for(n=20;n<40;n+)if(roomn.state=0)cout<<"入住房间号码为: "<<roomn.number<<endl;roomn.state=2;customeri->set_room_number(roomn.number);break;break; case 3:prepaid=day*300;customeri->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!n" for(n=40;n<60;n+)if(roomn.state=0)cout<<"入住房间号码为: "<<roomn.number<<endl;roomn.state=2;customeri->set_room_number(roomn.number);break;break; case 4:prepaid=day*600;customeri->set_prepaid(prepaid);cout<<"请收房费"<<prepaid<<"元整!n" for(n=60;n<80;n+)if(roomn.state=0)cout<<"入住房间号码为: "<<roomn.number<<endl;roomn.state=2;customeri->set_room_number(roomn.number);break;break; i+;4.2.3.退房管理功能模块4.2.2.1模块算法 顾客提出结账要求时输入其姓名和身份证号,此时系统内部自动查询该顾客所住的房间号码和该房间的类型,输入其实际住房时间,系统自动结算其消费总额输出其房号和房间类型和计算后实际应收的费用,自动和顾客的预交金额做比较,若实际消费低于预收金额则退还顾客多收的费用,若少于则输出顾客应补交的费用,最后确认核算清楚,退出该功能。4.2.2.2流程图客户提出结账要求结算客户消费金额客房状态检查收取相应金额或退出多余定金更新相应信息提交数据 图4.4 顾客退房流程图4.2.3.3源代码void check_out()char name210,id219;int standard,j,room_number,day1,day2,day;cout<<"请输入要退房的顾客姓名和身份证号码:n"cin>>name2>>id2; cout<<"请输入该顾客实住天数:n" cin>>day2; for(j=0;j<i;j+)if(strcmp(customerj->get_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<<"该顾客预付了房费 "<<customerj->get_prepaid()<<"元, 实际消费 "<<day2*150<<"元整!n"cout<<endl;if(day>0)cout<<"请退给该顾客 "<<day*150<<" 元整!n" if(day<0)cout<<"请补收该顾客住房费 "<<-day*150<<" 元整!n"break;case 7:cout<<"顾客的房间号是"<<room_number<<" :为单人间,每天200元n"cout<<"该顾客预付了房费 "<<customerj->get_prepaid()<<"元, 实际消费 "<<day2*200<<"元整!n"cout<<endl;if(day>0)cout<<"请退给该顾客 "<<day*200<<" 元整!n" if(day<0)cout<<"请补收该顾客住房费 "<<-day*200<<" 元整!n"break; case 8:cout<<"顾客的房间号是"<<room_number<<" :为单人间,每天300元n"cout<<"该顾客预付了房费 "<<customerj->get_prepaid()<<"元, 实际消费 "<<day2*300<<"元整!n"cout<<endl;if(day>0)cout<<"请退给该顾客 "<<day*300<<" 元整!n" if(day<0)cout<<"请补收该顾客住房费 "<<-day*300<<" 元整!n"break; case 9:cout<<"顾客的房间号是"<<room_number<<" :为单人间,每天600元n"cout<<"该顾客预付了房费 "<<customerj->get_prepaid()<<"元, 实际消费 "<<day2*600<<"元整!n"cout<<endl;if(day>0)cout<<"请退给该顾客 "<<day*600<<" 元整!n" if(day<0)cout<<"请补收该顾客住房费 "<<-day*600<<" 元整!n"break; cout<<endl;cout<<"退房核算清楚,请按1: "char account;cin>>account;if(account='1')for(int k=0;k<80;k+)if(roomk.number=customerj->get_room_number() roomk.state=0;i-;for(;j<i;j+)customerj=customerj+1;delete customeri; 4.2.4信息查询功能模块4.2.4.1模块算法顾客查询:当选择了顾客查询时会出现按照姓名查询和按照身份证号查询两项。无论选择哪种查询方式均要输入系统所提示的输入信息,输入后系统内部对顾客姓名或者身份证号进行匹配,匹配成功时将输出所匹配结果,其中包括该顾客的姓名,身份证号和所住房间号码。客房查询: 当选择了客房查询时系统内部自动从第一个客房开始搜索,搜索每个客房的状态,最后根据客房的三个不同状态将客房分类输出。 4.2.4.2流程图

    注意事项

    本文(软件工程课程设计酒店客房管理系统.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开