C语言课程设计---酒店房间登记与计费管理系统源代码.docx

上传人:scccc 文档编号:13559859 上传时间:2022-01-16 格式:DOCX 页数:56 大小:40.67KB
返回 下载 相关 举报
C语言课程设计---酒店房间登记与计费管理系统源代码.docx_第1页
第1页 / 共56页
C语言课程设计---酒店房间登记与计费管理系统源代码.docx_第2页
第2页 / 共56页
C语言课程设计---酒店房间登记与计费管理系统源代码.docx_第3页
第3页 / 共56页
C语言课程设计---酒店房间登记与计费管理系统源代码.docx_第4页
第4页 / 共56页
C语言课程设计---酒店房间登记与计费管理系统源代码.docx_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《C语言课程设计---酒店房间登记与计费管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C语言课程设计---酒店房间登记与计费管理系统源代码.docx(56页珍藏版)》请在三一文库上搜索。

1、酒店房间登记与计费管理系统源代码#define M 80#include#include#include/* 函数声明 */void check_in();/*登记入住函数*/void chamber();/*入住情况函数*/void price();/*当前费用函数*/void fee();/*结账退房函数*/void infor();/*信息查询函数*/void save(int);/*保存信息函数*/void read(int);/*读取信息函数*/void choice();/*功能选择函数*/int judge_year(int); /*void information(); /*判

2、断闰年函数*/输出全部房间信息 */* 结构体 */ struct time int year;int mon;int date;int hour;struct room/*定义各房间信息的结构体*/char name40;char ID18;int flag; /*0-无人入住, 1-按小时计费, 2-按天计费 */long int deposit;time t2;/* 0- 入住时间, 1-当前时间 */roomM;char c140=0;char c218=0;/* 主函数(主界面) */void main()system(cls); /*清屏 */system(color 4E);in

3、t n;”*”printf(*);printf(*tt欢迎光临万豪酒店*);printf(*);printf(”*nn);printf(ttt1.printf(ttt2.printf(ttt3.printf(ttt4.printf(ttt5.登记入住nn);入住情况nn);当前费用nn);结账退房nn);信息查询nn);printf(ttt 6.全部信息 nn);printf(ttt 7.退出系统 nn);printf( 请输入您需要的服务的代码: );scanf(%d,&n);while(n7)printf(nn 代码输入有误,请您重新输入: );scanf(%d,&n);switch(n)

