版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中 原 工 学 院软件职业技术学院一级实践环节报告课题名称: 宾馆客房管理系统 专 业: net软件 班 级: net104 学 号: 36 学生姓名: 李新辉 指导教师: 罗菁 年 月 日一、题目宾馆客房管理系统二、流程分析宾 馆 客 房 管 理 系 统客房登记客户查询房间查询退房结算房间数选择类型订金客户基本信息登记客房号查询姓名查询空房间查询查询所有客户查询所有房间房间号确定退房日期结算三、源代码#include#include#include#include/将字符转化为小写字母函数#define z 50 /宾馆的房间数#define ay 800#define by 600#def
2、ine 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;/房间号unsigned int money0;/客人交的订金struct date ru;struct date chu;kehu
3、z;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;iaj;i+)roomi.num=(a0+)+601);roomi.dj =a;roomi.money =ay;roomi.fk=0;for(i=aj;i(bj+aj);i+)roomi.num
4、=(b0+)+501);roomi.dj =b;roomi.money =by;roomi.fk=0;for(i=(aj+bj);iz;i+)roomi.num=(c0+)+401);roomi.dj =c;roomi.money =cy;roomi.fk=0;saveroom();void saveroom()/储存房间信息file *fp;fp=fopen(my hotle.text,wb);for(int i=0;iz;i+)/if(fwrite(&roomi,sizeof(struct hotle),1,fp)!=1)printf(文件写入失败n);break;fclose(fp);v
5、oid loadroom()file *fp;int i;if(fp=fopen(my hotle.text,rb)=null)printf(打开文件失败n);return;for(i=0;iz;i+)if(fread(&roomi,sizeof(struct hotle),1,fp)!=1)printf(读取文件失败n);break;printf(读取成功!n);fclose(fp);void printroom()/输出各个房间的信息/loadroom();printf(客房号 客房等级 客房价格 客房空闲(为空)n);for(int i=0;iz;i+)printf(%-18d%-12c
6、%-18d%-15dn,roomi.num,roomi.dj,roomi.money,roomi.fk);/输出各类型空房间的信息/void printkong(char ch)loadroom();int i;switch(ch)case a:printf(a类(豪华套房)空房间信息 客房号 客房价格 n);for(i=0;iaj;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+)if(ro
7、omi.fk=0)printf(ttt%11d%15dn,roomi.num,roomi.money);break;case c:printf(c类(单人公寓)空房间信息 客房号 客房价格 n);for(i=(aj+bj);iz;i+)if(roomi.fk=0)printf(ttt%11d%15dn,roomi.num,roomi.money);break;/选房间号/unsigned int panduan(unsigned int num1,char ch)int temp;/记录房间号int i;loadroom();for(i=0;iz;i+)if(roomi.num=num1&(t
8、olower(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 int t;/printf(请输入您要订的房间数n);scanf(%d,&s);dogetchar();/接收输入中的回车printf(请选择您所订房间的类型
9、a(豪华套房) b(中档套房) c(单人公寓)n);ch=getchar();while(!(tolower(ch)=a|tolower(ch)=b|tolower(ch)=c);for(int i=0;iz)flag=1;elseflag=0;while(flag);/当选择房间错误或者所选房间有人时重新输入。roomt.fk=1;saveroom();/存取房间信息;kehui.num0=num1;doprintf(请交付订金(不得低于房价的倍)n);scanf(%d,&money1);while(money1z)flag=1;elseflag=0;while(flag);/当选择房间错误
10、或者所选房间有人时重新输入。roomt.fk=1;saveroom();/存取房间信息;kehui.num0=num1;doprintf(请交付订金(不得低于房价的倍)n);scanf(%d,&money1);while(money1z)flag=1;elseflag=0;while(flag);/当选择房间错误或者所选房间有人时重新输入。roomt.fk=1;saveroom();/存取房间信息;kehui.num0=num1;doprintf(请交付订金(不得低于房价的倍)n);scanf(%d,&money1);while(money1(2*roomt.money);/预付的订金不得低于
11、房间价格的两倍kehui.money0=money1;break;/saveroom();printf(请输入客户的姓名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=n+s;/n为以订房间的人数。saven(n);/存取已订
12、房间人数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;/存取客户信息(追加)/void save(int s)file *fp;int i,m;m=loadn();if(fp=fopen(kehuxinxi.text,ab)=null)printf(打开文件失败n);return;for(i
13、=0;is;i+)fwrite(&kehui,sizeof(people),1,fp);fclose(fp);/存取(当文件为空时)/void save1(int s)file *fp;fp=fopen(kehuxinxi.text,wb);for(int i=0;is;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);ret
14、urn;for(i=0;im;i+)if(fread(&kehui,sizeof(people),1,fp)!=1)printf(读取文件失败/n);return;/ 输出客户信息/void printkehu()loadkehu();int m,i;m=loadn();/读取现在总共有多少个客人printf(客房号 客户姓名 id 入住日期 预付金额n);for(i=0;im;i+)printf(%-3dtt%-3s t%-3stt %5d月%2d日tt%-dn,kehui.num0,,kehui.id,kehui.ru.month,kehui.ru.day,kehui.
15、money0);/输出一个客户信息/void printkehu2(int 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.客
16、房号查询 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;iz;i+)if(kehui.num0=numk)flag=0;break;if(flag=1)/没查到时取初值printf(没有找到您要查询的客户n);return;printkehu2(i);break;case 2:flag=1;/int i;printf(请输入您要查询的客户姓名: );getchar();/接收
17、scanf(%s,namek);for(i=0;iz;i+)if(strcmp(,namek)=0)flag=0;break;if(flag=1)/没查到时取初值printf(没有找到您要查询的客户n);return;printkehu2(i);break;/时间(一年的第几天)/int shijian(int month,int day)int a12=31,28,31,30,31,30,31,31,30,31,30,31;int s=0;for(int i=0;imonth-1;i+)s=s+ai;s=s+day;return s;/退房结算/void tuifang(
18、)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);loadkehu();/读取客户信息loadroom();/读取房间信息for(i=0;im;i+)if(kehui.num0=num9)t1=i;/记住客户的位置flag=1;/证明有这个客户break;for(i=0;i=0)printf(应找您人民币%d 元n,(kehut1.money0-m
19、oney9);elseprintf(您的预付金额不足,请您再交取人民币 %d 元!n,(money9-kehut1.money0);roomt2.fk=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;tm;t+)kehut.num0=kehut
20、+1.num0;strcpy(,kehut+1.name);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;im;i+)if(fwrite(&kehui,sizeof(people),1,fp)!=1)printf(存取失败n);break;fclose(fp); void mulu()/首页提示信息printf(1. 客人入住登记n);printf(2. 客户信息查询
21、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(;)char ch2;int c,k;doprintf(请正确选择序号: );scanf(%d,&c);while(!(c=1|c=2|c=3|c=4|c=5|c=0);switch(c)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 批量招聘合同范例
- 橱柜店返合同范例
- 芝华士沙发销售合同范例
- 租地盖厂房买卖合同范例
- 车库装修维修合同范例
- 自媒体培训合同范例
- 包车带司机合同范例
- 用工劳动安全合同范例
- 乌鲁木齐拆迁合同范例
- 改造房间租房合同范例
- 2024统编版(2024)道德与法治小学一年级上册教学设计(附目录)
- 医师定期考核人文医学考试题库500题(含参考答案)
- 2024年秋季新统编版七年级上册道德与法治全册教案
- DL∕T 5362-2018 水工沥青混凝土试验规程
- 清华大学《工程伦理》网课习题及期末考试答案
- 人教版小学三年级语文上每课词句积累
- 大学生心理健康与发展学习通超星课后章节答案期末考试题库2023年
- 水库维修养护工程施工合同协议书范本
- MS培养基及配制注意事项
- 企业技术标准化管理
- 投资学第19章财务分析stu
评论
0/150
提交评论