酒店房间登记与计费管理系统《C语言课程设计》.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计》课程设计报告
学院: _专业班级:
学生姓名:学号:
设计地点(单位)________ 计算机自主学习中心 ________
设计题目:___ 酒店房间登记与计费管理系统设计
完成日期:年月日
指导教师评语: ______________________ ___________________________________________________________________________ ___________________________________________________________________________ ___________________________________________________
成绩(五级记分制):______ __________
指导教师(签字):________ ________
摘要
本次C语言课程设计我选择的设计任务是客房管理系统设计,这个管理系统是用C语言在VC 6.0 c++的编译器编译而成的。

客房管理系统包括客户基本信息的录入、房间统计、用户个人费用及住房信息查询、自动结账、退出系统功能等。

系统的开发主要由分析、查阅相关书籍和参考资料、程序设计、编写代码、运行实施、调试和测试、维护和修改等阶段组成,其中信息管理和自动运行为开发的重点。

在程序设计中结构体的调用与各函数、数组的调用为编译的重点部分。

关键词:结构体函数数组
课程设计任务书设计题目:酒店房间登记与计费管理系统设计
教研室主任:指导教师:伍建全/雷亮/焦晓军
陈应祖/杨治明
2012年1月1日
目录
1. 软件需求说明书 (7)
1.1需求分析 (7)
1.2软件功能简介 (7)
1.2.2 查询房间入住情况 (7)
1.2.3 查询当前费用 (7)
1.2.4 结账退房 (7)
1.3界面、数据结构要求 (7)
2. 系统分析与设计 (8)
2.1软件界面设计 (8)
2.1.1首页欢迎界面 (8)
2.1.2 登记入住界面 (8)
2.1.3 客户入住信息查询界面 (9)
2.1.4 客户个人费用查询界面 (10)
2.1.5 客户退房结账界面 (10)
2.1.6 客户结账收退支付费用结账界面 (11)
2.1.7 用户退出系统界面 (11)
2.2软件的数据(结构)设计 (12)
2.3软件的算法设计 (13)
2.3.1主要结构模块框图 (13)
2.3.2 主要流程图 (13)
2.3.2 具体模块使用结构流程 (13)
3.软件的实现 (15)
3.1 核心功能再现 (15)
3.2关键代码分析 (31)
3.2.1int dengji() (31)
3.2.2int lookfor_room() (31)
3.2.3int lookfor_price() (32)
3.2.4 int tuifang() (32)
4.软件测试 (33)
4.1 函数简介 (33)
4.2 测试用例 (33)
4.2.1 void welcome(); //首页欢迎界面 (33)
4.2.2 int dengji() (33)
4.2.3 int lookfor_room();//用来查询房间入住情况 (33)
4.2.4 int lookfor_price(); //用来查询当前费用 (33)
4.2.5 int tuifang(); //用来结账退房 (34)
4.2.6 void yingzhifu(); //用来结账付款 (34)
4.2.7 int quit(); //退出函数 (34)
5.软件使用说明书 (35)
6.致谢 (37)
7.参考文献 (38)
7.1 何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年 (38)
7.2 谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年 (38)
7.3 Al Kelley等《C语言解析教程》,Al Kelley等,机械工业出版社,2006.1 (38)
1 软件需求说明书
1.1需求分析
随着时代的进步、科学的发展,对信息技术的要求也越来越高。

而顾客对各大酒店和客房的要求也越来越高,酒店以前的全人工服务已经不能满足顾客和以及现代信息化时代的要求。

顾客选择入住酒店时也会选择更加现代化和信息化的更加方便快捷的现代化服务酒店。

所以现在各大酒店也都向着信息化和现代化的方向发展,引进更加先进和方便的酒店管理和服务系统。

计算机的自动化管理系统提高了酒店管理的管理水平和工作效率,增强酒店的竞争能力降低成本,为客户提供更加优质的服务。

所以需要开发一个计算机系统来代替人工管理酒店客户入住登记和信息查询等方面的工作。

使用该系统可以使酒店的服务更加快捷、准确和方便,减少大量的人工操作,提高了工作效率。

1.2软件功能简介
1.2.1 登记入住
自动登记顾客的各人信息,包括顾客姓名、身份证件、证件号码、选择房间种类、计费方式、押金交付等功能。