4、/*根据输入数字选择功能*/case 1:check_in();break; /*调用登记/*调用房间情入住函数 */case 2:chamber();break;况函数 */case 3:price();break;/*调用当前费用函数 */调用结账退case 4:fee();break; /*房函数 */调用信息case 5:infor();break; /*查询函数*/调用全部case 6:information();break; /*信息函数*/调用退出系case 7:exit(0);/*统函数 */* 查看房间使用情况函数*/ void chamber()system(cls);/*

5、清屏 */system(color 4E);printf(n*房间使用情况*n);int count=0;int i;int j;int k;统计未入住房int m;for(i=1;i=80;i+)/*间总数 */read(i);if(roomi-1.flag=0)count+;printf( 当前未使用房间数: %dnnn,count);chaxun:printf( 请输入你要查询的房间号( 1-40: 单人间, 41-80:双人间) : );/* 输入房间号查询房间入住情况*/scanf(%d,&m);while(m80)printf(nn 房间号输入有误,请您重新输入: );scanf(

6、%d,&m);read(m);while(roomm-1.flag!=0)printf(nn 对不起, 该房间已有客人入住,请输入其他房间号: );scanf(%d,&m);read(m);printf(nn 该房间没有客人入住, 您要入住该房间吗( 1- 是, 2- 否) : );scanf(%d,&j);while(j2)printf(nn 您的选择输入有误,请您重新输入: );scanf(%d,&j);if(j=1)check_in();elseprintf(nn 您需要继续查询吗( 1-是, 2-否) : );scanf(%d,&k);while(k2)printf(nn 您的选择输入

7、有误,请您重新输入: );scanf(%d,&k);if(k=1)goto chaxun;elseprintf(nn);main();/* 登记入住函数*/ void check_in()system(cls);/*清屏 */system(color 4E);int i;int j;int l;int k;inttab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;* 记入住 *n);printf( 请输入您将入住的房间号: );scanf(%d,&i);while(i80) printf(

8、nn 房间号输入有误,请您重新输入: );scanf(%d,&i);read(i);while(roomi-1.flag!=0)/* 判断房间是否入住*/ printf(nn 对不起, 该房间已有客人入住,请输入 其他房间号: );scanf(%d,&i);read(i););printf(nn 请 输 入 您 的 姓 名/* 客人信息登记*/ scanf(%s,roomi-1.name);j=strlen(roomi-1.name);while(j0)printf(nn 您的姓名输入有误,请您重新输入:n);scanf(%s,roomi-1.name);j=strlen(roomi-1.na

9、me);printf(nn 请输入您的证件号码: );scanf(%s,roomi-1.ID);j=strlen(roomi-1.ID);while(j!=18)printf(nn 您的证件号码输入有误, 请您重新输入:n);scanf(%s,roomi-1.ID);j=strlen(roomi-1.ID);if(i=40)printf(nn 您选择的是单人间, 该房间148元/天,8 元/ 小时。 nnn);/*选择计费方式*/printf( 请选择您的计费方式( 1:按小时计费, 2:按天计费) : );elseprintf(nn 您选择的是双人间, 该房间128元/天,7 元/ 小时。

10、nnn);printf( 请选择您的计费方式( 1:按小时计费, 2:按 天计费) : );scanf(%d,&roomi-1.flag);while(roomi-1.flag2)printf(nn 您的计费方式输入有误, 请您重新输入:);scanf(%d,&roomi-1.flag);printf(nn 请按所示格式输入您的入住时间 (年 -月- 日 - 时,时为 24 小时制) : );scanf(%d-%d-%d-%d,&roomi-1.t0.year,&roomi-1.t0.mon,&roomi-1.t0.date,&roomi-1.t0.hour);l=judge_year(roo

11、mi-1.t0.year);while(roomi-1.t0.year=0)|(roomi-1.t0.mon12)|(roomi-1.t0.datetablroomi-1.t0.mon-1)|(roomi-1.t0.hour=24)printf(nn 您的入住时间输入有误,请按照格式重新输入: );scanf(%d-%d-%d-%d,&roomi-1.t0.year,&roomi-1.t0.mon,&roomi-1.t0.date,&roomi-1.t0.hour);l=judge_year(roomi-1.t0.year);printf(nn 请输入您的押金数额: );scanf(%ld,&

12、roomi-1.deposit);while(roomi-1.deposit=0)printf(nn 您的押金数额输入有误, 请您重新输入:n);scanf(%ld,&roomi-1.deposit);printf(nn 您是否确定您的信息: ( 1-是, 2-否) : );scanf(%d,&k);while(k2)printf(nn 您的选择输入有误,请您重新输入:n);scanf(%d,&k);if(k=1)printf(nn 您已登记入住成功,祝您在本店住得愉快! nn);save(i);choice();elsecheck_in();/* 费用查询函数*/void price()sy

13、stem(cls);/*清屏 */system(color 4E);printf(n*用查询*n);int i;int j;int k;inttab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;int day=0;int hr=0;int total_hour;int total_day;long int price;printf( 请输入您的房间号: );scanf(%d,&i);while(i80)printf(nn 您的房间号输入有误,请您重新输入:);scanf(%d,&i);re

14、ad(i);while(roomi-1.flag=0)/* 判断房间是否已有客人入住*/printf(nn 该房间无人入住,请重新输入您的房间号: );scanf(%d,&i);read(i); printf(nn 请按所示格式输入当前时间(年 -月- 日-时,时为 24 小时制) : );/*输入当前时间 */shuru: scanf(%d-%d-%d-%d,&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);while(roomi-1.t1.yea

15、r=0)|(roomi-1.t1.mon12)|(roomi-1.t1.datetabjroomi-1.t1.mon-1)|(roomi-1.t1.hour=24)printf(nn 您的入住时间输入有误,请按照格式重新输入: );scanf(%d-%d-%d-%d,&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);if(roomi-1.t0.mon!=roomi-1.t1.mon)for(k=roomi-1.t0.mon+1;kroomi-1.t1

16、.mon;k+)day+=tabjk-1;day+=tabjroomi-1.t0.mon-1-roomi-1.t0.date+roomi-1.t1.date;elseday+=roomi-1.t1.date-roomi-1.t0.date;hr=roomi-1.t1.hour-roomi-1.t0.hour;if(roomi-1.flag=1)/*根据房间类型和计费方式计算费用 */if(hr0) total_hour=day*24-hr; elsetotal_hour=day*24+hr;if(i=40)price=8*total_hour;elseprice=7*total_hour;if

17、(roomi-1.flag=2)while(hr0)day=day-1;hr=hr+24; if(hr8)total_day=day; elsetotal_day=day+1;if(i=40)price=148*total_day;elseprice=128*total_day;while(price0)printf( 您的时间输入有误,请重新输入: );goto shuru;printf(nn 当 前 费 用 为 : %ld 元 .nn,price);/* 输出当前费用 */ choice();/* 结账退房函数*/ void fee() system(cls);system(color 4

18、E);printf(n账退房*n);int i;int j;int k;int*tab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;int day=0;int hr=0;int total_hour;int total_day;long int price;long int fee;printf( 请输入您的房间号: );scanf(%d,&i);while(i80)printf(nn 您的房间号输入有误,请您重新输入:);scanf(%d,&i);read(i);while(roomi-

19、1.flag=0)/* 判断房间是否有客人入住*/printf(nn 该房间无人入住,请重新输入您的房间号: );scanf(%d,&i);read(i);printf(nn 请按所示格式输入当前时间(年 -月- 日-时,时为 24 小时制) : );/*输入当前时间 */ shuru:scanf(%d-%d-%d-%d,&roomi-1.t1.year,&roomi -1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);while(roomi-1.t1.year=0)|(roomi-1.t1.mo

20、n12)|(roomi-1.t1.datetabjroomi-1.t1.mon-1)|(roomi-1.t1.hour=24)printf(nn 您的入住时间输入有误,请按照格式重新输入: );scanf(%d-%d-%d-%d,&roomi-1.t1.year,&roomi-1.t1.mon,&roomi-1.t1.date,&roomi-1.t1.hour);j=judge_year(roomi-1.t1.year);if(roomi-1.t0.mon!=roomi-1.t1.mon) for(k=roomi-1.t0.mon+1;kroomi-1.t1.mon;k+)day+=tabjk

21、-1;day+=tabjroomi-1.t0.mon-1-roomi-1.t0.date+roomi-1.t1.date;elseday+=roomi-1.t1.date-roomi-1.t0.date;hr=roomi-1.t1.hour-roomi-1.t0.hour;if(roomi-1.flag=1)/*根据房间类型和计费方式计算费用*/total_hour=day*24-hr; elsetotal_hour=day*24+hr;if(i=40)price=8*total_hour;elseprice=7*total_hour;if(roomi-1.flag=2)while(hr0)d

22、ay=day-1;hr=hr+24;if(hr8) total_day=day;elsetotal_day=day+1;if(i=40)price=148*total_day;elseprice=128*total_day;);while(price0)roomi-1.deposit=0;roomi-1.t0.year=0;roomi-1.t0.mon=0;roomi-1.t0.date=0;roomi-1.t0.hour=0;roomi-1.t1.year=0;roomi-1.t1.mon=0;roomi-1.t1.date=0;roomi-1.t1.hour=0;save(i);choic

