酒店管理系统1.docx

上传人:b****6 文档编号:7571050 上传时间:2023-01-25 格式:DOCX 页数:22 大小:108.78KB
下载 相关 举报
酒店管理系统1.docx_第1页
第1页 / 共22页
酒店管理系统1.docx_第2页
第2页 / 共22页
酒店管理系统1.docx_第3页
第3页 / 共22页
酒店管理系统1.docx_第4页
第4页 / 共22页
酒店管理系统1.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

酒店管理系统1.docx

《酒店管理系统1.docx》由会员分享,可在线阅读,更多相关《酒店管理系统1.docx(22页珍藏版)》请在冰豆网上搜索。

酒店管理系统1.docx

酒店管理系统1

一、设计内容与设计要求

1.设计内容:

酒店管理系统

问题描述:

建立酒店客房管理信息系统,采用计算机对客房信息进行管理,进一步提高酒店的经济效益和现代化水平。

帮助酒店工作人员提高工作效率,实现客房管理工作流程的系统化、规范化和自动化。

功能要求:

(1)本系统包括数据录入,数据修改,数据添加,数据查询,数据备份和报表生成。

(2)数据信息包括客房号,客房类型,客房价格,折扣情况,客房状态,入住客人信息(姓名,性别,身份证号,入住时间,预计入住期等),客房负责人等。

(3)查询应可以提供多种查询方式,如按房号查询,按月份查询,按价格查询,按客房状态查询等。

(4)客房入住日报表,客房入住月表等。

问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

2.设计要求:

●课程设计报告正文内容

(包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等)。

(一)需求分析

系统设计目的与意义

系统功能需求(系统流程图);

输入输出的要求;

(二)总体设计

系统功能分析;

系统功能模块划分与设计(系统功能模块图)。

(三)详细设计

数据库需求分析

数据库概念结构设计(E-R图);

数据库逻辑结构设计。

类层次图

(四)界面设计与各功能模块实现

(五)系统调试

调试问题出现的主要问题:

编译语法错误及修改,重点是运行逻辑问题修改和调整

(六)使用说明及编程体会

说明如何使用你编写的程序,详细列出每一步的操作步骤。

(七)关键源程序(带注释)

●考核方式

指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。

具体考核标准包含以下几个部分:

a.平时出勤(占10%)

b.系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)

c.程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)

d.设计报告(占30%)

注意:

不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

e.独立完成情况(占10%)。

●课程验收要求

a.判定算法设计的合理性,运行相关程序,获得正确的数值结果。

b.回答有关问题。

c.提交课程设计报告。

d.提交软盘(源程序、设计报告文档)。

e.依内容的创新程度,完善程序情况及对程序讲解情况打分。

三、 教材及参考书

朱战立等著,C++面向对象程序设计,人民邮电出版社;

郑莉著,C++语言程序设计(含实验指导书)。

清华大学出版社(结构化程序设计部分)

钱能主编,C++程序设计教程,清华大学出版社,2000.11

戴锋编著,VisualC++程序设计基础,清华大学出版社,2001.4

吕日著,C++程序设计教程,清华大学出版社,

C++大学教程,美国HarveyM.Deitel等

四、进度安排

 

一需求分析

1.1综述

随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域:

管理,网络,计算,控制,多媒体等。

并且在某些方面成为不可缺少的工具,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。

现今酒店宾馆的规模不断扩大,客户数量急剧增加,有关客户的各种信息也成倍增长,尤其是大量的客房预订信息。

面对庞大的信息量,需要有客户信息管理系统来提高客户管理工作的效率。

通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。

当前许多酒店正在逐步完善客户信息管理工作,需要一个能满足内部管理需求,提高管理效率的应用系统进行内部管理。

许多宾馆经过多年的发展,规模不断扩大,客流量成倍增长,积累了大量的客户信息急需进行统一管理以防信息的流失。

因此,许多宾馆需要一个功能全面的客户信息管理系统来进行管理,以使管理客户信息的工作在该系统的配合下更加高效和便捷。

1.2系统功能分析

酒店客房预订信息管理系统是一个对客户全方面管理的程序。

该客房预订信息管理系统是在VisualC++6.0平台下设计开发,以TXT文档为后台数据库,采用面向对象的语言开发而成,实现对客户预订信息的基本管理,包括客房信息、客户信息的添加,修改和查询。

该系统充分考虑用户的操作简便性,实现快捷操作。

它有以下几个功能:

(1)客房设置:

可以添加新客房,修改客房描述(房间等级,内部设施等),删除客房。

(2)客户设置:

可以添加新客户,修改客户信息,删除已退订客户等。

可准确了解每一客户的预订信息。

(3)房间预订情况查询:

可按客户号、房号查询。

方便实用,在众多房间、客户中准确查询到某一个房间或客户。

1.3系统总框图

设计一个程序来实现酒店客房预订的管理,该程序应该包含信息录入、输出、修改、删除和查询等功能模块。

