还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
酒店房间登记与计费管理系统源代码#define M80#includestdlib.h#includestdio.h#includestring.h/*函数申明*/void check_in;/*登记入住函数*/void chamber;/*入住状况函数*/void price;/*目前费用函数*/void fee;/*结账退房函数*/void infor;/*信息查询函数*/void saveint;/*保留信息函数*/void readint;/*读取信息函数*/void choice;/*功能选择函数*/int judge_yearint;/*判断闰年函数*/void information;/*输出所有房间信息*//*构造体*/ifi=40{printf\n\n您选择日勺是单人间,该房间148元/天,8元/小时\n\n\n;/*选择计费方式*/printf请选择您的计费方式1:按小时计费,2:按天计费;else{printf\n\n您选择的|是双人间,该房间128元/天,7元/小时\n\n\n;printf请选择您的J计费方式1:按小时计费,2:按天计费”;scanf%d room[i-l].flag;zwhileroom[i-l].flag011room[i-l].flag2{printf\n\n您的I计费方式输入有误,请您重新输入;scanf%d,room[i-l].flag;printf\n\n请按所示格式输入您日勺入住时间年-月-日-时,时为24小时制”;scanf%d-%d-%d-%cT,room[i-l].t
[0].year,t
[0].mon,O].date,room[i-l].t
[0].hour;I=judge_yearroom[i-I].t
[0].year;whileroom[i-l],t
[0].year=0||room[i-l].t
[0].mon=0||room[i-l].t
[0].mon12||room[i-l].t
[0].date=011room[i-l].t
[0].datetab[l][room[i-l].t
[0].mon-l]||room[i-l].t
[0].hour0||room[i-l].t
[0].hour=24{printf\n\n您改J入住时间输入有误,请按照格式重新输入;%scanf d-%d-%d-%cr,room[i-l].t
[0].yeai;room[i-l].t
[0].mon,room[i-l].t
[0].date,room[i-l].t
[0].hour;I=judge_yearroom[i-I].t
[0].year;printf\n\n请输入您的押金数额;scanf%ld,room[i-l].deposit;whileroom[i-l].deposit=0{printf\n\n您的I押金数额输入有误,请您重新输入\n;scanf,,%ld,room[i-l].deposit;printf\n\n您与否确定您的信息1-是,2-否:;scanf“%d”,k;whilekl||k2{printf\n\n您的J选择输入有误,请您重新输入\nscanfC^d;k;ifk==l{printf\n\n您已登记入住成功,祝您在本店住得快乐!\n\n;savei;choice;elsecheck_in;/*费用查询函数*/void price{systemcls;systemcolor4E;/*清屏*/printf\n************************************群比U\n;int i;intj;int k;int tab
[2]
[12]={{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 intprice;printf请输入您的房间号;scanf“%d;i;whileil||i80{printf\n\n您的房间号输入有误,请您重新输入”;scanf%d;i;readi;whileroom[i-l].flag==0/*判断房间与否已经有客人入住*/{printf“\n\n该房间无人入住,请重新输入您的I房间号”;%scanf cT,i;readi;printf\n\n请按所示格式输入目前时间年-月-日-时,时为24小时制:;/*输入目前时间*/shuru:l].date,room[i-l].t[l].hour;j=judge_yearroom[i-l].t[l].year;whileroom[i-l].t[l].year=0||room[i-l].t[l].mon=0||room[i-l].t[l].mon12||room[i-l].t[l].date=01|room[i-l].t[l].datetab[j][room[i-l].t[l].mon-l]||room[i-l].t[l].hour0||room[i-l].t[l].hour=24{printf\n\n您的J入住时间输入有误,请按照格式重新输入;scanf%d-%d-%d-%d,room[i-l].t[l].year,room[i-l].t[l].mon,room[i-l].t
[1].date,room[i-l].t[l].hour;j=judge_yearroom[i-l].t[l].year;if room[i-l].t[O].mon!=room[i-l].t[l].mon{fork=room[i-l].t
[0].mon+l;kroom[i-l].t[l].mon;k++{day+=tab[j][k-l];day+=tab[j][room[i-l].t
[0].mon-l]-room[i-l].t
[0].date+room[i-l].t[l].date;else{day+=room[i-l].t[l].date-room[i-l].t
[0].date;}hr=room[i-l].t[l].hour-room[i-l].t
[0].hour;ifroom[i-l].flag==l/*根据房间类型和计费方式计算费用*/{ifhr0{total_hour=day*24-hr;}else{total_hour=day*24+hr;}ifi=40price=8*total_hour;elseprice=7*total_hour;ifroom[i-l].flag==2{whilehr0{day=day-l;hr=hr+24;}ifhr8{total_day=day;}else{total_day=day+l;}ifi=40price=148*total_day;elseprice=128*total_day;whileprice0{printf您的时间输入有误,请重新输入;goto shuru;printfH\n\n目前费用为%ld元.\n\n,price;/*输出目前费用*/choice;/*结账退房函数*/void fee{system,,clsM;systemcolor4E;・■frIc,♦-4•111\八不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不不结账退房\n;int i;intj;int k;int tab
[2]
[12]={{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=O;int hr=O;int total_hour;int total_day;long intprice;long intfee;printf请输入您的房间号;%scanf cT7i;whileil||i80{printf\n\n您肚|房间号输入有误,请您重新输入”;scanf%d,i;readi;whileroom[i-l].flag==0/*判断房间与否有客人入住*/{printf\n\n该房间无人入住,请重新输入您的房间号;scanf“%d;i;readi;printf“\n\n请按所示格式输入目前时间年-月-日-时,时为24小时制:”);/*输入目前时间*/%shuru:scanf d-%d-%d-%cTroom[i-l].t[l].yeai;room[i-l].t[l].mon,room[i-lJ.t[l].date,room[i-l].t[l].hour;j=judge_yearroom[i-l].t[l].year;whileroom[i-l].t[l].year=0||room[i-l].t[l].mon=0||room[i-l].t[l].mon12||room[i-l].t[l].date=01|room[i-l].t[l].datetab[j][room[i-l].t[l].mon-l]||room[i-l].t[l].hour0||room[i-l].t[l].hour=24{printf\n\n您的J入住时间输入有误,请按照格式重新输入;scanf,%d-%d-%d-%d,room[i-l].t[l].year,room[i-l].t[l].mon,room[i-l].t
[1].date,room[i-l].t[l].hour;j=judge_yearroom[i-l].t[l].year;if room[i-l].t
[0].mon!=room[i-l].t[l].mon{fork=room[i-l].t
[0].mon+l;kroom[i-l].t[l].mon;k++{day+=tab[j][k-l];day+=tab[j][room[i-l].t
[0].mon-l]-room[i-l].t
[0].date+room[i-l].t[l].date;struct time{int year;int mon;int date;int hour;;struct room/*定义各房间信息日勺构造体*/{char name
[40];char ID
[18];int flag;/*0-无人入住,1-按小时计费,2-按天计费*/long intdeposit;timet
[2];/*0-入住时间,1-目前时间*/}room[M];char cl
[40]={0};char c2
[18]={0};/*主函数主界面*/void mainelse{day+=room[i-l].t[l].date-room[i-l].t[O].date;}hr=room[i-l].t[l].hour-room[i-l].t
[0].hour;ifroom[i-l].flag==l/*根据房间类型和计费方式计算费用*/{ifhr0{total_hour=day*24-hr;}else{total_hour=day*24+hr;}ifi=40price=8*total_hour;elseprice=7*total_hour;ifroom[i-l].flag==2{whilehr0{day=day-l;hr=hr+24;}ifhr8{total_day=day;}else{total_day=day+l;}ifi=40price=148*total_day;elseprice=128*total_day;whileprice0{printf您的时间输入有误,请重新输入;goto shuru;fee=price-room[i-l].deposit;iffee0/*输出最终的总费用*/{printf\n\n扣除押金后,您另需支付费用%ld元:fee;}else iffee==0{printf\n\n您所交纳的押金恰好可以支付您的住房费用,您无需另行交钱;}else{printf\n\n您所交纳的押金尚未使用完,本宾馆应支付您余额%ld元「fee;}printf\n\n\n您已退房成功,感谢您的光顾,我们下次再会!\n\n;room[i-l].flag=0;strcpyroom[i-l].name cl;/strcpyroom[i-l].ID,c2;room[i-l].deposit=0;room[i-l].t
[0].yea r=0;room[i-l].t
[0].mon=0;room[i-l].t
[0].date=0;room[i-l].t
[0].hour=0;room[i-l].t[l].year=0;room[i-l].t[l].mon=0;room[i-l].t[l].date=0;room[i-l].t[l].hour=0;savei;choice;/*信息查询函数*/void infor{system,,cls,1;systemcolor4E;printf\n\n;int i;printf请输入您的房间号;scanf%dH,i;whileil||i80{printf\n\n您的房间号输入有误,请您重新输入;scanf%d;i;}readi;whileroom[i-l],flag==0/*判断房间与否有客人入住*/{printf\n\n该房间无人入住,请重新输入您的I房间号”;scanf,,%d,,,i;readi;printf”\n\n您的信息如下\n\n\n;/*输出客人信息*/printf姓名;putsroom[i-l].name;printf\n\n;printf证件号码;putsroom[i-l].ID;printfCXnXn;printf房间类型;ifi=40{printf单人间\n\n\n;}else{printf双人间\n\n\n;}printf计费方式;ifroom[i-l].flag==l{printf“按小时计费\n\n\n;}else{printf按天计费\n\n\n;}printf“入住时间;printfH%d年%d%月%d日%d时\n\n\n,room[i-l].t[O].year,room[i-l].t[O].mon,room[i-l].t
[0].date,room[i-l].t
[0].hour;printf“押金数额”;printf%ld7U\n\n,room[i-l].deposit;choice;/*功能选择函数*/void choice功能选择{printf\nprintf\t\t\t[
1.入住状况]\n;printf\t\t\t[
2.登记入住]\n;FTWFTWFTW♦[・.r*/‘1^T・
1.T,♦[,.[,[.♦],■].T[.T[[.T”[,♦[■]■T^T・T.[”・]■・T・T・T・‘1^^1\nM;
3.目前费用
4.结账退房
5.信息查询
6.回主界面
7.所有信息
8.退出系统printf1请选择您需要的服务”;/*服务选择int k;,scanf“%d k;whilekl||k8{printf/nn代码输入有误,请您重新输入;scanf%d,k;switchk{case l:chamber;break;/*调用房间状况函数*/case2:check_in;break;/*调用登记入住函数*/case3:price;break;/*调用目前费用函数*/case4:fee;break;/*判断闰年函数*/case5:infor;break;int judge_yearint x/*调用结账退房函数*/case6:main;break;/*调用信息查询函数*/case7:information;break;/*调用主函数*/case8:exit0;/*调用所有信息函数*//*调用退出系统函数*/{ifx%4==0x%100!=0||x%400==0returnl;elsereturnO;/*所有信息查询*/void information{systemcls;所有信息printf\n*\n;int i;int j;int k;int year;int month;int date;int hour;int yearl;int monthl;int dayl;int hourl;int tab
[2]
[12]={{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=O;int total_hour;int total_day;long intprice;printf\n\n请按所示格式输入目前时间年-月-日-时,时为24小时制:;/*输入目前时间*/scanfH%d-%d-%d-%d,year,month,date,hour;j=judge_yearyear;fori=l;i=80;i++{readi;ifroom[i-l].flag==0{printf1房间%d无人入住\nH,i;ifi=40{printf房间类型:单人间\n;printf单价148元/天,8元/小时\n;}else{printf房间类型:双人间\n;printf单价128元/天,7元/小时\n;}else{systemCcls;/*清屏*/systemcolor4E;int n;printf;printf**printf**\t\t----------欢迎光顾万豪酒店------------------------------------print****»\.printf\n\n;printf\t\t\t[
1.登记入住]\n\n;printf\t\t\t[
2.入住状况]\n\n;printf\t\t\t[
3.目前费用]\n\n;printf\t\t\t[
4.结账退房]\n\n;printf\t\t\t[
5.信息查询]\n\n;{yearl=year-room[i-l].t
[0].year;monthl=month-room[i-l].t
[0].mon;dayl=date-room[i-l].t
[0].date;hourl=hour-room[i-l].t
[0].hour;()while hourl0{dayl=dayl-l;hourl=hourl+24;}printf(房间%£1客户信息如下\n,i);print(姓名);()puts room[i-l].name;printf(证件号码);()puts room[i-l].ID;printf(房间类型);()if i=40{print1单人间\n);printf(单价:148元/天,8元/小时\nM);)else{printf(双人间\n);printf单价:128元/天,7元/小时\nH;printf计费方式;ifroom[i-l].flag==l{printf1按小时计费\rT;}else{printf按天计费\n;}printf“入住时间;printf%d年%d%月%d日%d时\n,room[i-l].t[O].year,room[i-l].t[O].mon,room[i-l].t[O].date,room[i-l].t[O].ho ur;printf已入住时间%d年%d月%d天%d小时\n,yearl,monthl,dayl,hourl;printf押金数额;printf%ld7C,,,room[i-l].deposit;if room[i-1].t
[0].mon!=month{fork=room[i-l].t
[0].mon+l;kmonth;k++{day+=tab[j][k-l];day+=tab[j][room[i-l].t
[0].mon-l]-room[i-l].t
[0].date+date;else{day+=date-room[i-l].t
[0].date;}hr=hour-room[i-l].t
[0].hour;ifroom[i-l].flag==l/*根据房间类型和计费方式计算费用*/{ifhr0{total_hour=day*24-hr;}else{total_hour=day*24+hr;}ifi=40price=8*total_hour;elseprice=7*total_hour;ifroom[i-l].flag==2{whilehr0{day=day-l;hr=hr+24;}ifhr8{total_day=day;}else{total_day=day+l;}ifi=40price=148*total_day;elseprice=128*total_day;printf\n目前费用为%ld元.\n,price;/*输出目前费用*/day=O;hr=O;/*时间清零*/choice;/*保留信息函数*/void saveintx{int i;char c;FILE*fp;iffp=fopen酒店房间登记与计费管理系统信息存储文献.txt”Jwb+=NULL{printf“无法打开文献\n\n\n;printf请按任意键返回主菜单,并选择“退出系统”选项,在修改错误后再运行此系统\n\n;scanf%sc;main;fori=l;i=x;i++iffwriteroom[i-l],sizeofstruct room,l,fp!=lprintf文献写入错误!\n\n;fclosefp;/*读取信息函数*/void readinty{int i=l;char c;FILE*fp;iffp=fopen酒店房间登记与计费管理系统信息存储文献.txt”Jrb+=NULL{printf\n\n无法打开文献\n\n\n;printf请按任意键返回主菜单,并选择“退出系统”选项,在修改错误后再运行此系统\n\n;scanf%sc;main;else{do freadroom[i-lj^izeofstruct room,l,fp;i++;}whilefeoffp==0;fclosefp;[
6.所有信息]\n\n“;printf(\t\t\t[
7.退出系统]\n\n);printf(请输入您需要的服务的代码);(%)scanfcT,n;()while nl||n7{printf(“\n\n代码输入有误,请您重新输入”);,scanf“%d n;/*根据输入数字选择功能*/switchn{case l:checkjn;break;/*调用登记入住函数*/case2:chamber;break;/*调用房间状况函数*/case3:price;break;/*调用目前费用函数*/case4:fee;break;/*调用结账退房函数*/case5:infor;break;/*调用信息查询函数*/case6:information;break;/*调用所有信息函数*/case7:exit0;/*调用退出系统函数*//*查看房间使用状况函数*/void chamber/*清屏*/{systemcls;systemHcolor4E;房间使用状况printf\n\nH;int count=0;int i;intj;int k;int m;fori=l;i=80;i++/*记录未入住房间总数*/{readi;ifroom[i-l].flag==0;count++}printf目前未使用房间数:%d\n\n\n,count;chaxun:printf“请输入你要查询时房间号1-40:单人间,41-80:双人间;/*输入房间号查询房间入住状况*/scanf%cT,m;whileml||m80{printf\n\n房间号输入有误,请您重新输入;scanf%d,m;readm;whileroom[m-l].flag!=0{printf\n\n对不起,该房间已经有客人入住,请输入其他房间号”;scanf%cT,m;readm;}printf\n\n该房间没有客人入住,您要入住该房间吗?1-是,2-否;scanf,,%dl,j;,whilejl||j2{printf\n\n您的I选择输入有误,请您重新输入;,scanf”%d j;check_in;else{printf\n\n您需要继续查询吗?1-是,2-否”;scanfC^d;k;whilekl||k2{printf\n\n您的I选择输入有误,请您重新输入;scanfC^d;k;ifk==lgoto chaxun;else;{printf”\n\n”main;}/*登记入住函数*/void checkjn{systemCcls;/*清屏*/systemcolor4E;int i;int j;int I;int k;int tab
[2]
[12]={{31,28,31,30,31,30,31,31,30,31,30,31},;{31,29,31,30,31,30,31,31,30,31,30,31}}pri ntfH\n************************************t己人^彳丰%II\.,、■口//printf(“请输入您将入住的房间号);,scanf“%d i;whileil||i80{printf(\n\n房间号输入有误,请您重新输入:;scanf%d;i;/*判断房间与否入住*/whileroom[i-l].flag!=0readi;{printf(“\n\n对不起,该房间已经有客人入住,请输入其他房间号);,scanf%d i;readi;}printf\n\n请输入您的姓名;/*客人信息登记*/scanf%s,room[i-1].name;j=strlenroom[i-l].name;whilej0{printf\n\n您的J姓名输入有误,请您重新输入\n“;scanf%s,room[i-1].name;j=strlenroom[i-1].name;printf\n\n请输入您的I证件号码;scanf%s,room[i-l].ID;j=strlenroom[i-l].ID;whilej!=18{printf\n\n您的I证件号码输入有误,请您重新输入\n;scanf%s,room[i-l].ID;j=strlenroom[i-l].ID;。