酒店管理系统 C语言版.doc
酒店管理系统.C语言版。 / <!- 以下是此酒店的所需的头文件 -> #include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>/成员变量的声明 int i,j,k,p=0;char temp=""int room55;clock_t start;/成员方法的声明void init() int x,y,z; for(x=0;x<5;x+) for(y=0;y<5;y+) roomxy=0; void hotelTitle() printf("n-酒店房间登记与计费管理系统-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|k<1|k>5) printf("n输入错误。nt请输入所列出的选项。nn 3 秒后刷新.Please Weit! Thanksn"); fflush(stdin); sleep(3000); system("cls"); goto Loop; else switch(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");/怕出现BUG return; fflush(stdin); /清空缓存 /入住登记 void hotel_execute() int x,y,z; printf("请输入你要住本酒店多少层楼的住房?【1-5】"); fflush(stdin); L:scanf("%d",&x); p=x; if(x>5) printf("不好意思本店没有该层楼房。n请重新选择:"); goto L; printf("请输入你要住第%d层的几号房间?【1-5】",x); fflush(stdin); LP:scanf("%d",&y); if(y>5) printf("不好意思该层楼并无该房间。n请重新选择:"); goto LP;/无条件的回去 GOTO语句 if(x>2)/二层以上则100元一天 printf("n提示:该房是贵宾套房,100元一天n"); else printf("n提示:该房是标准套房,50元一天n"); if(roomx-1y-1=0)/判断该房已经入住 roomx-1y-1=1; printf("n谢谢您的光临,您已经成功登记。n您的信息如下:n入住房间:%d-%dn",x,y); start=clock(); else printf("警告:该房已经有人入住.请换房入住哈。n"); /查询住房信息 void hotel_select() int x,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(roomxy=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(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); else printf("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 duration = (double)(finish - start) / CLOCKS_PER_SEC; double day=duration/60/60/24;/这里是将秒换成天 double total=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); /退出 void outsystem() char message = "n海燕酒店登记计费系统.打造酒店中的名牌." for(i=0;i<strlen(message);i+) printf("%c",messagei); sleep(30);/睡眠30毫秒。 printf("nn");/1.本系统未用到文件 /2.本系统采用函数/3.本系统用例比较小/4.本系统有良好的界面,舒适的变成思路和整齐的代码。/5.本程序引用一个时间进程另外控制时间。/6.感谢所有关心我和我关心的人。/7.再会。 2010.4