宾馆客房管理系统的方案设计书与实现.docx
- 文档编号:26283299
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:33
- 大小:236.78KB
宾馆客房管理系统的方案设计书与实现.docx
《宾馆客房管理系统的方案设计书与实现.docx》由会员分享,可在线阅读,更多相关《宾馆客房管理系统的方案设计书与实现.docx(33页珍藏版)》请在冰豆网上搜索。
宾馆客房管理系统的方案设计书与实现
课程设计报告
题目
宾馆客房管理系统的设计与实现
学号
姓名
年级专业
指导教师
完成日期
年
月
日
一.问题描述2
一.问题描述
宾馆客房管理软件
1)某宾馆有301、302、303、304、305五个标准间,每个标准间可住2人;
2)链表存储结构:
姓名、性别、房号、后续指针,按房间号有序;
3)能实现入住(注意性别)和退房,能按给定姓名、房号查询;
4)建议采用链表结构,但用其它方法实现也可。
二.系统需求分析
2.1设计前调查
近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管理水准,已成为宾馆业发展的当务之急。
尤其是对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。
然而,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。
像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水准几乎接近或达到国际水平。
但对占80%以上的广大中小型宾馆来说,是难以做到的。
因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。
而对宾馆的经营状况起决定作用的是客房的管理。
简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。
传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。
2.2用户需求分析
建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要,提高公司管理层对公司经营反馈信息的响应速度。
从而大幅度提高工作效率,提高实施管理的准确性、科学性,使担负管理的工作人员从繁杂的手工劳作中解脱出来。
因而程序需要实现的功能有如下主要六大功能:
一、客房管理:
客房登记,入住情况查询,客房状态查看。
二、宾客入住管理:
客房预定,登记入住,房间调整,退房结帐
三、物资管理:
物品登记,物品查询,报修和维修,定时提醒。
四、财务管理:
追加押金,增删财务,日报表
五、员工管理:
增改员工,查删员工
六、系统管理:
增删管理员,修改密码
七、其他功能:
界面管理
2.3核心数据流图
维修信息
客房信息
客房信息客房状态
客人信息入住登记
帐务信息
入住信息
部分数据流图
数据流名称:
客人信息
来源:
客人
去向:
入住登记
包含的数据项:
姓名、身份证号、性别、入住房间、房间类型、房间价格、入住状态等
(宾馆客房管理系统的数据流——客人信息)
数据流名称:
入住登记
来源:
客人产生入住登记
去向:
入住
包含的数据项:
订单编号、姓名、性别、身份证号、客户编号、客房类型、抵房时间、入住人数、预定人、电话、住几天等信息
(宾馆客房管理系统的数据流——入住登记)
数据流名称:
客房信息
来源:
客人产生入住登记
去向:
入住
包含的数据项:
客房编号、客房类型、客房价格、客房状态
(宾馆客房管理系统的数据流——客房信息)
数据流名称:
房间状态
来源:
退房
去向:
房间
包含的数据项:
客房号码、房间状态
(宾馆客房管理系统的数据流——房间状态)
数据流名称:
帐务信息
来源:
退房
去向:
财务
包含的数据项:
帐单编号、姓名、消费金额、入住时间、退房时间、押金
数据结构
数据结构反映了数据之间的组合关系。
一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。
数据结构的具体描述如下:
(1)数据结构:
客房信息
含义说明:
是宾馆客房管理系统的主体数据结构,定义了宾馆客房的有关信息
组成:
房号、类别、楼层、单价、可容纳人数、说明
(2)数据结构:
旅客信息
含义说明:
是酒店客房管理系统中的旅客数据结构,定义了旅客的有关信息
组成:
入住编号、顾客姓名、性别、证件名称、证件号码
(3)数据结构:
操作员信息
含义说明:
是酒店客房管理系统中的操作员数据结构,定义了操作员的有关信息
组成:
用户名、密码
数据存储
通过SQLSERVER2000建立一个名为“酒店”的库,存放酒店客房信息、旅客信息和旅客入住信息以提供应用程序进行系统业务功能数据所需的数据。
1)数据存储名称:
客房信息表
说明:
记录所有房间的基本信息
输入的数据流:
服务员查看酒店房间基本信息
输出的数据流:
输出房间基本信息给服务员查看
组成:
房号,类别,楼层,单价,可容纳人数,说明
2)数据存储名称:
旅客信息表
说明:
记录住店客人的基本信息
输入的数据流:
在住店管理界面中添加客人基本信息
输出的数据流:
在在住客人列表中或历史信息中查看客人基本信息
组成:
入住编号,顾客姓名,性别,证件名称,证件号码
3)数据存储名称:
旅客入住登记信息表
说明:
记录开房和退房的基本信息
输入的数据流:
在住店管理界面中添加客人基本信息
输出的数据流:
在开房,退房,在住客人列表中或历史信息中查看有关基本信息
组成:
入住编号,房号,预付金额,入住时间,退房时间
三、概念设计
3.1局部E-R图
3.2程序结构图
系统登录
订房实现
入住登记
退房结算
信息查询
客房信息初始化
四.逻辑设计
4.1.开发环境
软件:
Visualc++6.0
硬件:
HPProBook4321s
五.程序调试
5.1程序登陆
5.2订房
5.3入住
5.4退房
5.5信息查询
六.程序代码
#include
#include
//***********************************************************************************
voidinitial_room()。
//初始化80个房间信息
voidwelcome()。
//验证用户登陆,登陆成功显示欢迎信息
voidenter()。
voidbook_room()。
voidcheck_in()。
voidcheck_out()。
voidinquire()。
inti=0。
//***********************************************************************************
structRoom
{
intnumber。
intdank。
intprice。
intstate。
}room[80]。
structCustomer
{
charname[10]。
charID[19]。
introom_number。
intprepaid。
intchange。
intday。
}customer[80]。
voidcreateCustomer()
{
printf("请您输入顾客的姓名\n")。
scanf("%s",customer[i].name)。
printf("请您输入顾客的身份证号码\n")。
scanf("%s",customer[i].ID)。
customer[i].prepaid=0。
customer[i].change=0。
customer[i].day=0。
}
voidset_name(char*n,intindex)
{
strcpy(customer[index].name,n)。
}
voidset_ID(char*p,intindex)
{
strcpy(customer[index].ID,p)。
}
voidset_room_number(intn,intindex)
{
customer[index].room_number=n。
}
voidset_day(intd,intindex)
{
customer[index].day=d。
}
voidset_prepaid(intp,intindex)
{
customer[index].prepaid=p。
}
char*get_name(intindex)
{
returncustomer[index].name。
}
char*get_ID(intindex)
{
returncustomer[index].ID。
}
intget_room_number(intindex)
{
returncustomer[index].room_number。
}
intget_day(intindex)
{
returncustomer[index].day。
}
intget_prepaid(intindex)
{
returncustomer[index].prepaid。
}
//***********************************************************************************
voidmain()//程序入口从这里开始运行
{
intchoice=1。
initial_room()。
//初始化80个房间的信息,分四个等级
welcome()。
//验证用户登陆,登陆成功显示欢迎信息
while(choice==1)
{
enter()。
//根据用户的选择执行不同的功能
getchar()。
printf("\n继续使用本系统请按\"1\",退出请按\"2\"!
")。
scanf("%d",&choice)。
printf("\n")。
}
}
//系统登陆界面***********************************************************************
voidwelcome()//验证用户登陆,登陆成功显示欢迎信息
{
charname[4],code[7]。
printf("请输入用户名和密码(以空格隔开):
\n")。
scanf("%s%s",name,code)。
while((strcmp(name,"000")!
=0)||(strcmp(code,"666666")!
=0))
{
printf("用户名或密码输入有误,请重新输入!
\n")。
scanf("%s%s",name,code)。
}
printf("\n\n")。
printf("▲***************************▲\n")。
printf("欢迎使用宾馆客房管理系统!
\n")。
printf("▲***************************▲\n\n")。
}
//系统入口***************************************************************************
voidenter()
{
intkind_of_service。
printf("请选择服务类别:
订房、入住、退房还是查询?
\n")。
printf("1->定房2->入住3->退房4->查询:
")。
scanf("%d",&kind_of_service)。
if((kind_of_service>4)||(kind_of_service<1))
{
printf("您的输入有误,请重试!
\n")。
scanf("%d",&kind_of_service)。
}
else
switch(kind_of_service)
{
case1:
book_room()。
break。
case2:
check_in()。
break。
case3:
check_out()。
break。
case4:
inquire()。
break。
}
}
//订房实现***************************************************************************
voidbook_room()
{
createCustomer()。
introom_standard,day。
printf("请您选择预定房间的标准:
\n")。
printf("1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n")。
scanf("%d",&room_standard)。
printf("请输入预定天数\n")。
scanf("%d",&day)。
set_day(day,i)。
switch(room_standard)
{
intn。
case1:
printf("住房费用总共为:
%d元\n",day*150)。
//计算住房费用
for(n=0。
n<20。
n++)//从第一个级别的房间中查找一个空闲的房间
{
if(room[n].state==0)//state=0表示该住房没有被预定的
{
printf("预定成功★房间号码为:
%d\n",room[n].number)。
room[n].state=1。
set_room_number(room[n].number,i)。
break。
}
}
break。
case2:
printf("住房费用总共为:
%d元\n",day*200)。
for(n=20。
n<40。
n++)
{
if(room[n].state==0)
{
printf("预定成功★房间号码为:
%d\n",room[n].number)。
room[n].state=1。
set_room_number(room[n].number,i)。
break。
}
}
break。
case3:
printf("住房费用总共为:
%d元\n",day*300)。
for(n=40。
n<60。
n++)
{
if(room[n].state==0)
{
printf("预定成功★房间号码为:
%d\n",room[n].number)。
room[n].state=1。
set_room_number(room[n].number,i)。
break。
}
}
break。
case4:
printf("住房费用总共为:
%d元\n",day*600)。
for(n=60。
n<80。
n++)
{
if(room[n].state==0)
{
printf("预定成功★房间号码为:
%d\n",room[n].number)。
room[n].state=1。
set_room_number(room[n].number,i)。
break。
}
}
break。
}
i++。
//住房的顾客数加1
}
//入住登记***************************************************************************
voidcheck_in()
{
charname1[10],id1[19]。
intding_or_no,prepaid。
printf("该顾客订房了吗?
(1->订了2->没订)")。
scanf("%d",&ding_or_no)。
if(ding_or_no==1)
{
printf("请输入顾客的姓名:
\n")。
scanf("%s",name1)。
printf("请输入顾客的身份证号码:
\n")。
scanf("%s",id1)。
for(intj=0。
j<=i。
j++)
{
if((strcmp(get_name(j),name1)==0)&&(strcmp(get_ID(j),id1)==0))//查找该顾客的定房信息
{
intnum=get_room_number(j)。
//取得定房的房间号
printf("顾客%s今天入住本宾馆!
房间号码为:
%d\n",name1,num)。
switch(num/100)
{
case6:
prepaid=get_day(j)*150。
set_prepaid(prepaid,j)。
printf("请收房费%d元整!
\n",prepaid)。
//开始收费
room[num%100-1].state=2。
//修改房间状态为入住状态
break。
case7:
prepaid=get_day(j)*200。
set_prepaid(prepaid,j)。
printf("请收房费%d元整!
\n",prepaid)。
room[19+num%100].state=2。
break。
case8:
prepaid=get_day(j)*300。
set_prepaid(prepaid,j)。
printf("请收房费%d元整!
\n",prepaid)。
room[39+num%100].state=2。
break。
case9:
prepaid=get_day(j)*600。
set_prepaid(prepaid,j)。
printf("请收房费%d元整!
\n",prepaid)。
room[59+num%100].state=2。
break。
}
break。
}
}
}
else
{
createCustomer()。
introom_standard,day。
printf("请您选择预定房间的标准:
\n")。
printf("1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n")。
scanf("%d",&room_standard)。
printf("请输入住宿天数\n")。
scanf("%d",&day)。
set_day(day,i)。
switch(room_standard)
{
intn。
case1:
prepaid=day*150。
set_prepaid(prepaid,i)。
printf("请收房费%d元整!
\n",prepaid)。
for(n=0。
n<20。
n++)
{
if(room[n].state==0)
{
printf("入住房间号码为:
%d\n",room[n].number)。
room[n].state=2。
set_room_number(room[n].number,i)。
break。
}
}
break。
case2:
prepaid=day*200。
set_prepaid(prepaid,i)。
printf("请收房费%d元整!
\n",prepaid)。
for(n=20。
n<40。
n++)
{
if(room[n].state==0)
{
printf("入住房间号码为:
%d\n",room[n].number)。
room[n].state=2。
set_room_number(room[n].number,i)。
break。
}
}
break。
case3:
prepaid=day*300。
set_prepaid(prepaid,i)。
printf("请收房费%d元整!
\n",prepaid)。
for(n=40。
n<60。
n++)
{
if(room[n].state==0)
{
printf("入住房间号码为:
%d\n",room[n].number)。
room[n].state=2。
set_room_number(room[n].number,i)。
break。
}
}
break。
case4:
prepaid=day*600。
set_prepaid(prepaid,i)。
printf("请收房费%d元整!
\n",prepaid)。
for(n=60。
n<80。
n++)
{
if(room[n].state==0)
{
printf("入住房间号码为:
%d\n",room[n].number)。
room[n].state=2。
set_room_number(room[n].number,i)。
break。
}
}
break。
}
i++。
}
}
//退房结算***************************************************************************
voidcheck_out()
{
charname2[10],id2[19]。
intstandard,j,room_number,day1,day2,day。
printf("请输入要退房的顾客姓名和身份证号码:
\n")。
scanf("%s%s",name2,id2)。
printf("请输入该顾客实住天数:
\n")。
scanf("%d",&day2)。
for(j=0。
j
j++)
{
if((strcmp(get_name(j),name2)==0)&&(strcmp(get_ID(j),id2)==0))
{
room_number=get_room_number(j)。
standard=room_number/100。
day1=get_day(j)。
day=day1-day2。
switch(standard)
{
case6:
printf("顾客的房间号是%d:
为单人间,每天150元\n",room_number)。
printf("该顾客预付了房
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宾馆 客房 管理 系统 方案设计 实现