酒店管理系统C语言版.docx
《酒店管理系统C语言版.docx》由会员分享,可在线阅读,更多相关《酒店管理系统C语言版.docx(10页珍藏版)》请在冰豆网上搜索。
酒店管理系统C语言版
#include
#include
#include
#include//成员变量的声明
inti,j,k,p=0;
chartemp[]="";
introom[5][5];
clock_tstart;//成员方法的声明
voidinit()
{
intx,y;
for(x=0;x<5;x++)
{
for(y=0;y<5;y++)
room[x][y]=0;
}
}
voidhotelTitle()
{
printf("\n-------酒店房间登记与计费管理系统----\n");
printf("\t1.登记入住\n");printf("\t2.查询房间的入住情况\n");
printf("\t3.查询当前费用\n");printf("\t4.结账退房\n");
printf("\t5.退出程序\n");
}
voidhotel_execute();
voidhotel_select();
voidhotel_outhotel();
voidoutsystem();
voidhotel_total();
intmain(void)
{
system("colorf1");
init();
while
(1)
{
Loop:
hotelTitle();
printf("\n请选择:
");
j=scanf("%d",&k);
if(j==0||k<1||k>5)
{
printf("\n输入错误。
\n\t请输入所列出的选项。
\n\n3秒后刷新...PleaseWeit!
Thanks\n");
fflush(stdin);
//sleep(3000);
system("cls");
gotoLoop;
}
else
{
switch(k)
{
case1:
hotel_execute();
break;
case2:
hotel_select();
break;
case3:
hotel_total();
break;
case4:
hotel_outhotel();
break;
case5:
outsystem();
return0;
default:
printf("\n\t系统出错!
请联系管理员!
\n");//怕出现BUG
return0;
}
}
fflush(stdin);//清空缓存}}//入住登记
}
}
voidhotel_execute()
{
intx,y;
printf("请输入你要住本酒店多少层楼的住房?
【1-5】");
fflush(stdin);
L:
scanf("%d",&x);
p=x;
if(x>5)
{
printf("不好意思本店没有该层楼房。
\n请重新选择:
");
gotoL;
}
printf("请输入你要住第%d层的几号房间?
【1-5】",x);
fflush(stdin);
LP:
scanf("%d",&y);
if(y>5)
{
printf("不好意思该层楼并无该房间。
\n请重新选择:
");
gotoLP;//无条件的回去GOTO语句
}
if(x>2)
{
//二层以上则100元一天
printf("\n提示:
该房是贵宾套房,100元一天\n");
}
else
{
printf("\n提示:
该房是标准套房,50元一天\n");
}
if(room[x-1][y-1]==0)//判断该房已经入住
{
room[x-1][y-1]=1;
printf("\n谢谢您的光临,您已经成功登记。
\n您的信息如下:
\n入住房间:
%d-%d\n",x,y);
start=clock();
}
else
{
printf("警告:
该房已经有人入住...请换房入住哈。
\n");
}
}//查询住房信息
voidhotel_select()
{
intx,y,z;
system("cls");//清空内容。
//以下没什么重要的。
就是控制输出格式
printf("宾馆入住情况如下:
");
printf("\n|-------|--------|--------|--------|--------|--------|\n");
printf("||");
for(x=1;x<=5;x++)
{
printf("房间号|");
}
printf("\n");
for(x=0;x<5;x++)
{
if(x==0)
{
printf("|-------|--------|--------|--------|--------|--------|\n|第%d层|",x+1);
}
else
{
printf("\n|-------|--------|--------|--------|--------|--------|\n|第%d层|",x+1);
}
for(y=0;y<5;y++)
{
if(room[x][y]==0)
{
printf("空%d-%d|",x+1,y+1);
}
else
{
printf("住%d-%d|",x+1,y+1);
}
if(y+1==5)
{
if(x+1==1||x+1==2)
printf("该层标间均50元");
else
printf("该层标间均100元");
}
}
}
printf("\n|-------|--------|--------|--------|--------|--------|\n");
printf("\n住房信息:
\n");
for(x=0,z=0;x<5;x++)
{
for(y=0;y<5;y++)
{
if(room[x][y]!
=0)
{
z++;
printf("\t%d-%d有人入住\n",x+1,y+1);
}
}
}
if(z==0)
{
printf("\t现无人入住本酒店...\n");
}
}//结账
voidhotel_outhotel()
{
intx=0,y=0;
printf("请输入您要结账退房的楼层编号?
");
scanf("%d",&x);
printf("请输入该楼层退房的房间编号?
");
scanf("%d",&y);
if(room[x-1][y-1]==1)
{
room[x-1][y-1]=0;
printf("\n\t房间%d-%d退房成功,再会。
\n",x,y);
}
else
{
printf("\n\t房间%d-%d退房失败。
\n\t\t原因:
未入住,是空房,不需要退...再会。
\n",x,y);
}
}//查看价钱
voidhotel_total()
{
/*在c语言中有专门处理系统时间,程序计时等等功能的库,即time.h
在time.h中函数clock_tclock(void)可以完成计时功能。
这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clocktick)数,
在MSDN中称之为挂钟时间(wal-clock)。
其中clock_t是用来保存时间的数据类型,在time.h文件中,
我们可以找到对它的定义:
#ifndef_CLOCK_T_DEFINEDtypedeflongclock_t;
#define_CLOCK_T_DEFINED#endif很明显,clock_t是一个长整形数。
time.h文件中,在还定义了一个常量CLOCKS_PER_SEC,
它用来表示一秒钟会有多少个时钟计时单元,
其定义如下:
#defineCLOCKS_PER_SEC((clock_t)1000)可以看到每过千分之一秒(1毫秒),
调用clock()函数返回的值就加1。
*/
clock_tfinish=clock();
doubleduration=(double)(finish-start)/CLOCKS_PER_SEC;
doubleday=duration/60/60/24;//这里是将秒换成天
doubletotal=0;
printf("您住了%f秒钟...\n",duration);//按任意键继续...
system("pause");
if(p>2)
{
total=day*100;
if(day==0){total=100;}
printf("\n我们旅店是按包天计费的。
\n若按小时,您需要付%f元,但是现在你要付100元(黑店哈哈)\n",total);//这种计费方式比较现实。
符合实际
}
else
{
total=day*50;
if(day==0)
{total=50;}
printf("\n我们旅店是按包天计费的。
\n若按小时,您需要付%f元,但是现在你要付50元(黑店哈哈)\n",total);
}
}//退出
voidoutsystem()
{
charmessage[]="\n酒店登记计费系统.打造酒店中的名牌....";
inti,j;
j=strlen(message);
for(i=0;i{
printf("%c",message[i]);
//sleep(30);//睡眠30毫秒。
}
printf("\n\n");
}