⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 save.c

📁 一个多文件的hotel管理系统
💻 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 + -