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

上传人:scccc 文档编号:13595650 上传时间:2022-01-19 格式:DOC 页数:39 大小:129.50KB
返回 下载 相关 举报
C语言课程设计酒店房间登记与计费管理系统源代码.doc_第1页
第1页 / 共39页
C语言课程设计酒店房间登记与计费管理系统源代码.doc_第2页
第2页 / 共39页
C语言课程设计酒店房间登记与计费管理系统源代码.doc_第3页
第3页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、/* 登记入住函数 */* 入住情况函数 */* 当前费用函数 */* 结账退房函数 */* 信息查询函数 */* 保存信息函数 */* 读取信息函数 */* 功能选择函数 */* 判断闰年函数 */* 输出全部房间信息 */C语言课程设计酒店房间登记与计费管理系统源代码酒店房间登记与计费管理系统源代码#define M 80#include#include#include /* 函数声明 */void check_in();void chamber();void price();void fee();void infor();void save(int);void read(int);voi

2、d choice(); int judge_year(int); void information();/* 结构体 */struct timeint 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()

3、system(cls); /* 清屏 */system(color 4E);int n;printf( * printf(*printf(*tt 欢 迎 光 临 万 豪 酒 店printf(*nn);printf(ttt 1.登记入住nn);printf(ttt 2.入住情况nn);printf(ttt 3.当前费用nn);printf(ttt 4.结账退房nn);printf(ttt 5.信息查询nn);printf(ttt 6.全部信息nn);printf(ttt 7.退出系统nn);printf(H*printf( 请输入您需要的服务的代码: );scanf(%d,&n);while(n

4、7)printf(nn 代码输入有误,请您重新输入: );scanf(%d,&n);switch(n)择功能 */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:ex

5、it(0);*/* 查看房间使用情况函数 */* 清屏 */void chamber() system(cls);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: 双 人间):);/* 输入房间号查询房间入住情况 */ sca

6、nf(%d,&m);while(m80)printf(nn 房间号输入有误,请您重新输入: ); scanf(%d,&m);read(m);while(roomm-1.flag!=0)printf(nn 对不起,该房间已有客人入住,请输入其他 房间号: );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-

7、否):); scanf(%d,&k);while(k2)printf(nn 您的选择输入有误,请您重新输入: ); 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;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;printf(n*登记入住*

8、n); printf( 请输入您将入住的房间号: );while(i80)printf(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)

9、;j=strlen(roomi-1.name);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 您选

10、择的是双人间,该房间 128 元/天,7 元 / 小时。 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

11、.t0.hour);l=judge_year(roomi-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 您的入住时间输入有误,请按照格式重新输 入:);1.t0.mon,&roomi-1.t0.date,&roomi-1.t0.hour);l=judge_year(roomi-1.t0.year);printf(nn 请输入您的押金数额: );scanf(%ld,&roomi-1.deposit)

12、;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();else check_in();/* 费用查询函数 */* 清屏 */费用查询void price() syst

13、em(cls);system(color 4E);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;printf( 请输入您的房间号: );scanf(%d,&i);while(i80)printf(nn 您的房间号输入有误,请您重新输入: );scanf(%d,&i);read(i);w

14、hile(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.year

15、=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(r

17、oomi-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 4E);

18、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

20、.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.mon;k+)day+=tab

21、jk-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(roomi-1.flag=2)w

22、hile(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(nn 扣除押金后, 您另需支付费用 %ld 元。 ,fee); else if(fee=0)printf(nn 您所交纳的押金恰好能够支付您的住房费用, 您无需另行交钱。 );elseprintf(nn 您所交纳的押金还未使用完, 本宾馆应支付您 余额 %ld 元。 ,-fee);pri

23、ntf(nnn 您已退房成功,感谢您的光临,我们下次再 见! nn); roomi-1.flag=0; strcpy(roomi-1.name,c1); strcpy(roomi-1.ID,c2); 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);choice();/* 信息查询函数 */vo

24、id 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);/* 输出客人信息 */printf(

25、姓名: ); 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);else%d 时printf( 按天计费 nnn); printf( 入住时间: );printf(%d 年 %d% 月 %d 日 nnn,roomi-1.t0.year,roomi-1.t0.mo

26、n,roomi-1.t0.date,roomi-1.t0.hour);printf( 押金数额: );printf(%ld 元 nn,roomi-1.deposit); choice();/* 功能选择函数 */功能选择void choice() printf(n* n);printf(ttt1. 入住情况n);printf(ttt2. 登记入住n);printf(ttt3. 当前费用n);printf(ttt4. 结账退房n);printf(ttt5. 信息查询n);printf(ttt6. 回主界面n);printf(ttt7. 全部信息n);printf(ttt8. 退出系统n);int

27、 k;/* 调用房间情况函数/* 调用登记入住函数/* 调用当前费用函数 */* 调用结账退房函数 */* 调用信息查询函数/* 调用主函数 */* 调用全部信息函C语言课程设计酒店房间登记与计费管理系统源代码 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

28、();break;case 5:infor();break;*/case 6:main();break;case 7:information();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*全部信息* nint i;int j; int k;int year;int month;int d

29、ate;int hour;int year1;int month1;int day1;int hour1;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;printf(nn 请按所示格式输入当前时间(年 - 月- 日-时,时 为 24 小时制): );/* 输入当前时间 */ j=judge_year(year);for(i=1;i=80;i+)rea

30、d(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(hour10)day1=da

31、y1-1;hour1=hour1+24;printf( 房间 %d 客户信息如下: n,i); 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); elsepr

32、intf( 按天计费 n);printf( 入住时间: );printf(%d 年 %d% 月 %d 日 %d 时 n,roomi-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( 押金数额: );prin tf(%ld元,roomi-1.deposit);if(roomi-1.t0.mon!=month)for(k=roomi-1.t0.mon+1;kmonth;k+) day+=tabjk-1

33、;day+=tabjroomi-1.t0.mon-1-roomi-1.t0.date+date;else/* 根据房day+=date-roomi-1.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)t

34、otal_day=day;elsetotal_day=day+1;if(i=40) price=148*total_day;elseprice=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( 请按任意键返回

35、主菜单,并选择“退出系统”选项 在修改错误后再运行此系统。 nn);scanf(%s,&c);main();for(i=1;i=x;i+)if(fwrite(&roomi-1,sizeof(struct room),1,fp)!=1)printf( 文件写入错误! nn);fclose(fp);/* 读取信息函数 */void read(int y)int i=1;char c;FILE *fp;if(fp=fopen( 酒店房间登记与计费管理系统信息存储文件.txt,rb+)=NULL)printf(nn 无法打开文件。 nnn);printf( 请按任意键返回主菜单,并选择“退出系统”选项 在修改错误后再运行此系统。 nn);scanf(%s,&c);main();elsedofread(&roomi-1,sizeof(struct room),1,fp);i+;while(feof(fp)=0);fclose(fp);

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

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


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