📄 save.c
字号:
#if defined(_cplusplus)||defined(c_plusplus)
extern "C"
{
#endif
#include"Hotel.h"
extern CUSTOMER *customerLink;
extern ROOM *roomLink;
/*备份文件*/
int BackupFile(char *filename);
/*备份*/
int Backup();
/*保存客户信息*/
int SaveCustomer();
/*保存客房信息*/
int SaveRoom();
/*保存*/
int Save();
/*
**备份文件
*/
int BackupFile(char *filename)
{
char backfile[256];
char buffer[256];
DWORD n;
FILE *pfile=NULL;
FILE *pback=NULL;
if(0!=access((char*)filename,0))
{
return SUCCESS;
}
/*备份文件名*/
strcpy(backfile,filename);
strcat(bsckfile,".bak");
if(NULL==(pback=fopen(backfile,"wb"))||NULL==(pfile=fopen(filename,"rb")))
{
return ERROR;
}
while(n=fread(buffer,1,sizeof(buffer),pfile))
{
if(n!=fwrite(buffer,1,n,pback))
{
return ERROR;
}
}
if(0==fclose(pfile)&&0==fclose(pback))
{
return SUCCESS;
}
return ERROR;
}
/*
**备份
*/
int SaveCustomer()
{
return BackupFile(ROOM_FILE)|BackupFile(CUSTOMER_FILE);
}
/*
**保存客户信息
*/
INT32 SaveCustomer()
{
CUSTOMER *pcustomer=NULL;
FILE *pfile=NULL;
CUSTOMER cstore;
pcustomer=customerLink;
pfile=fopen(CUSTOMER_FILE,"wb");
if(NULL==pfile)
{
printf("Cannot open file(%s).",CUSTOMER_FILE);
return ERROR;
}
while(NULL!=pcustomer)
{
strcpy(cstore.name, pcustomer->name);
strcpy(cstore.id, pcustomer->id);
strcpy(cstore.date, pcustomer->date);
cstore.days=pcustomer->days;
if(1!=fwrite(&cstore,sizeof(cstore),1,pfile))
{
printf("Cannot write file (%s).",CUSTOMER_FILE);
return ERROR;
}
pcustomer=pcustomer->next;
}
if(0!=fclose(pfile))
{
printf("Cannot close file (%s).",CUSTOMER_FILE);
return ERROR;
}
return SUCCESS;
}
/*
**保存客房信息
*/
int SaveRoom()
{
int i;
ROOM *proom=NULL;
FILE *pfile=NULL;
ROOMSTO rstore;
if(NULL=(pfile=fopen(ROOM_FILE,"wb")))
{
printf("Cannot open file (%s).",ROOM_FILE);
return ERROR;
}
proom=roomLink;
while(NULL!=proom)
{
strcpy(rstore.no,proom->no);
rstore.type=proom->type;
rstore.status=proom->status;
for(i=0;i<rstore.type;i++)
{
if(NULL!=proom->pcustomer[i])
{
strcpy(rstore.cid[i],proom->pcustomer[i]->id);
}
}
if(1!=fwrite(&rstore,sizeof(rstore),1,pfile))
{
printf("Cannot write file (%s).",ROOM_FILE);
return ERROR;
}
return SUCCESS;
}
}
/*
**保存
*/
int Save()
{
Backup();
if(0!=access((char*)DATA_DIR,0))
{
if(0!=mkdir((char*)DATA_DIR))
{
return ERROR;
}
}
if(SUCCESS!=SaveRoom()||SUCCESS!=SaveCustomer())
{
return ERROR;
}
return SUCCESS;
}
#if defined(_cplusplus)||defined(c_plusplus)
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -