[计算机软件及应用]酒店客房预订管理系统.doc_第1页
[计算机软件及应用]酒店客房预订管理系统.doc_第2页
[计算机软件及应用]酒店客房预订管理系统.doc_第3页
[计算机软件及应用]酒店客房预订管理系统.doc_第4页
[计算机软件及应用]酒店客房预订管理系统.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

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

温馨提示

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

评论

0/150

提交评论