版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中 原 工 学 院软件职业技术学院一级实践环节报告课题名称: 宾馆客房管理系统 专 业: NET软件 班 级: NET104 学 号: 36 学生姓名: 李新辉 指导教师: 罗菁 年 月 日一、题目宾馆客房管理系统二、流程分析宾 馆 客 房 管 理 系 统客房登记客户查询房间查询退房结算房间数选择类型订金客户基本信息登记客房号查询姓名查询空房间查询查询所有客户查询所有房间房间号确定退房日期结算三、源代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>/将字
2、符转化为小写字母函数#define Z 50 /宾馆的房间数#define AY 800#define BY 600#define CY 300#define AJ 15#define BJ 20#define CJ (Z-AJ-BJ)struct hotleunsigned int num;char dj; /各种等级类型unsigned int money;int fk;/判断房间的空闲状况0为空,为有人roomZ;struct dateint month;int day; ;struct peoplechar name20;char ID15;unsigned int num0;/房间号
3、unsigned int money0;/客人交的订金struct date ru;struct date chu;kehuZ;void saveroom();void loadroom();void printroom();void save(int s);void save1(int s);int loadn();void saven(int n);void savekehu2(int t,int m);/录入宾馆房间信息/void luru()int a0,b0,c0;a0=b0=c0=0;int i;for(i=0;i<AJ;i+)roomi.num=(a0+)+601);roo
4、mi.dj ='A'roomi.money =AY;roomi.fk=0;for(i=AJ;i<(BJ+AJ);i+)roomi.num=(b0+)+501);roomi.dj ='B'roomi.money =BY;roomi.fk=0;for(i=(AJ+BJ);i<Z;i+)roomi.num=(c0+)+401);roomi.dj ='C'roomi.money =CY;roomi.fk=0;saveroom();void saveroom()/储存房间信息FILE *fp;fp=fopen("my hotle.te
5、xt","wb");for(int i=0;i<Z;i+)/if(fwrite(&roomi,sizeof(struct hotle),1,fp)!=1)printf("文件写入失败n");break;fclose(fp);void loadroom()FILE *fp;int i;if(fp=fopen("my hotle.text","rb")=NULL)printf("打开文件失败n");return;for(i=0;i<Z;i+)if(fread(&
6、roomi,sizeof(struct hotle),1,fp)!=1)printf("读取文件失败n");break;printf("读取成功!n");fclose(fp);void printroom()/输出各个房间的信息/loadroom();printf("客房号 客房等级 客房价格 客房空闲(为空)n");for(int i=0;i<Z;i+)printf("%-18d%-12c%-18d%-15dn",roomi.num,roomi.dj,roomi.money,roomi.fk);/输出各类型
7、空房间的信息/void printkong(char ch)loadroom();int i;switch(ch)case 'a':printf("A类(豪华套房)空房间信息 客房号 客房价格 n");for(i=0;i<AJ;i+)if(roomi.fk=0)printf("ttt%11d%15dn",roomi.num,roomi.money);break;case 'b':printf("B类(中档套房)空房间信息 客房号 客房价格 n");for(i=AJ;i<(AJ+BJ);i+)
8、if(roomi.fk=0)printf("ttt%11d%15dn",roomi.num,roomi.money);break;case 'c':printf("C类(单人公寓)空房间信息 客房号 客房价格 n");for(i=(AJ+BJ);i<Z;i+)if(roomi.fk=0)printf("ttt%11d%15dn",roomi.num,roomi.money);break;/选房间号/unsigned int panduan(unsigned int num1,char ch)int temp;/记
9、录房间号int i;loadroom();for(i=0;i<Z;i+)if(roomi.num=num1&&(tolower(roomi.dj)=ch)return temp=i;printf("请检查您选择的房间号是否有误!n");return (Z+2);/订房登记/int n;/已订的房间数void dengji()int s;/每次所订的房间数n=loadn();/读取每次文件中已订房间数的值int flag=0;/真假判断char ch;/用来选取房间等级unsigned int money1;/预付金额FILE *fp;unsigned
10、int t;/printf("请输入您要订的房间数n");scanf("%d",&s);dogetchar();/接收输入中的回车printf("请选择您所订房间的类型 A(豪华套房) B(中档套房) C(单人公寓)n");ch=getchar();while(!(tolower(ch)='a'|tolower(ch)='b'|tolower(ch)='c');for(int i=0;i<s;i+)/loadroom();switch(tolower(ch)case
11、9;a': unsigned int num1;/选择的房间号;printkong(tolower(ch);printf("请您正确选择以上房间号:n");doscanf("%d",&num1);t=panduan(num1,tolower(ch);if(t!=0&&roomt.fk!=0)printf("此房间已经被订,请重新选择n");flag=1;else if(t>Z)flag=1;elseflag=0;while(flag);/当选择房间错误或者所选房间有人时重新输入。roomt.fk=
12、1;saveroom();/存取房间信息;kehui.num0=num1;doprintf("请交付订金(不得低于房价的倍)n");scanf("%d",&money1);while(money1<(2*roomt.money);/预付的订金不得低于房间价格的两倍kehui.money0=money1;break;case 'b': unsigned int num1;/选择的房间号;printkong(tolower(ch);printf("请您正确选择以上房间号:n");doscanf("%
13、d",&num1);t=panduan(num1,tolower(ch);if(t!=0&&roomt.fk!=0)printf("此房间已经被订,请重新选择n");flag=1;else if(t>Z)flag=1;elseflag=0;while(flag);/当选择房间错误或者所选房间有人时重新输入。roomt.fk=1;saveroom();/存取房间信息;kehui.num0=num1;doprintf("请交付订金(不得低于房价的倍)n");scanf("%d",&money
14、1);while(money1<(2*roomt.money);/预付的订金不得低于房间价格的两倍kehui.money0=money1;break;case 'c':unsigned int num1;/选择的房间号;printkong(tolower(ch);printf("请您正确选择以上房间号:n");doscanf("%d",&num1);t=panduan(num1,tolower(ch);if(t!=0&&roomt.fk!=0)printf("此房间已经被订,请重新选择n"
15、);flag=1;else if(t>Z)flag=1;elseflag=0;while(flag);/当选择房间错误或者所选房间有人时重新输入。roomt.fk=1;saveroom();/存取房间信息;kehui.num0=num1;doprintf("请交付订金(不得低于房价的倍)n");scanf("%d",&money1);while(money1<(2*roomt.money);/预付的订金不得低于房间价格的两倍kehui.money0=money1;break;/saveroom();printf("请输入客户
16、的姓名n");getchar();/接收gets();printf("请输入客户的身份证号");gets(kehui.ID);printf("请输入入住日期(月、日)n");scanf("%d%d",&kehui.ru.month,&kehui.ru.day);printf("订房成功,欢迎您的光临n");if(fp=fopen("kehuxinxi.text","rb")=NULL)save1(s);elsesave(s);n=
17、n+s;/n为以订房间的人数。saven(n);/存取已订房间人数n的值/void saven(int n)FILE *fp;fp=fopen("n.text","w");fprintf(fp,"%5d",n);fclose(fp);/读取n的值/int loadn()int m;FILE *fp;if(fp=fopen("n.text","r")=NULL)return 0;elsefscanf(fp,"%d",&m);return m;/存取客户信息(追加)/vo
18、id save(int s)FILE *fp;int i,m;m=loadn();if(fp=fopen("kehuxinxi.text","ab")=NULL)printf("打开文件失败n");return;for(i=0;i<s;i+)fwrite(&kehui,sizeof(people),1,fp);fclose(fp);/存取(当文件为空时)/void save1(int s)FILE *fp;fp=fopen("kehuxinxi.text","wb");for(in
19、t i=0;i<s;i+)fwrite(&kehui,sizeof(people),1,fp);fclose(fp);/读取客户信息文件/void loadkehu()int m,i;m=loadn();FILE *fp;if(fp=fopen("kehuxinxi.text","rb")=NULL)printf("打开文件失败或者客户信息为空n");return;for(i=0;i<m;i+)if(fread(&kehui,sizeof(people),1,fp)!=1)printf("读取文件
20、失败/n");return;/ 输出客户信息/void printkehu()loadkehu();int m,i;m=loadn();/读取现在总共有多少个客人printf("客房号 客户姓名 ID 入住日期 预付金额n");for(i=0;i<m;i+)printf("%-3dtt%-3s t%-3stt %5d月%2d日tt%-dn",kehui.num0,,kehui.ID,kehui.ru.month,kehui.ru.day,kehui.money0);/输出一个客户信息/void printkehu2(i
21、nt i)/i是客户的下标printf("客房号 客户姓名 ID 入住日期 预付金额n");printf("%3dtt%3st%-3stt%-5d 月%-2d 日tt%dn",kehui.num0,,kehui.ID,kehui.ru.month,kehui.ru.day,kehui.money0);/查询客户信息/void chaxun()int k;unsigned int numk;/查询的客房号int flag;/判断作用char namek20;/查询的客户姓名loadkehu();printf("1.客房号查询
22、2.客户姓名查询 n");doprintf("请选择: ");scanf("%d",&k);while(!(k=1|k=2);switch(k)case 1:flag=1;/int i;printf("请输入您要查询的客房号: ");scanf("%d",&numk);for(i=0;i<Z;i+)if(kehui.num0=numk)flag=0;break;if(flag=1)/没查到时取初值printf("没有找到您要查询的客户n");return;prin
23、tkehu2(i);break;case 2:flag=1;/int i;printf("请输入您要查询的客户姓名: ");getchar();/接收scanf("%s",namek);for(i=0;i<Z;i+)if(strcmp(,namek)=0)flag=0;break;if(flag=1)/没查到时取初值printf("没有找到您要查询的客户n");return;printkehu2(i);break;/时间(一年的第几天)/int shijian(int month,int day)int a1
24、2=31,28,31,30,31,30,31,31,30,31,30,31;int s=0;for(int i=0;i<month-1;i+)s=s+ai;s=s+day;return s;/退房结算/void tuifang()int i,m,t1,t2,s1,s2,s;int flag=0;unsigned int money9;char ch;m=loadn();/客人总数getchar();/接收printf("请输入您要退的客房号n");unsigned int num9;/退的房间号scanf("%d",&num9);loadk
25、ehu();/读取客户信息loadroom();/读取房间信息for(i=0;i<m;i+)if(kehui.num0=num9)t1=i;/记住客户的位置flag=1;/证明有这个客户break;for(i=0;i<Z;i+)if(roomi.num=num9)t2=i;/记住房间的位置if(flag)printf(" 客房号 客户姓名 (请检查是否正确!)n ");printf("%5dt%15sn",kehut1.num0,);elseprintf("您的客房号输入有误n");return;do
26、getchar();/接收printf("确认退房请按Y否则请按N(不分大小写)n");ch=getchar();while(!(tolower(ch)='y'|tolower(ch)='n');if(tolower(ch)='y')/退房时printf("请您输入客户的退房日期(月、日)");scanf("%d%d",&kehut1.chu.month,&kehut1.chu.day);s1=shijian(kehut1.ru.month,kehut1.ru.day);
27、/入住的时间s2=shijian(kehut1.chu.month,kehut1.chu.day);/退房时间s=s2-s1;/住了多少天;money9=s*roomt2.money;printf("应收取的人民币为:%d 元n",money9);if(kehut1.money0-money9)>=0)printf("应找您人民币%d 元n",(kehut1.money0-money9);elseprintf("您的预付金额不足,请您再交取人民币 %d 元!n",(money9-kehut1.money0);roomt2.fk=
28、0;saveroom();m=m-1;savekehu2(t1,m);saven(m);/存储剩余已订房的客户总数printf("欢迎您下次光临!n");elsereturn;/客户退房后存储/void savekehu2(int t,int m)/t为退房客户的下标,m为剩余订房客户的人数FILE *fp;if(fp=fopen("kehuxinxi.text","wb")=NULL)return;for(t;t<m;t+)kehut.num0=kehut+1.num0;strcpy(,kehut+1.na
29、me);strcpy(kehut.ID,kehut+1.ID);kehut.money0=kehut+1.money0;kehut.ru.month=kehut+1.ru.month;kehut.ru.day=kehut+1.ru.day;for(int i=0;i<m;i+)if(fwrite(&kehui,sizeof(people),1,fp)!=1)printf("存取失败n");break;fclose(fp); void mulu()/首页提示信息printf("1. 客人入住登记n");printf("2. 客户信息
30、查询n");printf("3. 查询房间信息n");printf("4. 退房结算n");printf("0. 退出n");void main()/luru();/重新录入房间信息/printkong('b');/getchar();/return;char ch50="* * * * * welcome to * * * * *"printf("*nn");printf(" %snn",ch);printf(" * * * 欢迎您进入宾馆管理系统* * *nn");printf("*nnn");mulu();for(;)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国能源建设集团投资限公司校园招聘18人高频重点提升(共500题)附带答案详解
- 2025中国石化华北石油工程限公司毕业生招聘35人高频重点提升(共500题)附带答案详解
- 2025中国电信研究院校园招聘高频重点提升(共500题)附带答案详解
- 2025中国电信吉林通化分公司校园招聘高频重点提升(共500题)附带答案详解
- 2025中国国新招聘高频重点提升(共500题)附带答案详解
- 2025中共赣州市委机构编制委员会办公室招募青年见习1人(江西)高频重点提升(共500题)附带答案详解
- 2025下半年陕西西安职业技术学院招聘工作人员15人高频重点提升(共500题)附带答案详解
- 2025下半年贵州安顺市西秀区事业单位招聘不可人员历年高频重点提升(共500题)附带答案详解
- 2025下半年浙江嘉兴市南湖区事业单位招聘37人高频重点提升(共500题)附带答案详解
- 2025下半年江苏南京林业大学教学科研岗招聘165人高频重点提升(共500题)附带答案详解
- 高等学校建筑学专业本科(五年制)教育评估标准
- 铝合金理论重量表
- 炼铁厂3#烧结主抽风机拆除安全专项方案
- 四年级上册英语期末复习课件综合复习及检测讲义 牛津上海版一起
- 2020年污水处理厂设备操作维护必备
- LSS-250B 纯水冷却器说明书
- 《煤矿开采学》课程设计实例
- (完整版)todo,doingsth初中魔鬼训练带答案
- 福建省青少年科技教育协会章程
- 防止返贫监测工作开展情况总结范文
- 2015年度设备预防性维护计划表
评论
0/150
提交评论