该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
{clrscr();
printf(“很抱歉,该房间已有客人入住,请按ESC返回”);
while(getch()!=033);
return;}
printf(“您选择的房间%d 房按小时计费为%d元/时,按天计费为%d元/天,请选择客户的计费方式:n”,n,room[n-1].h_money,room[n-1].d_money);
printf(“1–按小时收费n2–按天收费”);//分两种情况进行对flag的赋值
ch=getch();
while(ch!=’1’&&ch!=’2′)
ch=getch();
if(ch==’1′)room[n-1].flag=1;
else room[n-1].flag=2;
printf(“n请输入客户的姓名:”);
fflush(stdin);
gets(room[n-1].name);
printf(“请输入客户准备支付的押金金额(0~10000元):”);
scanf(“%d”,&room[n-1].deposit);
while(room[n-1].deposit10000)
{fflush(stdin);
printf(“输入错误,请重新输入客户准备支付的押金金额(0~10000元):”);
scanf(“%d”,&room[n-1].deposit);}
printf(“请确认是否入住:(Y/N)”);
ch=getch();
while(ch!=’y’&&ch!=’n’)//如果确认入住,则记录入住时间,并加以显示,之后自动存档
ch=getch();
if(ch==’y’)
{start=time(NULL);
printf(“n您的入住时间为”);
local=localtime(&start);
printf(“%d年%d月%d日%d时%d分”,local->tm_year+1900,local->tm_mon+1,local->tm_mday,local->tm_hour,local->tm_min);
switch(room[n-1].flag)
{case 1:strcpy(fangshi,”按小时收费”);break;
case 2:strcpy(fangshi,”按天收费”);break;
default:break;}
printf(“n您选择的收费方式为%s”,fangshi);
room[n-1].start=start;
save();
printf(“n请按ESC返回主菜单”);
while(getch()!=033);
}
return;
}
long h_calculate(long end,long start,int money)//按小时计费函数
{
long fee;
int hour,min;
if((end-start)/60
else if((end-start)/60
hour=(end-start)/3600;
min=((end-start)%3600)/60;
if(min>30)hour++;
fee=hour*money;
return fee;
}
long d_calculate(long end,long start,int money)//按天计费函数
{int day;
long fee,dif;
dif=end-start;
if(dif
day=dif/(3600*24);
if(dif%(3600*24)!=0)day++;
fee=day*money;
return fee;
}
void display2()//显示所有空房信息
{
int i;
clrscr();
read();
printf(“房 价格元(时/天)”);
for(i=0;i
{if(room[i].flag==0)
printf(“n%-7d %d/%d”,room[i].num,room[i].h_money,room[i].d_money);
}
printf(“n请按ESC返回主菜单”);
while(getch()!=033);
return;
}
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));
}
void cancel()//退房功能函数
{struct tm *local;
int n;
time_t end;
char ch;
long money;
end=time(NULL);
clrscr();
if(find()==0)//如果find()值为0,则提示房间全空,按键返回
{printf(“当前房间尚未有人入住,无法办理退房手续,请按ESC返回”);
while(getch()!=033);
return;}
printf(“请选择退房的房 (1~%d):”,M);
fflush(stdin);
scanf(“%d”,&n);
while(n>M||n
{clrscr();
fflush(stdin);
printf(“输入错误,请重新输入退房的房间 (1~%d):”,M);
scanf(“%d”,&n);
}
if(room[n-1].flag==0)
{
clrscr();
printf(“该房间尚未有人入住,无法办理退房,请按ESC返回”);//如果无人入住,则提示返回
while(getch()!=033);
return;}
printf(“房 :%dn入住客人姓名:%sn”,room[n-1].num,room[n-1].name);//显示房间的全部信息
printf(“入住时间:”);
local=localtime(&room[n-1].start);
printf(“%d年%d月%d日%d时%d分”,local->tm_year+1900,local->tm_mon+1,local->tm_mday,local->tm_hour,local->tm_min);
printf(“n押金:%d”,room[n-1].deposit);
printf(“n收费方式:”);
if(room[n-1].flag==1)//通过检查flag的值确认之后显示的数据
{printf(“按小时收费,超过半小时按一小时收费,不足半小时不计入时间n”);
printf(“当前费用:%ld”,money=h_calculate(end,room[n-1].start,room[n-1].h_money));
printf(“n应支付:”);
yingzhifu(money,room[n-1].deposit);
}
else
{printf(“按天收费n”);
printf(“当前费用:%ld”,money=d_calculate(end,room[n-1].start,room[n-1].d_money));
printf(“n应支付:”);
yingzhifu(money,room[n-1].deposit);
}
printf(“n是否确认为该房间办理退房手续(Y/N));//如果确认退房,则将该房间的部分信息归0,完成退房
ch=getch();
while(ch!=’y’&&ch!=’n’)
ch=getch();
if(ch==’y’)
{
room[n-1].flag=0;
strcpy(room[n-1].name,”-empty-“);
room[n-1].start=0;
room[n-1].deposit=0;
save();
printf(“n已经完成退房手续,请按ESC返回”);
while(getch()!=033);
}
return;
}
文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113450 人正在系统学习中 相关资源:糖烟茶酒行业管理软件 烟酒进销存店铺销售收银管理系统
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!