(完整版)C语言酒店管理系统
!- 以下是此酒店的所需的头文件-#includestdio.h#includestdlib.h #includestring.h#includetime.h /成员变量的声明int i,j,k,p=0;char temp=;int room55;clock_t start;/成员方法的声明void init()int x,y,z;for(x=0;x5;x+)for(y=0;y5;y+)roomxy=0;void hotelTitle()n);printf(n 酒店房间登记与计费管理系统printf(t1. 登记入住 n);printf(t2. 查询房间的入住情况 n);printf(t3. 查询当前费用 n);printf(t4. 结账退房 n);printf(t5. 退出程序 n);void hotel_execute();void hotel_select();void hotel_outhotel();void outsystem();void hotel_total();int main(void)system(color f1);init();while(1)Loop:hotelTitle();printf(n 请选择: );j=scanf(%d,&k);if(j=0|k1|k5)printf(n 输入错误。 nt 请输入所列出的选项。 nn 3 秒后刷新 .Please Weit! Thanksn); fflush(stdin);sleep(3000);system(cls);goto Loop;elseswitch(k)case 1:hotel_execute();break;case 2:hotel_select();break;case 3:hotel_total();break;case 4:hotel_outhotel();break;case 5:outsystem();return;default:printf(nt 系统出错!请联系管理员! n);/ 怕出现 BUGreturn;fflush(stdin); / 清空缓存/入住登记void hotel_execute()int x,y,z;printf( 请输入你要住本酒店多少层楼的住房?【1-5】 );fflush(stdin);L:scanf(%d,&x);p=x;if(x5)printf( 不好意思本店没有该层楼房。 n 请重新选择: );goto L;printf( 请输入你要住第 %d 层的几号房间?【 1-5】 ,x);fflush(stdin);LP:scanf(%d,&y);if(y5) printf( 不好意思该层楼并无该房间。 goto LP;/ 无条件的回去 GOTO if(x2)/ 二层以上则 100 元一天 printf(n 提示:该房是贵宾套房,else printf(n 提示:该房是标准套房,n 请重新选择: ); 语句100 元一天 n);50 元一天 n);if(roomx-1y-1=0)/ 判断该房已经入住 roomx-1y-1=1; printf(n 谢谢您的光临 ,您已经成功登记。 n 您的信息如下: start=clock(); elsen 入住房间:%d-%dn,x,y);printf( 警告:该房已经有人入住 .请换房入住哈。 /查询住房信息 void hotel_select()int x,y,z; system(cls);/ 清空内容。 /以下没什么重要的。就是控制输出格式 printf( 宾馆入住情况如下: ); printf(n|printf(| |); for(x=1;x=5;x+) printf( 房间号 |); printf(n); for(x=0;x5;x+) if(x=0) printf(|else printf(n| for(y=0;y5;y+)|n);|n|n|n);第 %d 层第 %d 层|,x+1);|,x+1);if(roomxy=0)printf(” 空d-%d|,x+1,y+1);elseprintf(住%d-%d|,x+1,y+1);if(y+1=5) if(x+1=1|x+1=2) printf(该层标间均 50 元 );elseprintf(该层标间均 100 元 );printf(n|n);printf(n 住房信息: n);for(x=0,z=0;x5;x+)for(y=0;y5;y+)if(roomxy!=0)z+; printf(t%d-%d 有人入住 n,x+1,y+1);if(z=0)printf(t 现无人入住本酒店 .n);/结账void hotel_outhotel()int x=0,y=0;printf( 请输入您要结账退房的楼层编号? );scanf(%d,&x);printf( 请输入该楼层退房的房间编号? );scanf(%d,&y);if(roomx-1y-1=1)roomx-1y-1=0;printf(nt 房间 %d-%d 退房成功,再会。 n,x,y);elseprintf(nt房间d-%d退房失败。ntt原因:未入住,是空房,不需要退再会。n”,x,y);/查看价钱void hotel_total()/在 c 语言中有专门处理系统时间,程序计时等等功能的库,即time.h在time.h中函数clock_t clock( void )可以完成计时功能。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的 CPU时钟计时单元( clock tick )数,/在 MSDN 中称之为挂钟时间( wal-clock )。/其中 clock_t 是用来保存时间的数据类型,在 time.h 文件中,/我们可以找到对它的定义:#ifndef _CLOCK_T_DEFINED typedef long clock_t;/#define _CLOCK_T_DEFINED #endif 很明显, clock_t 是一个长整形数。 在 time.h 文件中, 还定义了一个常量 CLOCKS_PER_SEC ,/它用来表示一秒钟会有多少个时钟计时单元,/其定义如下:#define CLOCKS_PER_SEC (clock_t)1000) 可以看到每过千分之一秒( 1毫秒),调用clock ()函数返回的值就加1。clock_t finish=clock();double durati on = (double)(fi nish - start) / CLOCKS_PER_SEC;double day=duration/60/60/24; 这里是将秒换成天double total=0;printf( 您住了 %f 秒钟 .n,duration);/system(pause); 按任意键继续 .if(p2)total=day*100;if(day=0)total=100;printf(n 我们旅店是按包天计费的。 n 若按小时,您需要付 %f 元,但是现在你要付 100 元(黑店哈哈 )n,total);/这种计费方式比较现实。符合实际elsetotal=day*50;if(day=0)50total=50;printf(n 我们旅店是按包天计费的。 n 若按小时,您需要付 %f 元,但是现在你要付 元( 黑店哈哈 )n,total);/退出void outsystem()char message = n 酒店登记计费系统 .打造酒店中的名牌 ; for(i=0;istrlen(message);i+)printf(%c,messagei);sleep(30); 睡眠 30 毫秒。printf(nn);/1.本系统未用到文件/2.本系统采用函数 /3.本系统用例比较小/4.本系统有良好的界面,舒适的变成思路和整齐的代码。 /5.本程序引用一个时间进程另外控制时间。/6.感谢所有关心我和我关心的人。/7.再会