本程序各功能模块结构总框图如下:

二、详细设计

1.类设计

类customer

intno;//客户编号

charname[10];//客户姓名

intborbook[Maxbor];//所订房间

char*getname(){returnname;}//获取姓名

intgettag(){returntag;}//获取删除标记

intgetno(){returnno;}//获取客户编号

voidsetname(charna[])//设置姓名

addcustomer(intn,char*na)//增加客户

类RDatabase

inttop;//客户记录指针

customerread[Maxr];//客户记录

voidclear()//删除所有客户信

voiddisp()//输出所有客户信息

类book

intno;//客房编号

charname[20];//客房描述

intonshelf;//是否预订1:

空房2:

已预订

voidaddbook(intn,char*na)//增加客房

intborrowbook()//预订操作

voidretbook()//退订操作

voiddisp()//输出客房

类BDatabase

Bookbook[Maxb];//客房记录

intaddbook(intn,char*na)//增加客房

Book*query(intbookid)//查找客房

三界面设计与各功能模块的实现

1.界面设计

1.界面设计

程序运行后会出现一个简捷的窗口,便于用户查询数据。

2.功能模块实现设计

通过主窗体调用其他窗体。

应用系统主控界面包括客户信息录入,查找等功能模块。

客户信息录入功能完成客户信息和客房的输入。

记录查询功能可以对数据各分类的记录进行查询。

四系统调试

(1)程序主界面:

界面简洁明了,一目了然,便于操作。

选择数字0-4进入相应功能。

(2)客户信息:

主界面选择4进入客户信息管理菜单。

 

(3)客房信息:

主界面选择3进入客房信息管理菜单。

(4)订房:

主界面选择1进入订房功能。

五使用说明及心得体会

此次c++课程设计,在指导教师的精心教导下,我学会了如何用C++编写一个简单的应用程序。

首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。

程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。

六、附件

#include

#include

#include

#include//输入/输出文件流类

usingnamespacestd;

constintMaxr=100;//最多的客户

constintMaxb=100;//最多的客房

constintMaxbor=5;//每位客户最多预订五间客房

//客户类,实现对客户的信息的描述

classcustomer