23、e();/* 信息查询函数*/ void infor()system(cls);system(color 4E);printf(n息查询*n);*int i;printf( 请输入您的房间号: );scanf(%d,&i);while(i80)printf(nn 您的房间号输入有误,请您重新输入:);scanf(%d,&i);read(i);while(roomi-1.flag=0)/* 判断房间是否有客人入住*/printf(nn 该房间无人入住,请重新输入您的房间号: );scanf(%d,&i);read(i);printf(nn 您 的 信 息 如 下 :nnn);/* 输出客人信息

24、*/printf(姓名: );puts(roomi-1.name);printf(nn);printf( 证件号码: );puts(roomi-1.ID);printf(nn);printf( 房间类型: );if(i=40)printf(单人间nnn);elseprintf(双人间nnn);printf( 计费方式: );if(roomi-1.flag=1)printf( 按小时计费 nnn);elseprintf( 按天计费 nnn);printf( 入住时间: );printf(%d年 %d% 月 %d 日 %d 时nnn,roomi-1.t0.year,roomi-1.t0.mon,r

25、oomi-1.t0.date,roomi-1.t0.hour);printf( 押金数额: );printf(%ld 元 nn,roomi-1.deposit);choice();/* 功能选择函数*/ void choice()*printf(n功能选择n);printf(ttt 1.入住情况 n);printf(ttt 2.登记入住 n);*printf(ttt 3.当前费用n);printf(ttt 4.结账退房n);printf(ttt 5.信息查询n);printf(ttt 6.回主界面n);printf(ttt 7.全部信息n);printf(ttt 8.退出系统n);int k;

