c语言酒店管理程序设计报告.docx
《c语言酒店管理程序设计报告.docx》由会员分享,可在线阅读,更多相关《c语言酒店管理程序设计报告.docx(27页珍藏版)》请在冰豆网上搜索。
c语言酒店管理程序设计报告
c语言酒店管理程序设计报告
重庆科技学院《C语言程序设计》课程设计报告
重庆科技学院
C
学院:
_电气与信息工程学院_专业班级:
学生姓名:
学号:
设计地点(单位)________计算机自主学习中心_________
:
设计题目_酒店房间登记与计费管理系统设计
完成日期:
2012年1月13日
指导教师评语:
_________________________________________________________________________________________________________________________
__________________________________________________________________________________
________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
1
重庆科技学院《C语言程序设计》课程设计报告
摘要
随着个人计算机的的普及,越来越多的重复性工作被交由计算机来完成。
在这种大趋势下,传统的纸质档案管理方式已不适应现代服务业的发展。
数字化的管理成为酒店等行业的必要条件。
酒店客房管理的电脑化对于优化员工工作效率、降低成本及改善服务质量等方面都有十分积极的作用。
本程序是用于酒店客房管理的软件。
它可以实现定退房业务处理,用户信息的记录、查询及房间状态管理等功能。
虽然比较简陋但已具备应用程序的雏形。
本程序运用MicrosoftVisualC++编译器编写,涉及C语言的文件读写,结构数组运用及字符串函数相关知识。
关键词:
数字化管理酒店客房管理C语言
2
重庆科技学院《C语言程序设计》课程设计报告
课程设计任务书
设计题目:
酒店房间登记与计费管理系统设计
学生姓名崔巍
课程名称C语言程序设计课程专业班计科1102
设计级
地点I305/I30起止时间2012年1月9日,1月13
6日
设请你为XX酒店设计一个房间登记与计费管理系统。
该系统中应包括计所有房间的信息(房号、房型、基本描述、挂牌房价、入住状态)等,客内人入住后应产生一条入住记录(基本信息包括:
房号、客人姓名、客人证容件类别、客人证件号、入住日期、押金情况),客人退房后要修正房间的及入住状态并产生相应的账单。
要【题目要求】
求
(1)屏幕上出现一个界面,让操作员能够方便的选择所需要进行的
操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等
操作。
(2)对不同标准的房间实施不同的收费标准,也可以按天收费或按
小时收费,可根据顾客需要在登记的入住的时候进行选择。
(3)在结账退房时,根据入住的时间,计费方式和房间单价计算出
总费用。
要求用C语言的文件操作语句将以上所有结果分别保存在文件中。
【输入/输出要求】
(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相
应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输
入的数据内容、格式及结束方式等。
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规
范,撰写课程设计报告。
3
重庆科技学院《C语言程序设计》课程设计报告设
(1)系统分析、设计正确。
计
(2)结果以图表方式显示。
参
(3)界面简洁、美观。
数
(4)报告格式规范。
进周一:
明确设计任务,学习相关基础知识
度周二:
熟悉各知识点,进行基础练习
要周三:
根据题目要求,进行设计和实现
求周四:
根据题目要求,进行设计和实现
周五:
撰写报告,进行答辩
参[1]何钦铭颜晖.《,语言程序设计》.高等教育出版社.2008年考[2]谭浩强张基温.《,语言程序设计教程》.高等教育出版社.2006年资
料
其难点提示:
它首先分析题目的数据结构,看看要操作那些值;然后根据题意设计操
作对象的结构。
可以使用结构体来描述其中较为复杂的对象例如往来帐
目;确定结构体的定义;可以使用数组来保存数据,使用结构体数组来保
存各类数据。
说,.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办明备案,一份由负责教师留用。
.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
4
重庆科技学院《C语言程序设计》课程设计报告
摘要.............................................................................................................................................................2
1软件需求分析说明书.................................................................................................................................6
1.1登记入住系统..................................................................................................................................6
1.2客房状态查询..................................................................................................................................6
1.3住户信息查询..................................................................................................................................6
1.4结账退房系统..................................................................................................................................6
2系统分析与设计.........................................................................................................................................7
2.1软件界面设计..................................................................................................................................7
2.2软件的数据(结构)设计............................................................................................................11
2.3软件的算法设计............................................................................................................................12
2.3.1软件模块图........................................................................................................................12
2.3.2程序流程图........................................................................................................................123软件的实现...............................................................................................................................................15
3.1使用的结构数组及函数的定义....................................................................................................15
3.2登记入住模块................................................................................................................................15
3.3查询房间模块................................................................................................................................18
3.4查询房客模块................................................................................................................................19
4软件测试...................................................................................................................................................24
5软件使用说明书........................................................................................................................................25
5
重庆科技学院《C语言程序设计》课程设计报告
1软件需求分析说明书
1.1登记入住系统
登记并记录顾客姓名
登记并记录顾客的证件类型及号码
显示现有空置房间
选择所需要的房间并更改房间状态信息
计算并记录住房费及押金
由于本软件针对操作员设计,所以界面应尽可能简单明了。
住房及顾客信息由于涉
及多种类型的数据,因此应用结构数组处理。
用文件记录相关数据。
1.2客房状态查询
分别显示已入住客房与空置客房
读取住房信息文件的内容并判断分类,借此可以清晰明了的显示客房状态。
1.3住户信息查询
查询顾客所租房房号
查询顾客住房费用
顾客可以通过输入自己的姓名来查询个人的住房信息。
1.4结账退房系统
退房
更新所退房间状态
删除退房用户记录
显示账单
顾客可以输入姓名来完成退房操作,房间状态将更改为未入住。
系统将删除该用户
信息记录并读取生成账单。
6
重庆科技学院《C语言程序设计》课程设计报告
2系统分析与设计
2.1软件界面设计
运行程序后进入主界面,可以进行登记入住、查询房间、查询顾客、退出程序等几
项操作:
图2.1.1选择“1.登记入住”进入登记入住界面:
图2.1.2输入相关信息,之后选择计费类型:
图2.1.3
7
重庆科技学院《C语言程序设计》课程设计报告
选择“1.按天入住”按天数计费,会显示目前空置的房间。
输入所选房间已进行下一步操作:
图2.1.4
如选择“2.按小时入住”则按小时计费,操作同理。
图2.1.5
8
重庆科技学院《C语言程序设计》课程设计报告
之后会进入下一界面并提示登记成功。
图2.1.6
如在主界面选择“2.查询房间的入住情况”则会进入查询房间状况界面,程序将分别依次显示已入住的房间和空置房间。
图2.1.7
9
重庆科技学院《C语言程序设计》课程设计报告
如在主界面选择“3.查询当前费用”则会进入用户查询界面,输入顾客姓名即可进行查询
图2.1.8
程序会显示该客人的相关信息
图2.1.9
如在主界面选择“4.结账退房”则会进入用户退房界面,输入顾客姓名即可进行退房操作
图2.1.10
10
重庆科技学院《C语言程序设计》课程设计报告
输入成功后会显示退房成功。
图2.1.11
在主界面选择“5.退出程序”会进入退出界面。
图2.1.12
2.2软件的数据(结构)设计
本软件运用了C语言文件的读取与写入功能,各文件的作用如下:
count.txt:
用于存储房客数量,内部存储一个int*数据。
room.txt:
用于存储房间信息,内部依次存储:
房间状态char*(1位)房间号char*(4位)房间类型char*(1位)房间描述char*(6位)房间日租金int*房间月租金int*。
customer.txt:
用于存储房客信息,内部依次存储:
姓名char*证件类型char*证件号码int*房间号char*(4位)房租int*押金int*
11
重庆科技学院《C语言程序设计》课程设计报告2.3软件的算法设计
2.3.1软件模块图
酒店房间管理系统
登记入住模块客房查询模块顾客查询模块结账退房模块
2.3.2程序流程图
登记入住模块:
文记件录
判断房号与
记录读入数据是客人个人信息否相符
输入房号
文读取房间信息
件
修改房间
不为空
判断房
间是否显示是为空
记录入文件
12
重庆科技学院《C语言程序设计》课程设计报告
客房查询模块:
文读取房间信息
件
判断房间是
1显示2显示否为空是否
顾客查询模块:
文
件
顾客
数
据
输入姓名是判断姓名显示操作是否相同
13
重庆科技学院《C语言程序设计》课程设计报告
结账退房模块:
顾客信
息文件
读
取信删除对应信息息
是更改对应房
判断姓名是间状态房间信客人输入姓名否一致息文件
输出并显示账单
14
重庆科技学院《C语言程序设计》课程设计报告
3软件的实现
3.1使用的结构数组及函数的定义结构体定义:
typedefstructroom//客房信息
{
charFID[5];//房间号
chartype[2];//客房类型
chardescribe[7];//该客房类型的描述
intcost_d;//日收费
intcost_h;//时收费
charstatu[2];//入住情况
}room;
typedefstructcustomer//入住记录{
charFID[5];//房间号
charname[20];//名字
chartype[14];//证件类型
intID;//证件号
intpay;//房费
intcp;//押金
}customer;
函数定义:
voidrent(room*p);//登记入住模块voidsearch_room(room*p);//客房查询模块voidsearch_customer(room*p,intl);//费用查询模块
voidpay(room*p,intl);//结账模块3.2登记入住模块
源文件:
voidrent(room*p){
inti,count,n,m=2;
structroomrm[max]={0};//定义结构数组
15
重庆科技学院《C语言程序设计》课程设计报告
structcustomercs;
charsearch[2]={'Y'},stu[2]={'N'},dill[5]={0};
FILE*fpin,*fpout;
fpout=fopen("customer.txt","a");
assert(fpout!
=NULL);
printf("请输入姓名:
");
scanf("%s",&cs.name);
fprintf(fpout,"%s",cs.name);
printf("请填入证件类型:
");
scanf("%s",&cs.type);
fprintf(fpout,"%s",cs.type);
printf("请输入证件号码:
");
scanf("%d",&cs.ID);
fprintf(fpout,"%d",cs.ID);
printf("请选择入住方式:
\n1.按天入住\n2.按小时入住\n");
scanf("%d",&count);
fpin=fopen("room.txt","r+");
assert(fpin!
=NULL);
printf("以下是现有的空房\n");
for(i=0;i{
fscanf(fpin,"%s",rm[i].statu);
fscanf(fpin,"%s",rm[i].FID);
fscanf(fpin,"%s",rm[i].type);
fscanf(fpin,"%s",rm[i].describe);
fscanf(fpin,"%d",&rm[i].cost_d);
fscanf(fpin,"%d",&rm[i].cost_h);
}
fclose(fpin);
for(i=0;i{
if(strcmp(search,rm[i].statu)==0)
16
重庆科技学院《C语言程序设计》课程设计报告
{
printf("%s号%s型%s日收费:
%d时收费:
%d\n",rm[i].FID,rm[i].type,rm[i].describe,rm[i].cost_d,rm[i].cost_h);
}
}
printf("请输入要入住的房屋");
scanf("%s",&dill);
for(i=0;i{
if(strcmp(dill,rm[i].FID)==0)//所选房间号与房间数据对比
{
strcpy(rm[i].statu,stu);//更改数组中的房间状态
fprintf(fpout,"%s",rm[i].FID);
if(count==1)
{
printf("请选择天数:
");
scanf("%d",&n);
fprintf(fpout,"%d",rm[i].cost_d*n);
fprintf(fpout,"%d",rm[i].cost_d*n*m);
system("cls");
printf("\004已成功登记房间!
\n");
printf("\004您的房号为:
%s\n",rm[i].FID);
printf("\004请支付%d元的房费以及押金%d元。
\n",rm[i].cost_d*n,rm[i].cost_d*n*m);
}
else
{
printf("请选择小时数:
");
scanf("%d",&n);
fprintf(fpout,"%d",rm[i].cost_h*n);
fprintf(fpout,"%d",rm[i].cost_h*n*m);
system("cls");
printf("\004已成功登记房间!
\n");
printf("\004您的房号为:
%s\n",rm[i].FID);
printf("\004请支付%d元的房费以及押金%d元。
17
重庆科技学院《C语言程序设计》课程设计报告
\n",rm[i].cost_h*n,rm[i].cost_h*n*m);
}
}
}
fpin=fopen("room.txt","w");
for(i=0;i{
fprintf(fpin,"%s",rm[i].statu);
fprintf(fpin,"%s",rm[i].FID);
fprintf(fpin,"%s",rm[i].type);
fprintf(fpin,"%s",rm[i].describe);
fprintf(fpin,"%d",rm[i].cost_d);
fprintf(fpin,"%d\n",rm[i].cost_h);
}
fclose(fpout);
fclose(fpin);
}
3.3查询房间模块
voidsearch_room(room*p)
{
inti,h,k;
structroomrm[max]={0};
charsearch[2]={'Y'};
FILE*fpin;
fpin=fopen("room.txt","r");
assert(fpin!
=NULL);
for(i=0;i{
fscanf(fpin,"%s",rm[i].statu);
fscanf(fpin,"%s",rm[i].FID);
18
重庆科技学院《C语言程序设计》课程设计报告
fscanf(fpin,"%s",rm[i].type);
fscanf(fpin,"%s",&rm[i].describe);
fscanf(fpin,"%d",&rm[i].cost_d);
fscanf(fpin,"%d",&rm[i].cost_h);
}
printf("目前的空置房间有:
\n");//查询空客房
for(h=0;h{
if(strcmp(search,rm[h].statu)==0)
printf("%s