酒店客房预订管理系统.doc_第1页
酒店客房预订管理系统.doc_第2页
酒店客房预订管理系统.doc_第3页
酒店客房预订管理系统.doc_第4页
酒店客房预订管理系统.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

。 -可编辑修改- 院院 系:系: 计计算机科学学院算机科学学院 专业专业、年、年级级: : 2010 计计科(科(1)大班)大班 课课程名称:程名称: 软软件工程件工程 项项目名称:目名称: 酒店客房酒店客房预订预订管理系管理系统统 学号姓名:学号姓名: 10061064 朱辰朱辰 学号姓名:学号姓名: 10061065 徐徐丽丽 学号姓名:学号姓名: 10081109 张赛张赛北北 学号姓名:学号姓名: 10151251 张胜张胜南南 指指导导教教师师: : 刘刘卫卫平平 2012 年年 12 月月 23 日日 。 -可编辑修改- 目目录录 第一章第一章 系系统统概述概述 1 1.1 系统开发背景和意义 .1 1.2 开发语言简介 .1 1.3 本系统简介1 1.4 系统运行环境 .2 第第二二章章 系系统统需求分析需求分析 2 2.1 用户需求 .2 2.2 功能需求 .3 2.3 性能需求 .3 2.4 出错处理需求 .3 2.5 功能图 .3 2.6 数据流图 .4 2.7 E-R 图 5 第第三三章章 系系统总统总体体设计设计 5 3.1 系统功能设计 .5 3.2 系统功能模块图 .6 第第四四章章 系系统详细设计统详细设计 8 4.1 系统详细设计进度规划(甘特图) .8 4.2 系统详细设计任务 .8 4.3 系统物理方案配置设计 .9 4.4 系统输入输出设计 .9 4.5 系统程序流程图 .11 第第五五章章 模模块设计块设计思路分析思路分析 11 第第六六章章 使用使用说说明明 12 第七章第七章 程序源代程序源代码码 16 结结束束语语 36 参考文献参考文献 37 。 -可编辑修改- 第一章第一章 系系统统概述概述 1.1 系系统统开开发发背景和意背景和意义义 随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域,成为不可缺少的工具,尤 其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。在人民生活水平提高的同时, 餐饮,住宿,娱乐业在服务行业中占有越来越重要的地位。要使在当前酒店行业日趋激烈的竞争中脱 颖而出,必须努力发展自己在管理方面的特色,避免传统管理方法的失误,使酒店的信誉以及各个管 理方面都能够出现零失误,给管理者和普通的营业员带来操作上的方便,对整个酒店各个方面的业 务带来快捷,方便,高效的服务,才是管理软件的成功之处。 现今酒店宾馆的规模不断扩大,客户数量急剧增加,有关客户的各种信息也成倍增长,尤其是大 量的客房预订信息。面对庞大的信息量,需要有客户信息管理系统来提高客户管理工作的效率。通过 这样的系统,可以做到信息的规范管理,科学统计和快速查询,从而减少管理方面的工作量。当前许 多酒店正在逐步完善客户信息管理工作,需要一个能满足内部管理需求,提高管理效率的应用系统 进行内部管理。许多酒店经过多年的发展,规模不断扩大,客流量成倍增长,积累了大量的客户信息 急需进行统一管理以防信息的流失。因此,许多酒店需要一个功能全面的客户信息管理系统来进行 管理,以使管理客户信息的工作在该系统的配合下更加高效和便捷。 1.2 开开发语发语言言简简介介 酒店客房预订信息管理系统是一个对客户全方面管理的程序。该客房预订信息管理系统是在 Visual C+ 6.0 平台下设计开发,以 TXT 文档为后台数据库, 利用 Visual C+ 6.0 提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后, 对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。Microsoft 的 Visual C+ 6.0 作为一种面向网络、支持各种用户终端的开发平台环境,推动新一代因特网的发展,真正地 让人们可以在任何时间、任何地点、通过任何设备得到信息。 1.3 本系本系统简统简介介 现代化的酒店组织庞大、服务项目多、信息量大,想要提高劳动生产、降低成本、提高服务质量 和管理水平,进而促进经济效益,必须借助计算机来进行现代化的信息管理。酒店管理系统正是为此 而设计的。优秀的酒店客房管理系统操作方便,灵活性好,系统安全性高,运行稳定。这也是我所设 计本程序的目的之一。本系统针对用户和客户以及客房的管理采用了当今常用的 C/S 结构而设计。 。 -可编辑修改- 采用面向对象的语言开发而成,实现对客户预订信息的基本管理,包括订房,退房,客房信息、客户 信息的添加、修改和查询。 1.4 系系统统运行运行环环境境 机型:PC 处理器:奔四或更高 内存:512M 或更高 硬盘:4G 或更高 输入输出设备:键盘、扫描仪、打印机、显示器等。 数据库软件:Notepad 编程工具、编程语言:visual C+ 编译软件:Microsoft Visual C+ 6.0 操作系统:Microsoft Windows XP 第二章第二章 系系统统需求分析需求分析 2.1 用用户户需求需求 该酒店预订管理系统使用户能迅速而便捷的了解和查询酒店信息,根据自己的需求来预订房间。 一个方便地实现对客房变更、房价及预订信息的自动化操作。 使用该系统全面管理酒店信息,为用 户节省时间和人力,更能全面、有效地掌握酒店基本情况,及时获取最新的准确资料和信息。该软件 能系统管理酒店的信息,功能与实现方面有相当的针对性和实用性。该系统的主要功能有酒店信息 管理,房间类型管理,订单信息管理,业务人员编辑和系统用户管理。 2.2 功能需求功能需求 本系统主要具备以下几个基本功能: 。 -可编辑修改- (1)客房预订:按照客户需求,为新客户分配新客房。 (2)退房管理:删除已退客户信息,及时更新客房留存状态,方便新客户入住。 (3)客房设置:可以添加新客房,修改客房描述(房间等级,内部设施等),删除客房。 (4)客户设置:可以添加新客户,修改客户信息,删除已退订客户等,可准确了解每一客 户的预订信息。 (5)房间预订情况查询:可按客户号、房号查询,方便实用,在众多房间、客户中准确查询到某一个房 间或客户。 2.3 性能需求性能需求 1.技术可行性 该客房预订信息管理系统是在 Visual C+ 6.0 平台下设计开发,以 TXT 文档为后台数据库, 采用面向对象的语言开发而成,系统的客户端在 Windows 平台下运行,服务器端可在 Windows 平台 或 UNIX 平台下运行。 2.经济可行性 该系统节省人力资源成本的同时,可以提高业务效率,并能够及时、准确、迅速地满足顾客服务 的需求,系统的开发成本低,现有的 PC 机即可提供该系统开发工作需要的所有硬件设备环境。 3.操作可行性 直接浏览网页的形式,利用鼠标进行傻瓜式的操作,操作中的每一步都会有相应的提示,这 样可以让更多的人群在最短的时间内学会使用他。 2.4 出出错处错处理需求理需求 在进行每一步操作时,都会有相应的提示操作,当系统出错时,会有相应的提示信息让你 寻找错误,它的简单,易学的特性使得能够广泛普及,让更多的人去使用。 ( (为为了更好地了更好地阐阐述需求更能,我述需求更能,我们们做了做了详细详细的的图图形形说说明)明) 2.5 系系统统功能功能图图 。 -可编辑修改- 2.6 系系统统数据流数据流图图 。 -可编辑修改- 2.7 E-R 图图 第三章第三章 系系统总统总体体设计设计 3.1 系系统统功能功能设计设计 该系统充分考虑用户的操作简便性,实现快捷操作。它有以下几个功能: (1)客房预订:按照客户需求,为新客户分配新客房。 (2)退房管理:删除已退客户信息,及时更新客房留存状态,方便新客户入住。 (3)客房设置:可以添加新客房,修改客房描述(房间等级,内部设施等),删除客房。 。 -可编辑修改- (4)客户设置:可以添加新客户,修改客户信息,删除已退订客户等,可准确了解每一客 户的预订信息。 (5)房间预订情况查询:可按客户号、房号查询,方便实用,在众多房间、客户中准确查询到某个房间 或客户。 4.2 系系统统功能模功能模块图块图 根据上述系统功能分析,能得出下面系统软件功能模块图: 3.2.1 整体模块分配 该系统充分考虑用户的操作简便性,实现快捷操作。它有以下四大模块: (1)订房:按照客户需求,为新客户分配新客房。 (2)退订:删除已退客户信息,及时更新客房留存状态,方便新客户入住。 (3)客房信息:可以添加新客房,修改客房描述(房间等级,内部设施等),删除客房以及查看所有 客房的状态信息。 (4)客户信息:可以添加新客户,修改客户信息(客户编号,客户姓名),删除已退订客户信息以及 查看所有客户的订房状态信息。 3.2.2 客户信息子模块 。 -可编辑修改- (1)新增:录入客户编号、客户姓名等信息 (2)更改:更改相应客户的个人信息。 (3)删除:删除相应客户的个人信息。 (4)查询:查询所需客户的订房信息。 (5)显示:显示所有预订客户的个人信息以及预订房号。 (6)全删:删除所有客户信息。 3.2.3 客房信息子模块 (1)新增:录入客房编号、客房描述等相关信息。 。 -可编辑修改- (2)更改:更改相应客房的信息。 (3)删除:删除相应客户及客房的信息。 (4)查询:查询所需客房的订房状态。 (5)显示:显示所有客房的房号以及预订状态信息。 (6)全删:删除所有客房信息。 第四章第四章 系系统详细设计统详细设计 4.1 系系统详细设计进统详细设计进度度规规划划 甘特图如下 4.2 系系统详细设计统详细设计任任务务 1.算法过程的设计: 。 -可编辑修改- 本详细设计采用的是流程图的方式来表达每个处理过程的算法。 2.数据结构的设计: 对于处理过程中涉及的概念性的数据类型进行确切的定义。 3.测试用例设计: 测试用例包括输入数据和预期结果等内容。 4.3 系系统统物理方案配置物理方案配置设计设计 1.设计指标 1)系统的可靠性:该系统要求 24 小时不间断工作工作,发生错误的概率低于 0.01%。 系统吞吐量 2)要提高系统的吞吐量:要求使用具有大吞吐量的计算机。应该选择具有较高性能的计算机。 3)系统响应时间:响应时间不超过 2 秒 4)系统处理方式:该系统采用主机系统方式。 2.计算机硬件配置 计算机硬件选择取决于要运行的软件系统,本系统建议最低采取如下配置:内存:512MB;CPU: 奔四 1.8GHZ 以上;硬盘:空余空间 4G。 4.4 系系统输统输入入输输出出设计设计 4.4.1 输入设计原则 1.输入数据量设计:需要输入客户数据,数据量不大。 2.输入错误检测:检测客户登记状态,确保不会重复登记或登记错误。 4.4.2 数据输入设备的选择 本系统选择键盘、鼠标人工输入方式。 4.4.3 输入检验设计 本系统对输入检验设计的地方有如下几处: 1.当前台工作人员输入客户数据时,系统会自动检测该信息是否已在系统中存在。 。 -可编辑修改- 2.当业务员输入房间号时,系统会检测该房间号是否存在,若不存在会提示酒店没该房间。 4.4.4 输出设计内容 1.输出信息应包括系统的使用者,如客户、酒店管理人员、前台服务人员等。 2.信息应以表格及文档形式输出。 3.输出设备:打印机、终端显示器。 4.输出介质:输出到专用纸张及电脑屏幕上。 4.4.5 错误改正方法 系统出现错误时,将弹出提示框。并允许工作人员改正。 。 -可编辑修改- 4.5 系系统统程序流程程序流程图图 第五章第五章 模模块设计块设计思路分析思路分析 本程序共有五大功能模块:新建模块、更改模块、删除模块、查询模块和显示模块。各模块在功能 上互相补充,在程序中互相融合,才能实现一个具有多种功能的管理系统。 (1)新建模块:实现所有客房、订房客户的录入工作。 。 -可编辑修改- (2)更改模块:提供数据的修改,包括客户姓名、客房描述等。 (3)删除模块:将已退订的客户从数据库中删除。 (4)查询模块:本程序最重要的模块,也是本系统的精髓所在。通过房间号或客户号实现客房的 预订情况以及客户入住情况的查询工作。 (5)显示模块:显示所有客房、订房客户的基本信息。 在程序设计上,我们的目标就是先实现单个模块,进而实现整个程序。本程序正是本着这种思想, 一步一步,有条不紊的进行规划与设计。本程序通过四个类:客户类、客户库类、客房类、客房库类, 并通过主函数调用类函数实现了这五大功能模块的功能。 章 6 章 使用使用说说明明 (1)程序主界面:界面简洁明了,一目了然,便于操作。选择数字 0-6 进入相应功能。 (2(订房:主界面选择 1 进入订房功能 。 -可编辑修改- (3(查询房间预订情况:主界面选择 3 进入该功能 (4(增删客户信息:主界面选择 4 进入该功能 1.增加客户信息:系统提示输入客户号码、姓名等信息,按要求录入即可。 2.删除个人信息:系统提示输入要更改的客户号,输入后即可更改该客户的个人信息。 3.返回:返回主界面。 。 -可编辑修改- (5)增删房间信息:主界面选择 5 进入客房信息管理菜单。 1.新增:系统提示输入房间号、房间描述等信息,按要求录入即可。 2.删除:系统提示输入要删除的房间号,输入后即可删除该房间。 3.返回:返回主界面。 (6)查询客户和房间总信息量:主界面选择 6 进入该功能, 通过读取文件信息、预订然后将信息输出显示。 。 -可编辑修改- (7)退房:主界面选择 2 进入退房功能。 (8)退出:主界面选择 0 退出程序。 (9(文件中读取房间信息 room 。 -可编辑修改- (10(文件读取客户信息 customer 第七章第七章 程序源代程序源代码码 程序源代码包含三大块:类定义、各功能函数定义及实现和主函数实现 类定义源代码: #ifndef INFO_H #define INFO_H #include #include #include using namespace std; namespace info_space class Customer public: Customer(); string name; int number; /客户编号 ; class Room 。 -可编辑修改- public: Room(); int room_number; int room_level;/房间等级,1-5 级 string room_config;/房间配置:高级,优,良,中等,普通 ; class CustomerBase public: CustomerBase(); void add(Customer temp);/前条件,temp 已经含有值 void remove(Customer temp); Customer the_customer; CustomerBase* next; ; class RoomBase public: RoomBase(); void add(Room temp); void remove(Room temp); Room the_room; RoomBase* next; ; class InfoBase public: int customer_number; int room_number; InfoBase(); void add(InfoBase* void remove(InfoBase* bool check(InfoBase* bool checkall(InfoBase* void output(InfoBase* 。 -可编辑修改- InfoBase* next; ; typedef CustomerBase* CBasePtr; typedef RoomBase* RBasePtr; typedef InfoBase* IBasePtr; Customer:Customer() /构造函数 name=“; number=-1; Room:Room() room_number=-1; room_level=0; room_config=“; CustomerBase:CustomerBase() next=NULL; RoomBase:RoomBase() next=NULL; InfoBase:InfoBase() next=NULL; void pause() char get; coutt_name; while(!instream.eof() instreamt_number; t_temp-the_=t_name; t_temp-the_customer.number=t_number; if(instream.eof() return; t_temp-next=temp; temp=t_temp; t_temp=NULL; t_temp=new CustomerBase; /循环创建用户信息类 instreamt_name; void writefile(ofstream CBasePtr t_temp=temp; /为了防止写完文件后,指针到达指针尾 while(t_temp!=NULL) if(t_temp-the_=“) t_temp=t_temp-next; if(t_temp=NULL) break; /这两个 if 语句用来判别输出客户信息 outstreamnumber; while(!instream.eof() instreamlevel; instreamconfig; t_temp-the_room.room_number=number; t_temp-the_room.room_level=level; t_temp-the_room.room_config=config; if(instream.eof() return; t_temp-next=temp; temp=t_temp; t_temp=NULL; t_temp=new RoomBase; instreamnumber; void writefile(ofstream RBasePtr t_temp=temp; while(t_temp!=NULL) if(t_temp-the_room.room_number=-1) t_temp=t_temp-next; if(t_temp=NULL) break; /这两个 if 语句用来判别输出房间信息 outstreamthe_customer.number=number) return true; else the_ptr=the_ptr-next; return false; bool check(RBasePtr while(the_ptr!=NULL) if(the_ptr-the_room.room_number=number) return true; else the_ptr=the_ptr-next; return false; void CustomerBase:add(Customer temp) /添加客户信息 if(=“|temp.number=-1) coutnext; if(check(temp_ptr,temp.number) coutnext=ptr; outstream.open(“E:customer.txt“); /open 函数会刷新文档,里面存储的内容全失 writefile(outstream,temp_ptr); /将新的链表信息写入文件中 void CustomerBase:remove(Customer temp) /删除客户信息 int flag=0; /设置一个标记,用来检验删除是否成功 ifstream instream; ofstream outstream; instream.open(“E:customer.txt“); CBasePtr temp_ptr=NULL; readfile(instream,temp_ptr); /读取文件中的客户信息,存入 temp_ptr 中 if(!check(temp_ptr,temp.number) coutnext; /如果第一个元素就是要删除的元素则直接删除 after=NULL; /元素已经删除,可以直接写入文件中,设置 after 为 NULL 跳过 while 循环 flag=1; while(after!=NULL) if(after-the_customer.number=temp.number) before-next=after-next; flag=1; /删除成功,设置标志为 1 else before=before-next; after=before-next; /while 循环结束 if(flag=0) coutnext; if(check(temp_ptr,temp.room_number) coutnext=ptr; outstream.open(“E:room.txt“); writefile(outstream,temp_ptr); /将新的链表信息写入文件中 void RoomBase:remove(Room temp) int flag=0; /设置一个标记,用来检验删除是否成功 ifstream instream; ofstream outstream; instream.open(“E:room.txt“); RBasePtr temp_ptr=NULL; readfile(instream,temp_ptr); /读取文件中的房间信息,存入 temp_ptr 中 if(!check(temp_ptr,temp.room_number) 。 -可编辑修改- coutnext; /如果第一个元素就是要删除的元素则直接删除 after=NULL; /元素已经删除,可以直接写入文件中,设置 after 为 NULL 跳过 while 循环 flag=1; while(after!=NULL) if(after-the_room.room_number=temp.room_number) before-next=after-next; flag=1; /删除成功,设置标志为 1 else before=before-next; after=before-next; /while 循环结束 if(flag=0) coutroom_number=rnum; ptr-next=temp_ptr; temp_ptr=ptr; void InfoBase:remove(IBasePtr if(before-customer_number=cnum) temp_ptr=temp_ptr-next; coutnext=after-next; coutnext; bool InfoBase:check(IBasePtr while(ptr!=NULL) if(ptr-customer_number=cnum) 。 -可编辑修改- return true; else ptr=ptr-next; return false; bool InfoBase:checkall(IBasePtr while(ptr!=NULL) if(ptr-customer_number=cnum) coutchoice; if(choice6|choicecustomer_number; coutroom_number; readfile(in_customer,CB_ptr); /读取文件客户信息 if(!check(CB_ptr,customer_number) coutadd(IB_ptr,customer_number,room_number); break; case 2: coutcustomer_number; readfile(in_customer,CB_ptr); /读取文件客户信息 if(!check(CB_ptr,customer_number) coutremove(IB_ptr,customer_number); else coutchoose; switch(choose) case 1: string name=“; int number=-1; Customer temp; coutname; coutnumber; 。 -可编辑修改- =name; temp.number=number; CB_ptr-add(temp); break; case 2: string name=“; int number=-1; Customer temp; coutnumber; =name; temp.number=number; CB_ptr-remove(temp); break; case 3: system(“cls“); goto label_menu; break; case 5: int choose; coutchoose; switch(choose) case 1: int number=-1; int level=0; string config=“; Room temp; coutnumber; coutlevel; coutconfig; temp.room_number=number; temp.room_level=level; temp.room_config=config; RB_ptr-add(temp); break; case 2: int number=-1; int level=0; string config=“; Room temp; coutnumber; temp.room_number=number; temp.room_level=level; temp.room_config=config; RB_ptr-remove(temp); break; case 3: system(“cls“); goto label_menu; break; case 6: readfile(in_customer,CB_ptr); readfile(in_room,RB_ptr); /读取两个文件的所有信息 。 -可编辑修改- CBasePtr cptr=CB_ptr; RBasePtr rptr=RB_ptr; /不修改两个主要变量的的指向内容,所以定义了两个临时变 量 cout“所有客户信息:“the_customer.number=-1) cout“-没有任何客户信息!“endlthe_customer.number) coutthe_customer.number“号客户(“the_“)- -已经预订房间“endlendl; else coutthe_customer.number“号客户(“the_“)- -还未预订房间“endlnext; cout“所有房间信息:“the_room.room_number=-1) cout“-没有任何房间信息!“the_room.room_number) coutthe_room.room_number“号房间(“the_room.room_level“级 “ the_room.room_config“)-已经被预订“endlendl; else coutthe_room.room_number“号房间(“the_room.room_level“级 “ the_room.room_config“)-还未被预订“endlnext; 。 -可编辑修改- break; case 0: exit(0); default:goto label_menu; pause(); /system(“cls“); goto label_menu; return 0; 结结束束语语 通过一段时间的设计与编写,该酒店管理系统终于有了一个比较完整的框架。现将心得体会总 结如下: 由于时间仓促,这暂时只是一个简单的管理系统,但从设计这个系统的过程中,我感受到了关 于软件工程各方面知识在实际工作中的应用。在开发该系统过程中,我始终坚持以下几项原则,并朝 相应目标靠拢: 1.实用为主 任何系统都应该以用户需求为最终目标,以方便用户为最高原则,同进要融入先进的管理经验 与技巧。该系统努力根据用户的实际需求功能

温馨提示

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

评论

0/150

提交评论