|
|
#include<1room.h>
|
|
|
//保存函数
|
|
|
|
|
|
int saving()
|
|
|
|
|
|
{
|
|
|
|
|
|
FILE *fp;
|
|
|
int i;
|
|
|
char str;
|
|
|
|
|
|
printf("是否要保存修改?(Y OR N)\n");
|
|
|
scanf("%s",&str);
|
|
|
while(1)
|
|
|
{
|
|
|
if(str=='y'||str=='Y')
|
|
|
break;
|
|
|
else if(str=='n'||str=='N')
|
|
|
return 0;
|
|
|
else
|
|
|
printf("请重新输入:");
|
|
|
scanf("%s",&str);
|
|
|
}
|
|
|
|
|
|
fp=fopen("a","rb+");
|
|
|
|
|
|
fwrite(&inf,sizeof(inf),1,fp);
|
|
|
|
|
|
fclose(fp);
|
|
|
|
|
|
}
|
|
|
|
|
|
//读取函数
|
|
|
int loading()
|
|
|
{
|
|
|
FILE *fp;
|
|
|
int i;
|
|
|
fp=fopen("a","rb");
|
|
|
|
|
|
fread(&inf,sizeof(inf),1,fp);
|
|
|
fclose(fp);
|
|
|
}
|
|
|
//修改函数
|
|
|
int change1()
|
|
|
{
|
|
|
system("cls");
|
|
|
int m;
|
|
|
printf("请选择所要执行的操作\n");
|
|
|
printf("1.全局查询信息\n");
|
|
|
printf("2.单个查询信息\n");
|
|
|
printf("3.返回\n");
|
|
|
scanf("%d",&m);
|
|
|
while(1)
|
|
|
{
|
|
|
switch(m)
|
|
|
{
|
|
|
case 1:query_r();return 0;
|
|
|
case 2:query_o();return 0;
|
|
|
case 3:return 0;
|
|
|
}
|
|
|
printf("请重新输入:");
|
|
|
scanf("%d",&m);
|
|
|
}return 0;
|
|
|
}
|
|
|
//查询信息函数
|
|
|
void query_r()
|
|
|
{
|
|
|
system("cls");
|
|
|
FILE *fp;int i;
|
|
|
loading();
|
|
|
if(qty==0)
|
|
|
printf("请新建房间信息\n");
|
|
|
|
|
|
else
|
|
|
{
|
|
|
printf("房间号 单人or双人 房间类型 是否已入住 入住时间\n");
|
|
|
for(i=0;i<qty;i++)
|
|
|
printf("%s %s %s %s %d %d %d\n",inf[i].num,inf[i].human,inf[i].kind,inf[i].inout,inf[i].time[0],inf[i].time[1],inf[i].time[2]);
|
|
|
printf("共有%d条记录\n",qty);
|
|
|
}
|
|
|
printf("按任意键返回");
|
|
|
}
|
|
|
|
|
|
|
|
|
void query_o()//单个查询
|
|
|
{
|
|
|
system("cls");
|
|
|
char str[5];
|
|
|
int i;
|
|
|
printf("请输入需要查询的房间:\n");
|
|
|
scanf("%s",&str);
|
|
|
system("cls");
|
|
|
loading();
|
|
|
for(i=0;i<qty;i++)
|
|
|
{
|
|
|
if(strcmp(inf[i].num,str)==0)
|
|
|
{printf("房间号 单人or双人 房间类型 是否已入住 入住时间\n");
|
|
|
printf("%s %s %s %s %d %d %d\n",inf[i].num,inf[i].human,inf[i].kind,inf[i].inout,inf[i].time[0],inf[i].time[1],inf[i].time[2]);
|
|
|
}
|
|
|
}printf("按任意键返回");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
//登记入住
|
|
|
void register_()
|
|
|
{
|
|
|
system("cls");
|
|
|
char str[5];
|
|
|
char str1[]="已入住";
|
|
|
FILE *fp;
|
|
|
int i;
|
|
|
printf("请选择入住的房间\n");
|
|
|
scanf("%s",&str);
|
|
|
loading();
|
|
|
for(i=0;i<qty;i++)
|
|
|
{
|
|
|
if(strcmp(inf[i].num,str)==0)
|
|
|
{
|
|
|
strcpy(inf[i].inout,str1);
|
|
|
xitongshijian(&inf[i].time[0],&inf[i].time[1],&inf[i].time[2]);
|
|
|
}
|
|
|
}
|
|
|
saving();
|
|
|
}
|
|
|
//修改函数
|
|
|
int change2()
|
|
|
{
|
|
|
system("cls");
|
|
|
int m;
|
|
|
printf("请选择所要执行的操作\n");
|
|
|
printf("1.新建信息\n");
|
|
|
printf("2.删除信息\n");
|
|
|
printf("3.返回\n");
|
|
|
scanf("%d",&m);
|
|
|
while(1)
|
|
|
{
|
|
|
switch(m)
|
|
|
{
|
|
|
case 1:setting();return 0;
|
|
|
case 2:delete_();return 0;
|
|
|
case 3:return 0;
|
|
|
}
|
|
|
printf("请重新输入:");
|
|
|
scanf("%d",&m);
|
|
|
}return 0;
|
|
|
}
|
|
|
void setting() //信息新建函数
|
|
|
{
|
|
|
system("cls");
|
|
|
int n,i,j; char str; FILE *fp;
|
|
|
if(qty==0)
|
|
|
printf("无房间信息,请新建\n");
|
|
|
printf("最多可建立100条记录");
|
|
|
while(1)
|
|
|
{
|
|
|
n=0;
|
|
|
printf("请问您是否要建立新记录(y or n)?");
|
|
|
scanf("%s",&str);
|
|
|
if(str=='n'||str=='N')
|
|
|
break;
|
|
|
if(str=='y'||str=='Y')
|
|
|
{
|
|
|
system("cls");
|
|
|
printf("请问您需要新建多少条记录?\n");
|
|
|
scanf("%d",&n);
|
|
|
|
|
|
system("cls");
|
|
|
if((qty+n)>100)
|
|
|
{
|
|
|
printf("发生错误,请重新选择");
|
|
|
continue; }
|
|
|
for(i=qty;i<(n+qty);i++)
|
|
|
{
|
|
|
|
|
|
scanf("%s %s %s %s %d %d %d",inf[i].num,inf[i].human,inf[i].kind,inf[i].inout,&inf[i].time[0],&inf[i].time[1],&inf[i].time[2]);
|
|
|
|
|
|
}
|
|
|
if(qty==0)
|
|
|
{
|
|
|
fp=fopen("a","wb");
|
|
|
fclose(fp);}
|
|
|
if(qty!=0)
|
|
|
saving();
|
|
|
|
|
|
qty=qty+n;
|
|
|
printf("现在有%d条记录",qty); } }}
|
|
|
|
|
|
//删除函数
|
|
|
void delete_(){
|
|
|
system("cls");
|
|
|
int i,j=0;char str1[5],str2[5];
|
|
|
if(qty==0)
|
|
|
{
|
|
|
printf("没有可删除的记录\n");
|
|
|
|
|
|
}
|
|
|
while(1)
|
|
|
{
|
|
|
printf("请输入所要删除信息的房间号:");
|
|
|
scanf("%s",&str1);
|
|
|
loading();
|
|
|
for(i=0;i<qty;i++)
|
|
|
{
|
|
|
if(strcmp(inf[i].num,str1)==0)
|
|
|
for(j=i;j<qty;j++)
|
|
|
{
|
|
|
inf[j]=inf[j+1];
|
|
|
|
|
|
}}qty--;
|
|
|
printf("删除成功\n");
|
|
|
printf("是否继续删除(y or n)\n");
|
|
|
scanf("%s",&str2);
|
|
|
if(str2[0]=='n'||str2[0]=='N')
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
saving();
|
|
|
}
|
|
|
int xitongshijian(int *i,int *o,int *l)
|
|
|
{
|
|
|
time_t timep,Tim;
|
|
|
struct tm *p;
|
|
|
time(&timep);
|
|
|
p = localtime(&timep);
|
|
|
int Year = 1900 + p->tm_year;
|
|
|
int Month = 1 + p->tm_mon;
|
|
|
int Day = p->tm_mday;
|
|
|
int Hour = p->tm_hour;
|
|
|
int Minute = p->tm_min;
|
|
|
int Second = p->tm_sec;
|
|
|
char year[20];
|
|
|
char month[20];
|
|
|
char day[20];
|
|
|
char hour[20];
|
|
|
char minute[20];
|
|
|
char second[20];
|
|
|
*i=Month;*o=Day;*l=Hour;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
int feiyongchaxun()
|
|
|
{
|
|
|
system("cls");
|
|
|
printf("费用查询\n请输入房间号并按下回车\n");
|
|
|
int shijiancha_ri,shijiancha_xiaoshi;
|
|
|
char room_number[10] ;
|
|
|
double feiyong;
|
|
|
scanf("%s",room_number);
|
|
|
shijianshu(room_number,&shijiancha_ri,&shijiancha_xiaoshi);
|
|
|
feiyong=feiyongjisuan(room_number,shijiancha_ri,shijiancha_xiaoshi);
|
|
|
printf("%.2lf",feiyong);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
void shijianshu(char fangjianhao[10],int *p,int *o)
|
|
|
{
|
|
|
int yue2,ri2,xiaoshi2,shijian2[3],shijiancha_ri,shijiancha_xiaoshi,i;
|
|
|
xitongshijian(&yue2,&ri2,&xiaoshi2);
|
|
|
shijian2[0]=yue2;shijian2[1]=ri2;shijian2[2]=xiaoshi2;
|
|
|
loading();
|
|
|
for(i=0;i<qty;i++)
|
|
|
{
|
|
|
if(strcmp(inf[i].num,fangjianhao)==0)
|
|
|
break;
|
|
|
}
|
|
|
//fp=fopen("a","r+");
|
|
|
/*while(fread(&xiugai,sizeof(inf),1,fp)==1)
|
|
|
{
|
|
|
if(strcmp(xiugai.num,fangjianhao)==0)
|
|
|
{
|
|
|
int yue1,ri1,xiaoshi1,shijian1[3];
|
|
|
shijian1=xiugai.time;
|
|
|
yue1=shijian1[0];ri1=shijian1[1];xiaoshi1=shijian1[2];
|
|
|
}
|
|
|
}*/
|
|
|
printf("请手动算出时间差\n");
|
|
|
printf("入住时间:%d、%d、%d\n查询时间:%d、%d、%d\n",inf[i].time[0],inf[i].time[1],inf[i].time[2],yue2,ri2,xiaoshi2);
|
|
|
printf("请输入时间差\n\n第一次输入日,第二次输入小时\n\n按日计算则小时输入0,按小时计算则日输入0\n\n");
|
|
|
printf("请输入日: ");
|
|
|
scanf("%d",&shijiancha_ri);
|
|
|
printf("\n请输入小时: ");
|
|
|
scanf("%d",&shijiancha_xiaoshi);
|
|
|
*p=shijiancha_ri;*o=shijiancha_xiaoshi;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int feiyongjisuan(char fangjianhao[10],int shijiancha_ri,int shijiancha_xiaoshi)
|
|
|
{
|
|
|
int feiyong,i;
|
|
|
/*fp=fopen("a","r+");
|
|
|
while(fread(&xiugai,sizeof(inf),1,fp)==1)
|
|
|
{
|
|
|
if(strcmp(xiugai.num,fangjianhao)==0)
|
|
|
{
|
|
|
printf("%s",xiugai.kind);
|
|
|
}
|
|
|
}*/
|
|
|
loading();
|
|
|
for(i=0;i<qty;i++)
|
|
|
{
|
|
|
if(strcmp(inf[i].num,fangjianhao)==0)
|
|
|
break;
|
|
|
}
|
|
|
if(inf[i].kind[0]=='p')
|
|
|
feiyong=shijiancha_xiaoshi*10+shijiancha_ri*100;
|
|
|
else feiyong=shijiancha_xiaoshi*100+shijiancha_ri*700;
|
|
|
return feiyong;
|
|
|
}
|
|
|
|
|
|
void reroom()
|
|
|
{
|
|
|
system("cls");
|
|
|
char str[5];
|
|
|
char str1[]="未入住";
|
|
|
char str3[30];
|
|
|
FILE *fp;
|
|
|
int i;
|
|
|
printf("请选择要退的房间\n");
|
|
|
scanf("%s",&str);
|
|
|
loading();
|
|
|
for(i=0;i<qty;i++)
|
|
|
{
|
|
|
if(strcmp(inf[i].num,str)==0)
|
|
|
{
|
|
|
strcpy(inf[i].inout,str1);
|
|
|
}
|
|
|
|
|
|
}saving();
|
|
|
}
|
|
|
|