26、);printf( 请 选 择 您 需 要 的 服 务 :/* 服务选择 */scanf(%d,&k);while(k8)printf(nn 代码输入有误,请您重新输入: );scanf(%d,&k);switch(k) case 1:chamber();break; /*函数 */case 2:check_in();break; /*函数 */case 3:price();break;/*函数 */case 4:fee();break;/*函数 */case 5:infor();break;/*询函数 */case 6:main();break;/*case 7:information();

27、break; /*调用房间情况调用登记入住调用当前费用调用结账退房调用信息查调用主函数*/调用全部信息函数 */case 8:exit(0);/*调用退出系统函数 */* 判断闰年函数*/int judge_year(int x)if(x%4=0)&(x%100!=0)|(x%400=0)return(1);elsereturn(0);/* 全部信息查询 */void information() system(cls);printf(n*部信息*n);int i;int j;int k;int year;int month;int date;int hour;int year1;int mon

28、th1;int day1;int hour1;inttab212=31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31;int day=0;int hr=0;int total_hour;int total_day;long int price;printf(nn 请按所示格式输入当前时间(年 -月- 日-时,时为 24 小时制) : );/*输入当前时间 */scanf(%d-%d-%d-%d,&year,&month,&date,&hour);j=judge_year(year);for(i=1;i=

29、80;i+)read(i);if(roomi-1.flag=0)printf(房间 d无人入住。n,i);if(i=40)printf( 房间类型:单人间。 n);printf( 单价: 148 元/ 天, 8 元/小时。 n);elseprintf( 房间类型:双人间。 n);printf( 单价: 128元/ 天, 7 元/小时。 n);elseyear1=year-roomi-1.t0.year;month1=month-roomi-1.t0.mon;day1=date-roomi-1.t0.date;hour1=hour-roomi-1.t0.hour;while(hour1下:n,i

30、);printf( 姓名: );puts(roomi-1.name);printf(证件号码:);puts(roomi-1.ID);printf(房间类型:);if(i=40) printf( 单人间 n);printf( 单价:148元/ 天,8元/小时。 n);elseprintf( 双人间 n);printf( 单价:128元/ 天,7元/小时。 n);printf( 计费方式: );if(roomi-1.flag=1)printf( 按小时计费 n);elseprintf( 按天计费 n);printf( 入住时间: );printf(%d 年 %d% 月 %d 日 %d 时n,roo

31、mi-1.t0.year,roomi-1.t0.mon,roomi-1.t0.date,roomi-1.t0.hour);printf(已入住时间:d年%d月%d天%d小时。n,year1,month1,day1,hour1);printf( 押金数额: );printf(%ld 元,roomi-1.deposit);if(roomi-1.t0.mon!=month)for(k=roomi-1.t0.mon+1;kmonth;k+)day+=tabjk-1;day+=tabjroomi-1.t0.mon-1-roomi-1.t0 .date+date;elseday+=date-roomi-1

32、.t0.date;hr=hour-roomi-1.t0.hour;if(roomi-1.flag=1)/*根据房间类型和计费方式计算费用 */if(hr0)total_hour=day*24-hr;elsetotal_hour=day*24+hr;if(i=40)price=8*total_hour;elseprice=7*total_hour;if(roomi-1.flag=2)while(hr0)day=day-1;hr=hr+24;if(hr8)total_day=day;elsetotal_day=day+1;if(i=40)price=148*total_day;else price

33、=128*total_day;printf(n 当 前 费 用 为 : %ld 元 .n,price);/* 输出当前费用 */day=0;hr=0;/* 时间清零 */choice();/* 保存信息函数*/void save(int x)int i;char c;FILE *fp;if(fp=fopen( 酒店房间登记与计费管理系统信息存储文件 .txt,wb+)=NULL)printf( 无法打开文件。 nnn);printf( 请按任意键返回主菜单,并选择“退出系统”选项 , 在修改错误后再运行此系统。 nn);scanf(%s,&c);main();for(i=1;i=x;i+)if(fwrite(&roomi-1,sizeof(structroom),1,fp)!=1)printf( 文件写入错误! nn);fclose(fp);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1