#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
//客人信息.h
class room;
class person
{
char name[20];
char ID[20];
int yufukuan;
int intime;
int outtime;
friend room;
public:
person(){}
person(char *nm,char *id,int yfk,int itime,int otime)
{
strcpy(name,nm);
strcpy(ID,id);
yufukuan=yfk;
intime=itime;
outtime=otime;
}
void kerenruzhu();
void informationshuru();
};
//客房信息.h
class room
{
char num[5];
char fjlx;
int price;
int kongxian;
friend person;
public:
room(){}
room(char *n,char fj,int pri,int kx)
{
strcpy(num,n);
fjlx=fj;
price=pri;
kongxian=kx;
}
int kongfangjianchaxun();
void IDchaxun();
void datechaxun();
void liulan();
void kongxianfangjian();
void informationxiugai();
void passwordxiugai();
void jiesuan();
};
int room::kongfangjianchaxun()//空房间查询
{ room roomm[20];
person per[20];
ifstream ldl("客房信息.txt",ios::in); //定义输入文件流
if(!ldl)
{
cout<<"Can't open this file.\n";
exit(1);
}
int k=0;
cout<<"空房间是:"<<endl;
while(! ldl.eof()) //eof()为假表示未遇到文件结束符
{
ldl>>roomm[k].num>>roomm[k].fjlx>>roomm[k].price
>>roomm[k].kongxian>>per[k].name>>per[k].ID
>>per[k].yufukuan>>per[k].intime>>per[k].outtime; //从磁盘文件读入数据
if(roomm[k].kongxian==0)
{
cout<<"房号 房间类型 房间价格"<<endl;
cout<<roomm[k].num<<"\t "<<roomm[k].fjlx<<"\t "<<roomm[k].price<<endl;
k++;
}
}
if(roomm[k-1].kongxian!=0)
{
cout<<"客房已满!\n";
return 1;
}
else return 0;
ldl.close();
}
void room::IDchaxun()//ID查询
{ room roomm[20];
person per[20];
ifstream ldl("客房信息.txt",ios::in);
if(!ldl)
{
cout<<"Can't open this file.\n";
exit(1);
}
int flag=0;
char n[20];
int k=0;
cout<<"请输入ID: ";
cin>>n;
while(! ldl.eof())
{
ldl>>roomm[k].num>>roomm[k].fjlx>>roomm[k].price>>roomm[k].kongxian
>>per[k].name>>per[k].ID
>>per[k].yufukuan>>per[k].intime>>per[k].outtime;
if(!strcmp(per[k].ID,n))
{
cout<<"房号 类型 姓名 预付款 空闲 入时间"<<endl;
cout<<roomm[k].num<<"\t"<<roomm[k].fjlx<<" "<<per[k].name<<" "
<<per[k].yufukuan<<" "<<roomm[k].kongxian<<" "<<per[k].intime<<endl;
flag=1;
}
k++;
}
if(per[k-1].ID!=n&&flag==0)cout<<"无此客人!"<<endl;
ldl.close();
}
void room::datechaxun()//日期查询
{ room roomm[20];
person per[20];
cout<<"请输入您要查询的日期:"<<endl;
int n,k=0,j=0;
int flag=0;
ifstream ldl("客房信息.txt",ios::in);
if(!ldl)
{
cout<<"Can't open this file.\n";
exit(1);
}
cin>>n;
while(! ldl.eof())
{
ldl>>roomm[k].num>>roomm[k].fjlx>>roomm[k].price>>roomm[k].kongxian
>>per[k].name>>per[k].ID
>>per[k].yufukuan>>per[k].intime>>per[k].outtime;
if (per[k].intime==n)
{
cout<<"房号 类型 姓名 预付款 空闲 入时间"<<endl;
cout<<roomm[k].num<<"\t"<<roomm[k].fjlx<<" "<<per[k].name<<" "
<<per[k].yufukuan<<" "<<roomm[k].kongxian<<" "<<per[k].intime<<endl;
flag=1;
}
k++;
}
if(per[k-1].intime!=n&&flag==0)cout<<"此日期无人入住!"<<endl;
ldl.close();
}
void room::liulan()//客房信息浏览
{
room roomm[20];
person per[20];
int i=0;
ifstream dfg("客房信息.txt",ios::in);
if(!dfg)
{
cout<<"Can't open this file.\n";
exit(1);
}
cout<<"房号 类型(A/B) 价格 空闲(0空,1有) 姓名 身份证 预付款 入时间 退时间"<<endl;
while (!dfg.eof ())
{
dfg>>roomm[i].num>>roomm[i].fjlx>>roomm[i].price>>roomm[i].kongxian>>per[i].name
>>per[i].ID>>per[i].yufukuan>>per[i].intime>>per[i].outtime;
cout<<roomm[i].num<<"\t"<<roomm[i].fjlx<<"\t"<<roomm[i].price
<<"\t"<<roomm[i].kongxian<<"\t "<<per[i].name<<" "<<per[i].ID
<<" "<<per[i].yufukuan<<"\t "<<per[i].intime
<<"\t "<<per[i].outtime;
cout<<endl;
i++;
}
dfg.close();
}
void room::kongxianfangjian()//空闲房间
{
room roomm[20];
person per[20];
ifstream infile("客房信息.txt",ios::in);
if(!infile)
{
cout<<"Can't open this file.\n";
exit(1);
}
int i=0;
cout<<"房间号 房间类型 房间价格"<<endl;
while(! infile.eof()) //eof()为假表示未遇到文件结束符
{
infile>>roomm[i].num>>roomm[i].fjlx>>roomm[i].price>>roomm[i].kongxian>>
per[i].name>>per[i].ID>>per[i].yufukuan>>per[i].intime>>per[i].outtime;
if(roomm[i].kongxian==0)
cout<<roomm[i].num<<" "<<roomm[i].fjlx<<" "<<roomm[i].price;
cout<<endl;
i++;
}
infile.close();
}
void room::informationxiugai()//信息修改
{
room roomm[20];
person per[20];
int c=0;
ifstream ld("客房信息.txt",ios::in);
if(!ld)
{
cout<<"Can't open this file.\n";
exit(1);
}
while(! ld.eof())
{
ld>>roomm[c].num>>roomm[c].fjlx>>roomm[c].price>>roomm[c].kongxian>>
per[c].name>>per[c].ID>>per[c].yufukuan>>per[c].intime>>per[c].outtime;
c++;
}
cout<<"请输入要修改的房间号:";
char b[5];
cin>>b;
int flag=0;
while(1)
{
for(int j=0;j<c;j++)
{
if(!strcmp(roomm[j].num,b))
{
flag=2;break;
}
if(j==c-1) cout<<"错误的房间号!\n";
}
if(flag==2)break;
cout<<"继续修改吗?(y/n):";
char c;
cin>>c;
while(1)
{
if(c=='Y'||c=='y')
{
cout<<"请输入要修改的房间号:";
cin>>b;break;
}
else if(c=='N'||c=='n')
{
flag=1;break;
}
else cout<<"错误!请注意选择!"<<endl;
cout<<"请输入(y/n):";
cin>>c;
}
if(flag==1)break;
}
for(int i=0;i<c;i++)
{
if(!strcmp(roomm[i].num,b))
{
cout<<"房间原信息为:"<<endl;
cout<<"房号 类型 价格 空闲(0空闲,1有人)"<<endl;
cout<<roomm[i].num<<"\t "<<roomm[i].fjlx<<"\t "<<roomm[i].price<<" \t\t "<<roomm[i].kongxian<<endl;
cout<<"请输入修改后的客房信息:"<<endl;
cout<<"房号 类型 价格 空闲"<<endl;
char g[5];
char f;
int h,d;
cin>>g>>f>>d>>h;
strcpy(roomm[i].num,g);
roomm[i].fjlx=f;
roomm[i].price=d;
roomm[i].kongxian=h;
}
}
ofstream xhh("客房信息.txt",ios::out);
if(!xhh)
{
cout<<"Can't open this file.\n";
exit(1);
}
for(int k=0;k<c;k++)
{
xhh<<endl<<roomm[k].num<<" "<<roomm[k].fjlx<<" "<<roomm[k].price<<" "
<<roomm[k].kongxian<<" "<<per[k].name<<" "<<per[k].ID<<" "
<<per[k].intime<<" "<<per[k].yufukuan<<" "<<per[k].ou
C语言 客房管理系统源代码
5星 · 超过95%的资源 需积分: 10 35 浏览量
2010-05-20
15:24:34
上传
评论 3
收藏 51KB RAR 举报
yeu2652696
- 粉丝: 1
- 资源: 3
最新资源
- 基于matlab开发的全面详解LTE:MATLAB建模、仿真与实现-simulink.rar
- 自动驾驶定位系列教程二:系统架构.pdf
- 整站程序8优技巧网-8ujq.rar
- 世界各个国家或地区国际域名缩写
- 基于matlab开发的根据rvm回归模型自己编的matlab程序.rar
- 基于matlab开发的该程序为国内一所大学编写的LTE链路层仿真程序,根据LTE标准协议编写的,很容易看懂.rar
- 高效C++学生成绩管理系统:教育技术+C++17编程+数据管理+教务自动化
- 搜索链接要广告分类系统 v2.0-yad20.rar
- 基于matlab开发的Tipping的相关向量机RVM的回归MATLAB程序,有英文注释,可以运行.rar
- 一个点击正反转程序实例,可实现案件电机正反转
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论2