{private:

inttag;//删除标记1:

已删0:

未删

intno;//客户编号

charname[10];//客户姓名

intborbook[Maxbor];//所订房间

public:

customer(){}

char*getname(){returnname;}//获取姓名

intgettag(){returntag;}//获取删除标记

intgetno(){returnno;}//获取客户编号

voidsetname(charna[])//设置姓名

{strcpy(name,na);}

voiddelbook(){tag=1;}//设置删除标记1:

已删0:

未删

voidaddcustomer(intn,char*na)//增加客户

{tag=0;

no=n;

strcpy(name,na);

for(inti=0;i

borbook[i]=0;}

voidborrowbook(intbookid)//预订操作

{for(inti=0;i

{if(borbook[i]==0)

{borbook[i]=bookid;

return;}}}

intretbook(intbookid)//退订操作

{for(inti=0;i

{if(borbook[i]==bookid)

{borbook[i]=0;

return1;}}

return0;}

voiddisp()//读出客户信息

{cout<

[";

for(inti=0;i

if(borbook[i]!

=0)

cout<

cout<<"]"<

classRDatabase//客户库类,实现建立客户的个人资料

{private:

inttop;//客户记录指针

customerread[Maxr];//客户记录

public:

RDatabase()//构造函数,将customer.txt读到read[]中

{customers;

top=-1;

fstreamfile("customer.txt",ios:

:

in);//打开一个输入文件

while

(1)

{file.read((char*)&s,sizeof(s));

if(!

file)break;

top++;

read[top]=s;}

file.close();}//关闭customer.txt

voidclear()//删除所有客户信息

{top=-1;}

intaddcustomer(intn,char*na)//添加客户时先查找是否存在

{customer*p=query(n);

if(p==NULL)

{top++;

read[top].addcustomer(n,na);

return1;}

return0;}

customer*query(intcustomerid)//按编号查找

{for(inti=0;i<=top;i++)

if(read[i].getno()==customerid&&

read[i].gettag()==0)

{return&read[i];}

returnNULL;}

voiddisp()//输出所有客户信息

{for(inti=0;i<=top;i++)

read[i].disp();}

voidcustomerdata();//客户库维护

~RDatabase()//析构函数,将read[]写到customer.txt文件中

{fstreamfile("customer.txt",ios:

:

out);

for(inti=0;i<=top;i++)

if(read[i].gettag()==0)

file.write((char*)&read[i],sizeof(read[i]));

file.close();}};

voidRDatabase:

:

customerdata()

{charchoice;

charrname[20];

intcustomerid;

customer*r;

while(choice!

='0')

{cout<<"\n\n\t\t\t客户信息\n\n\n\t\t\t1新增\n\n\t\t\t2更改\n\n\t\t\t3删除\n\n\t\t\t4查找\n\n\t\t\t5显示\n\n\t\t\t6全删\n\n\t\t\t0返回"<

cin>>choice;

switch(choice)

{case'1':

cout<<"输入客户编号:

";

cin>>customerid;

cout<<"输入客户姓名:

";

cin>>rname;

addcustomer(customerid,rname);

break;

case'2':

cout<<"输入客户编号:

";

cin>>customerid;

r=query(customerid);

if(r==NULL)

{cout<<"该客户不存在"<

break;}

cout<<"输入新的客户姓名:

";

cin>>rname;

r->setname(rname);

break;

case'3':

cout<<"输入客户编号:

";

cin>>customerid;

r=query(customerid);

if(r==NULL)

{cout<<"该客户不存在"<

break;}

r->delbook();

break;

case'4':

cout<<"输入客户编号:

";

cin>>customerid;

r=query(customerid);

if(r==NULL)

{cout<<"该客户不存在"<

break;}

r->disp();

break;

case'5':

disp();

break;

case'6':

clear();

break;

default:

cout<<"正在返回主界面...";break;}}}

classBook//客房类,实现对客房的描述,如客房等级,有无宽带等

{private:

inttag;//删除标记1:

已删0:

未删

intno;//客房编号

charname[20];//客房描述

intonshelf;//是否预订1:

空房2:

已预订

public:

Book(){}

char*getname(){returnname;}//获取姓名

intgetno(){returnno;}//获取客房编号

intgettag(){returntag;}//获取删除标记

voidsetname(charna[])//设置客房描述

{strcpy(name,na);}

voiddelbook(){tag=1;}//删除客房

voidaddbook(intn,char*na)//增加客房

{tag=0;

no=n;

strcpy(name,na);

onshelf=1;}

intborrowbook()//预订操作

{if(onshelf==1)

{onshelf=0;

return1;}

return0;}

voidretbook()//退订操作

{onshelf=1;}

voiddisp()//输出客房

{cout<

<<(onshelf==1?

"空房":

"已预订")<

classBDatabase//客房库类,实现对客房的管理,如查找、删除等

{private:

inttop;//客房记录指针

Bookbook[Maxb];//客房记录

public:

BDatabase()//构造函数,将book.txt读到book[]中

{Bookb;

top=-1;

fstreamfile("book.txt",ios:

:

in);

while

(1)

{file.read((char*)&b,sizeof(b));

if(!

file)break;

top++;

book[top]=b;}

file.close();}

voidclear()//全删

{top=-1;}

intaddbook(intn,char*na)//增加客房

{Book*p=query(n);

if(NULL==p)

{top++;

book[top].addbook(n,na);

return1;}

return0;}

Book*query(intbookid)//查找客房

{for(inti=0;i<=top;i++)

if(book[i].getno()==bookid&&book[i].gettag()==0)

{return&book[i];}

returnNULL;}

voidbookdata();//客房库维护

voiddisp()

{for(inti=0;i<=top;i++)

if(book[i].gettag()==0)

book[i].disp();}

~BDatabase()//析构函数,将book[]写到book.txt文件中

{fstreamfile("book.txt",ios:

:

out);

for(inti=0;i<=top;i++)

if(book[i].gettag()==0)

file.write((char*)&book[i],sizeof(book[i]));

file.close();}};

voidBDatabase:

:

bookdata()

{

charchoice;

charbname[40];

intbookid;

Book*b;

while(choice!

='0')

{

cout<<"\n\n\n\t\t\t客房信息"<

cout<<"\n\t\t\t1新增\n\n\t\t\t2更改\n\n\t\t\t3删除\n\n\t\t\t4查找\n\n\t\t\t5显示\n\n\t\t\t6全删\n\n\t\t\t0返回"<

cin>>choice;

switch(choice)

{case'1':

cout<<"输入客房编号:

";

cin>>bookid;

cout<<"输入客房描述:

";

cin>>bname;

addbook(bookid,bname);

break;

case'2':

cout<<"输入客房编号:

";

cin>>bookid;

b=query(bookid);

if(b==NULL)

{cout<<"该客房不存在"<

break;}

cout<<"输入新的客房描述:

";

cin>>bname;

b->setname(bname);

break;

case'3':

cout<<"输入客房编号:

";

cin>>bookid;

b=query(bookid);

if(b==NULL)

{cout<<"该客房不存在"<

break;}

b->delbook();

break;

case'4':

cout<<"输入客房编号:

";

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该客房不存在"<

break;

}

b->disp();

break;

case'5':

disp();

break;

case'6':

clear();

break;

default:

cout<<"正在返回主界面...";}}}

voidmain()//main()函数的实现,程序的主界面的引导

{charchoice;

intbookid,customerid;

RDatabasecustomerDB;

customer*r;

BDatabaseBookDB;

Book*b;

while(choice!

='0')

{cout<

cout<<"\t\t\t1订房\n\n\t\t\t2退订\n\n\t\t\t3客房信息\n\n\t\t\t4客户信息\n\n\t

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1