1.2.2 查询房间入住情况
1.2.3 查询当前费用
1.2.4 结账退房
1.3界面、数据结构要求
屏幕上显示一个界面,界面要求简洁美观,让操作员能够根据具体的提示信息方便的选择所需要进行的操作。

用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

2. 系统分析与设计2.1软件界面设计
2.1.1 首页欢迎界面
2.1.2 登记入住界面
2.1.3 客户入住信息查询界面
2.1.4 客户个人费用查询界面
2.1.5 客户退房结账界面
2.1.6 客户结账收退支付费用结账界面
2.1.7 用户退出系统界面
2.2软件的数据(结构)设计
主要所用的结构体、函数和变量的数据类型
struct date //定义结构体date,记录入住和结账时间
{
int mon; //整形 int 格式控制符为%d
int day;
int hour;
};
struct costoem //定义结构体costoem
{
int num; //房间号格式控制符为%d
int kind; //房间种类 1-单人间 2-双人间
char name[20];//客户信息 //字符型 char 格式控制符为%s char ID[19]; //身份证号
int h_money; //按小时收费价格
int d_money; //按天收费价格格式控制符为%d
struct date time; //入住时间 time被说明为data结构类型。

成员
名可与程序中其它变量同名,互不干扰。

int flag; //入住状态,flag: 0—无人入住 1—按小时入住 2—按天入住
int deposit; //押金
}room[M];
2.3软件的算法设计
2.3.1主要结构模块框图
2.3.2 主要流程图
2.3.2 具体模块使用结构流程
3.软件的实现
3.1 核心功能再现
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<assert.h>
#define M 60
//程序所有功能所用函数
void welcome(); //首页欢迎界面
int dengji(); //用来登记入住
int lookfor_room();//用来查询房间入住情况
int lookfor_price(); //用来查询当前费用
int tuifang(); //用来结账退房
int find(); //用来查找入住人数
long h_jifei(); //按小时计费
long d_jifei(); //按天计费
int per_infor(); //显示个人信息
void yingzhifu(); //用来结账付款
int quit(); //退出函数
struct date //定义结构体date,记录入住和结账时间{
int mon;
int day;
int hour;
};
struct costoem //定义结构体costoem
{
int num; //房间号
int kind; //房间种类 1-单人间 2-双人间
char name[20];//客户信息
char ID[19]; //身份证号
int h_money; //按小时收费价格
int d_money; //按天收费价格
struct date time; //入住时间
int flag; //入住状态,flag: 0—无人入住 1—按小时入住 2—按天入住 int deposit; //押金
}room[M];
/*个人信息函数*/
int per_infor(int k)
{
char zhonglei[30],fangshi[30];
switch(room[k].flag)//选择计费方式
{
case 1:strcpy(fangshi,"按小时计费");break;
case 2:strcpy(fangshi,"按天计费");break;
default:break;//输入与原定比较不符合跳出循环
}
switch(room[k].kind) //选择房间种类
{
case 1:strcpy(zhonglei, "单人间");break;
case 2:strcpy(zhonglei,"双人间");break;
}
printf("\n\n\t\t----姓名: ");
puts(room[k].name);printf("\n\n");
printf("\t\t----身份证号: ");
puts(room[k].ID);printf("\n\n");
printf("\t\t----房间种类: ");
puts(zhonglei);printf("\n\n");
printf("\t\t----房间号: ");
printf("%d",k+1);printf("\n\n");
printf("\t\t----计费方式: ");
puts(fangshi);printf("\n\n");
printf("\t\t----押金: ");
printf("%d元",room[k].deposit);printf("\n\n");
printf("\t\t 入住时间: ");
printf("2012年%d月%d日%d时\n\n",room[k].time.mon,room[k].time.day,room[k].time.hour);
return(0);
}
/*查询入住人数函数*/
int find()
{
int count=0,i; //查询房间数
for(i=0;i<M;i++)
if(room[i].flag!=0)
count++;
return count;
}
/*按天计费*/
long d_jifei(struct date end,struct date start,int money)
{
long feiyong;
int a,b;
a=end.hour-start.hour; //计算小时
b=end.day-start.day; // 计算天数
if(a>=10)
feiyong=(b+1)*money; //如果小时数大于10,则算为一天
else
if(a>=0)
feiyong=b*money; //如果小时数大于0而小于10,则不计算小时 else
{
a=a+24; //如果小时数小于0,则小时数加24,天数减一,按天数计费重新计算
b=b-1;
if(a>=10)
feiyong=(b+1)*money;
else
feiyong=b*money;
}
return feiyong; //返回费用值
}
/*按小时计费*/
long h_jifei(struct date end,struct date start,int money)
{
long feiyong;
int a,b;
a=end.hour-start.hour; //计算小时
b=end.day-start.day; // 计算天数
if(a<0)
{
a=a+24; //如果小时数小于0,则小时数加24,天数减一,按小时计费重新计算
b=b-1;
}
feiyong=(a+b*24)*money;
return feiyong; //返回费用值
}
/*结账时所有开销收费*/
void yingzhifu(long money,int dep)
{
long dif=(long)dep-money;
if(dif==0)
printf("押金余总费用相等");//判断应支付是否大于押金金额
else
if(dif>0)
printf("酒店应找还顾客%ld元",dif);//押金金额大于应支付
else
printf(" 顾客应再支付%ld元",dif*(-1));//押金金额小于应支付
}
/*退出函数,返回欢迎主菜单页面函数*/
int quit()
{
int z;
printf("您需要返回欢迎界面吗?1-是 2-否\n\n");
scanf("%d",&z);
if(z==1) // 返回欢迎界面
welcome();
else
printf("****** 谢谢您的惠顾,欢迎您下次光临!******!\n\n");
exit(0);
}
/*欢迎主菜单页面*/
void welcome()
{
int n=find();
int i,j;
printf("&&&&&&&&&&&&&&&&&&&&&&&&&&#############################&&&&&& &&&&&&&&&&&&&&&&&");
printf("\n\n\t\t------------欢迎来到**酒店-----------\n\n");
printf("\t\t\t 1. 登记入住 \n\n");
printf("\t\t\t 2. 查询房间入住情况 \n\n");
printf("\t\t\t 3. 查询当前费用 \n\n");
printf("\t\t\t 4. 结账退房 \n\n");
printf("\t\t\t 5. 退出系统 \n\n");
printf("\t\t总房间数: %d \t入住人数: %d \t空房间数: %d",M,n,M-n);
printf("\n\n&&&&&&&&&&&&&&&&&&&&&&&&############################&&&&& &&&&&&&&&&&&&&&&&&&&&\n\n");
printf("\t\t\t 请选择您所需的服务: ");
scanf("%d",&i);
switch(i) //控制选择项目
{
case 1:j=dengji();break;//进入相应操作目录
case 2:j=lookfor_room();break;
case 3:j=lookfor_price();break;
case 4:j=tuifang();break;
default:printf(" 欢迎您下次光临\n\n");输入错误退出
exit(0);
}
while(j!=0)
{
welcome(); //进入欢迎菜单主界面
scanf("%d",&i);
switch(i)
{
case 1:j=dengji();break;
case 2:j=lookfor_room();break;
case 3:j=lookfor_price();break;
case 4:j=tuifang();break;
default:printf("\n\n************* 欢迎您下次光临*************\n\n");
exit(0);
}
}
}
/*顾客登记入住函数*/
int dengji()
{
int i,j,k,yajin,s,a,n;
char ch,fangshi[30];
printf("\n\n############ 登记入住 #############\n\n");
if(find()==M) //入住人数与房间总数相等
{
printf("当前房间已满,是否返回(Y/N): ");
ch=getchar();
if(ch=='y')
return(1); //返回主菜单
else
exit(0);
}
printf("请选择房间类型:\n\n");
printf("1.单人间 2.双人间\n\n");
scanf("%d",&n);
printf("可供您选择的房间有: \n\n");
for(i=30*(n-1)+1,j=0;i<30*n+1;i++) //单人间的j入住人数,i剩余房间数
if(room[i-1].flag==0)
{
printf("%d\t",i);
j=j+1;
if(j%5==0)printf("\n\n");
}
printf("请输入您准备入住的房间号: "); //房间号k—room[k-1]
scanf("%d",&k);
room[k-1].kind=n;
room[k-1].num=k;
printf("\n\n请选择您的计费方式:(1.按小时收费为%d元/时--2.按天计费为%d元/天)\t",room[k-1].h_money,room[k-1].d_money);
scanf("%d",&s);
while(s!=1&&s!=2)
{
printf("输入有误,请重新输入: ");
scanf("%d",&s);
}
if(s==1)
room[k-1].flag=1;
else
room[k-1].flag=2;
printf("\n\n请输入您的姓名: ");
scanf("%s",room[k-1].name);
printf("\n\n请输入您的身份证号: ");
scanf("%s",room[k-1].ID);
switch(n)
{
case 1:yajin=80;break;
case 2:yajin=100;break;
}
printf("\n\n您应当缴纳的押金金额为 %d元",yajin);
printf("\n\n请输入您实际缴纳的押金金额: ");
scanf("%d",&room[k-1].deposit);
while(room[k-1].deposit<0)
{
printf("\t\t\n\n! 输入有误,请重新输入 !\n\n");
printf("\n\n请输入您实际缴纳的押金金额: ");
scanf("%d",&room[k-1].deposit);
}
printf("\n\n请输入是否入住(1.是 2.否): ");
scanf("%d",&a);
while(a!=1&&a!=2)
{
printf("\n\n\t\t 输入有误,请重新输入: ");
scanf("%d",&a);
}
if(a==1)
{
printf("\n\n请输入您的入住时间(分别输入*月*日*时): "); scanf("%d月",&room[k-1].time.mon);
scanf("%d日",&room[k-1].time.day);
scanf("%d时",&room[k-1].time.hour);
switch(room[k-1].flag)
{
case 1:strcpy(fangshi,"按小时计费");break;
case 2:strcpy(fangshi,"按天计费");break;
default:break;
}
printf("\n\n您选择的计费方式为----%s",fangshi);
printf("\n\n您已成功登记!\n\n");
}
quit();
return(0);
}
/*顾客查询房间入住情况函数*/
int lookfor_room()
{
int i,j,k,s;
struct date tim_t;
char a[20];
printf("\n\n 查询房间入住 \n\n");
printf("\t\t1. 按房号查询\n\n\t\t2. 按客户信息查询\n\n\t\t3. 按入住时间查询\n\n\t\t4. 退出");
printf("\n\n请选择: ");
scanf("%d",&i);
while(1)
{
if(i>5||i<1)
{
printf("\n\n\t\t 输入有误,请重新输入: ");
scanf("%d",&i);
}
else
if(i==1)//按顾客所住房号查询
{
printf("\n\n请输入房间号: ");
scanf("%d",&j);
if(room[j-1].flag==0)
printf("\n\n此房间无人住\n\n");
else
{
printf("您的个人信息为: ");
per_infor(j-1);
}break;
else
if(i==2)//按顾客个人信息查询
{
printf("\n\n请输入您的身份证号: ");
scanf("%s",a);
while(1)
{
for(k=0;k<M;k++)
if(strcmp(a,room[k].ID)==0)break; //比较输入与登记的客户信息
if(k!=M)
{
printf("\n\n您的个人信息为: ");
per_infor(k);break;
}
else
{
printf("\t\t\n\n1. 输入有误,请重新输入2.不存在此人信息,退出 \n\n");
scanf("%d",&s);
if(s==1)
{
printf("\n\n请输入您的身份证号: "); scanf("%s",a);
}
else
return(1);
}
}
break;
}
else
if(i==3)// 按顾客入住时的日期时间查询
printf("\n\n请输入入住时间: ");
scanf("%d月",&tim_t.mon);
scanf("%d日",&tim_t.day);
for(k=0;k<M;k++)
if(tim_t.mon==room[k].time.mon&&tim_t.day==room[k].time.day)break; if(k==M)
{
printf("\n\n此时间无入住登记\n\n");
}
else
{
printf("\n\n您的个人信息为: ");
per_infor(k);
printf("\n\n");
}
break;
}
else
if(i==4)break;
else
{
printf("\t\t\n\n1. 输入有误,请重新输入 \n\n");
printf("\t\t1. 按房号查询\n\n\t\t2. 按客户信息查询\n\n\t\t3. 按入住时间查询\n\n\t\t4. 退出");
printf("\n\n请选择: ");
scanf("%d",&i);
}
}
quit();
return(0);
}
/*顾客查询到目前为止所消费的费用*/
int lookfor_price()
{
int i,s;
struct date end;
printf("\n\n$$$$$$$$$$$$查询您当前消费费用$$$$$$$$$$$$\n\n"); if(find()==0)
printf("当前客房全部为空房,没有数据可以查询!\n\n");
else
{
printf("请输入您的房间号码: ");
scanf("%d",&i);
while(1)
{
if(room[i-1].flag==0)
{
printf("\n\n该房为空房,,没有顾客入住1.请您重新输入2.退出\n\n");
scanf("%d",&s);
if(s==1)
{
printf("请您输入房间号: ");
scanf("%d",&i);}
else break;
}
else
{
printf("\n\n您的个人信息为: ");
per_infor(i-1);
printf("\n\n请输入您的查询时间: ");
scanf("%d月",&end.mon);
scanf("%d日",&end.day);
scanf("%d时",&end.hour);
printf("\n\n您当前所消费的费用为: ");
if(room[i-1].flag==1) //分别以两种计费方式,以小时计费和以天计费。

printf("H %ld\n\n",h_jifei(end,room[i-1].time,room[i-1].h_money)); else
printf("D %ld\n\n",d_jifei(end,room[i-1].time,room[i-1].d_money)); break;
}
break;
}
}
quit();
return(0);
}
/*结账退房*/
int tuifang()
{
struct date end;
char zhonglei[30],fangshi[30];
int n,m;
long money;
printf("\n\n$$$$$$$$$$$$$ 结账退房 $$$$$$$$$$$$\n\n");
if(find()==0)
printf("当前房间尚未有人住,无法办理退房手续!\n\n");
else
{
printf("请输入退房的房间号: ");
scanf("%d",&n);
while(n>M||n<1)
{
printf("\n\n输入有误,请您重新输入退房的房间号(1~%d):",M);
scanf("%d",&n);
}
if(room[n-1].flag==0)
printf("当前房间尚未有人住,无法办理退房手续!\n\n");
switch(room[n-1].kind)
{
case 1:strcpy(zhonglei,"单人间");break;
case 2:strcpy(zhonglei,"双人间");break;
}
switch(room[n-1].flag)
{
case 1:strcpy(fangshi,"按小时计费");break;
case 2:strcpy(fangshi,"按天计费");break;
default:break;
}
printf("房间号: %d\n\n房间类型: %s\n\n入住客人姓名: %s\n\n 身份证号: %s\n\n",room[n-1].num, zhonglei,room[n-1].name,room[n-1].ID); printf("入住时间: ");
printf("2012年%d月%d日%d时",room[n-1].time.mon,room[n-1].time.day,room[n-1].time.hour);
printf("\n\n请输入结账时间: ");
scanf("%d月",&end.mon);
scanf("%d日",&end.day);
scanf("%d时",&end.hour);
printf("\n\n押金: %d",room[n-1].deposit);
printf("\n\n计费方式: ");
printf("%s",fangshi);
if(room[n-1].flag==1)
printf("\n\n当前费
用: %ld",money=h_jifei(end,room[n-1].time,room[n-1].h_money));
else
printf("\n\n您当前的消费费用为: %ld",money=d_jifei(end,room[n-1].time,room[n-1].d_money));
printf("\n\n您应当支付: ");
yingzhifu(money,room[n-1].deposit);
printf("\n\n您是否退房(1.是2.否) : ");
scanf("%d",&m);
if(m==1)
{
room[n-1].flag=0;
strcpy(room[n-1].name,"--empty--");
room[n-1].deposit=0;
printf("\n\n您已成功退房,欢迎您下次光临!\n\n");
}
}
quit();
return 0;
}
/*主函数*/
void main()
{
int k,i,j;
for(k=1;k<=M;k++)
{
if(k>=1&&k<=30)
{
room[k-1].h_money=30;
room[k-1].d_money=200;
}
else
if(k>30&&k<=60)
{
room[k-1].h_money=60;
room[k-1].d_money=400;
}
}
welcome();
}
3.2关键代码分析
3.2.1int dengji()
登记入住函数,主要可以实现登记顾客的个人信息包,括姓名(room[k-1].name)、身份证件及其号码(room[k-1].ID)、选择房间种类(room[i-1].flag)、选择房间号码(room[k-1].num)、选择计费方式(room[k-1].h_money,room[k-1].d_money)、选择是否入住、登记入住日期(&room[k-1].time.mon、&room[k-1].time.day、&room[k-1].time.hour)、应缴纳押金金额(room[k-1].deposit)和是否退回到欢迎菜单主页面(quit())等功能。

3.2.2int lookfor_room()
顾客查询房间入住情况函数,主要可以实现顾客个人信息的查询可以显示包括姓名、省份证号、房间号、房间种类、押金金额、入住日期等信息。

主要有三种查询方式,一是按房号查询(room[j-1].flag,per_infor);二是按客户信息查询
(strcmp(a,room[k].ID,per_infor)三是按入住信息(入住日期)查询(tim_t.mon==room[k].time.mon&&tim_t.day==room[k].time.day,per_infor)。

3.2.3int lookfor_price()
顾客查询到目前为止所消费费用函数,主要可以实现顾客所消费的费用金额,以输入要查询的日期进行计算(&end.mon、&end.day、&end.hour),显示顾客当前以不同方式计费方式所消费金额("H %ld\n\n",h_jifei(end,room[i-1].time,room[i-1].h_money)/"D %ld\n\ n",d_jifei(end,room[i-1].time,room[i-1].d_money))。

3.2.4 int tuifang()
结账退房函数主要实现输入要退的房间号(room[n-1].kind),自动对比是单人间还是双人间(strcpy(zhonglei,"单人间",strcpy(zhonglei,"双人间"),然后按相应的计费方式(strcpy(fangshi,"按小时计费",strcpy(fangshi,"按天计费"),输入结账时间(&end.mon,&end.day,&end.hour),显示顾客当前消费金额,然后对比金额与押金的多少,多退少补。

如果小与押金,则酒店退给顾客押金剩余金额,如果大押金金额,则顾客进行补支付金额(yingzhifu(money,room[n-1].deposit)。

4.软件测试
4.1 函数简介
void welcome(); //首页欢迎界面
int dengji(); //用来登记入住
int lookfor_room();//用来查询房间入住情况
int lookfor_price(); //用来查询当前费用
int tuifang(); //用来结账退房
int find(); //用来查找入住人数
long h_jifei(); //按小时计费
long d_jifei(); //按天计费
int per_infor(); //显示个人信息
void yingzhifu(); //用来结账付款
int quit(); //退出函数
4.2 测试用例
4.2.1 void welcome(); //首页欢迎界面
用例 1:intpt 1 output 登记入住
用例 2:intpt 3 output 查询当前费用
用例 3:intpt 4 output 结账退房
4.2.2 int dengji()
用例1:intpt 1 output 请选择房间类型:
1.单人间
2.双人间
用例 2:intpt 2 output 按小时收费为30元/时
用例 3:intpt 100 output 输入有误,请重新输入
4.2.3 int lookfor_room();//用来查询房间入住情况
用例 1:intpt 15 output 此间房无人住
用例 2:intpt 4 output 输入有误,请重新输入
用例 3:intpt 2 output 请输入您的身份证号
4.2.4 int lookfor_price(); //用来查询当前费用
用例 1:intpt 1 10 15 output 您当前所消费的费用:H740
用例 2:intpt 1 30 15 output 您当前所消费的费用:D990
4.2.5 int tuifang(); //用来结账退房
用例 1:intpt 17 output 当前房间尚未有人住,无法办理退
房手续!
用例 2:intpt 1 31 18 output 当前费用: D 1770
用例 3:intpt 1 output 您已成功退房,欢迎您下次光临!
4.2.6 void yingzhifu(); //用来结账付款
用例 1:intpt 1 output 您当前所消费的费用:D400 顾客
应支付D300
用例 2:intpt 2 output 酒店应找还顾客100元
4.2.7 int quit(); //退出函数
用例 1:intpt 2 output ****** 谢谢您的惠顾,欢迎您下
次光临!******!
5.软件使用说明书
我本次设计的是酒店入住登记和和计费管理系统,他的操作更加简便,方便,快捷。

顾客可根据具体的信息提示,进行一步步操作。

以下是该软件的使用说明书。

酒店房间登记与计费管理系统总共有五大模块功能。

顾客入住登记、客房(人数)入住信息查询讯、顾客当前消费金额费用查询、结账退房和退出系统五大块。

第一大块功能顾客进入欢迎界面,系统会首先判断入住人数与房间总数是否向相等。

如果相等,会显示当前客房已满,您是否返回主菜单。

如果客房没有满,会显示让您选择房间类型(单人间或双人间),然后显示所有空房间号让您自己选择,等你输入完准备入住的房间号码后,会让您选择计费方式(按小时收费,按天收费),如果输入有误,会让您输入您的姓名、身份证号、应交押金金额,输入有误就请重新输入。

当输入应实际缴纳押金金额后,“是否入住?”如果入住请您输入入住时间(入住时的*月*日*时),然后会对比您选择的相应计费方式和房间爱你种类,最后会显示“您已登记成功”。

退出返回
第二大块功能是顾客查询房间入住情况,在主菜单点击进入房间入住情况查询后,会显示三种查询方式,1:按房号查询(输入房间号码、2:按个人信息查询(输入省份证号码)、3:按顾客入住时的日期时间查询(输入顾客登记入住时的日期)。

三中查询方式都有如果输入错误,就请重新输入。

如果按房间号码和入住日期两种方式查询,输入房间人没有入住,系统会显示“此间房间无人入住登记”,请选择是否退出返回主菜单?
第三大块功能是顾客查询到目前为止所消费的费用金额。

在主菜单点击进入查询您当前消费费用情况查询后,系统会首先判断客房是否全部为空,如果为空会系统会显示“当前客房全部为空房,没有数据可以查询!”不为空会让您输入您所入住的房间号码,如果输入错误,输入房间没有人住会显示“该房为空房,没有顾客入住1.请您重新输入2.退出”。

输入房间号正确后,就会显示您的个人信息(包括姓名、身份证号、房间号、房间种类、房间的计费方式、应交押金金额等信息),然后请您输入你所要查询的截止日期时间,之后就会显示您当前所消费的金额为(D/H)¥元。

第四大块功能是结账退出功能。

在主菜单点击进入结账退房界面后,系统会首先判断寻找客房是否为空,如果为空会显示“当前房间尚未有人住,无法办理退房手续!”。

不为空的话就会让您输入您所要退订的房间号码,输入有误请重新
输入。

输入正确后系统会自动寻找和对比你所住房间类型和计费方式,最后显示顾客的个人信息,姓名、身份证号、房间号、房间类型。

然后让你输入结账时间,之后就显示、房间的计费方式、实交押金金额,之后输出您的消费费用金额。

然后对比与押金金额的大小,大于押金则会显示减去押金金额后您还应该支付金额,“您应支付(D/H)¥元”;如果小于押金金额,从押金中扣去相应金额之后会找退您剩余的金额。

第五大块功能就是退出系统功能。

当执行完其余每项操作后会显示你是否需要返回欢迎界面。

是就返回否就直接退出系统。

6.致谢
经过紧张的五天的奋斗,从周一开始的老师发给同学们任务书,然后先给同学们讲解关于课程设计的相关目的,能力目标要求。

进度要求为周一:明确设计任务,学习相关基础知识,周二:熟悉各知识点,进行基础练习,周三:根据题目要求,进行设计和实现,周四:根据题目要求,进行设计和实现,周五:撰写报告,进行答然后老师周一和周二先讲解了与报告相关的知识点和大致概要,之后就让我们自己进行查阅相关资料,书籍、文献了解相关基础知识,构思、设计、上机操作编写代码,调试和测试,最后调试修改成功后就可以进行课程设计报告的编写。

最后一天就是进行答辩过程。

打败你完成后本次设计就算成功。

在则会过程中每天机房都会为学生开放半天时间,期间老师一直都在机房对各个学生进行悉心指导,答疑解惑,对学生搞不懂得问题和马虎大意出现的的问提进行指点和辅导。

所以在这里首先要感谢为我们辅导的伍健全老师,雷亮老师。

感谢他们的帮助和指导。

然后要感谢的是在编写程序当中,帮我解答疑问和不懂知识点的的地方的同学和朋友。

感谢他们的帮助,没有老师和同学他们的帮助,在规定时间内我是不可能圆满完成此次课程设计报告的。

再次感谢你们,是你们让我深刻感受到了不耻下问,三人行必有我师的明理。

谢谢。

7.参考文献
7.1 何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年
7.2 谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年
7.3 Al Kelley等《C语言解析教程》,Al Kelley等,机械工业出版社,2006.1。

相关文档
最新文档