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

📄 global.h

📁 使用C++Builder开发的常住人口管理系统
💻 H
📖 第 1 页 / 共 2 页
字号:
      RenKouJieGou RenKouTJChuShi={
                              {0,0,0,0},
                              {0,0,0,0,0},
                              {0,0,0,0},
                              {0,0,0}
                                         };
      fwrite(&RenKouTJChuShi,sizeof(RenKouJieGou),1,fp);
    }
    RenKouJieGou * RenKouTJ=new RenKouJieGou ;
    fseek(fp,0,0);
    fread(RenKouTJ,sizeof(RenKouJieGou),1,fp);
    fclose(fp);
    return RenKouTJ;
}

int Global::WriteRenKouTJToFile(char *fName,RenKouJieGou *RenKouTJ)
{
   FILE *fp;
   if((fp=fopen(fName,"rb+"))==NULL)        //不存在则新建一个
   {
     if((fp=fopen(fName,"wb+"))==NULL)
     {
       ShowMessage("创建文件失败!!");
       fclose(fp);
       return -1;
     }
   }
   fseek(fp,0,0);
   fwrite(RenKouTJ,sizeof(RenKouJieGou),1,fp);
   fclose(fp);
   return 0;
}


int Global::AddJieGouMes(RenKouJieGou *RenKouTJ,int Age,int WenHua,int ShouRu,int XingZhi)
{
    //年龄统计
    if(Age<18) RenKouTJ->NLJieGou[0]++;
    else if(Age<30) RenKouTJ->NLJieGou[1]++;
    else if(Age<50) RenKouTJ->NLJieGou[2]++;
    else RenKouTJ->NLJieGou[3]++;
    //文化统计
    if(WenHua==-1)  ;
    else RenKouTJ->WHJieGou[WenHua]++;
    //收入统计
    if(ShouRu==-1)  ;
    else RenKouTJ->SRJieGou[ShouRu]++;
    //性质统计
    if(XingZhi==-1)  ;
    else  RenKouTJ->XZJieGou[XingZhi]++;

    return 0;
}

int Global::DeleteJieGouMes(RenKouJieGou *RenKouTJ,int Age,int WenHua,int ShouRu,int XingZhi)
{
     //年龄统计
    if(Age<18) RenKouTJ->NLJieGou[0]--;
    else if(Age<30) RenKouTJ->NLJieGou[1]--;
    else if(Age<50) RenKouTJ->NLJieGou[2]--;
    else RenKouTJ->NLJieGou[3]--;
    //文化统计
    if(WenHua==-1)  ;
    else RenKouTJ->WHJieGou[WenHua]--;
    //收入统计
    if(ShouRu==-1)  ;
    else RenKouTJ->SRJieGou[ShouRu]--;
    //性质统计
    if(XingZhi==-1)  ;
    else  RenKouTJ->XZJieGou[XingZhi]--;

    return 0;
}

//---
int Global::WriteRoomToFile(char *filename,Room *room) //将房间信息保存到文件
{
   FILE *fp;
   if((fp=fopen(filename,"rb+"))==NULL)                 //不存在则新建一个
   {
     if((fp=fopen(filename,"wb+"))==NULL)
     {
       ShowMessage("创建文件失败!!");
       fclose(fp);
       return -1;
     }
   }
   fseek(fp,0L,2);
   fwrite(room,sizeof(Room),1,fp);
   fclose(fp);
   return 0;
}

int Global::WriteRoomGuestToFile(char *filename,RoomGuest *guest)//将房客信息保存到文件
{
   FILE *fp;
   if((fp=fopen(filename,"rb+"))==NULL)                 //不存在则新建一个
   {
     if((fp=fopen(filename,"wb+"))==NULL)
     {
       ShowMessage("创建文件失败!!");
       fclose(fp);
       return -1;
     }
   }
   fseek(fp,0L,2);
   fwrite(guest,sizeof(RoomGuest),1,fp);
   fclose(fp);
   return 0;
}

int Global::IsOrderedRoom(char *filename,int roomnum)//判断该房间号是否已经被订
{
   FILE *fp;
   if((fp=fopen(filename,"rb+"))==NULL)                 //不存在则新建一个
   {
     
       ShowMessage("打开文件失败!!");
       fclose(fp);
       return -1;
     
   }
   fseek(fp,0L,0);
   Room *room=new Room;
   while(1)
   {
      if( fread(room,sizeof(Room),1,fp) !=1)
         break;
      if(room->Number==roomnum)
      {
           if(room->Ordered==1)
           {
             //ShowMessage("该房间号已经被订!!");
             fclose(fp);
             return 0;
           }
           else
             break;
      }
   }
   delete room;
   fclose(fp);
   return -1;
}

Room* Global::FindSingleRoom(char *filename,int roomnum)//用房间号查找房间
{
   FILE *fp;
   if((fp=fopen(filename,"rb+"))==NULL)                 //
   {
     
       ShowMessage("打开文件失败!!");
       fclose(fp);
       return NULL;
     
   }
   fseek(fp,0L,0);
   Room *room=new Room;
   while(1)
   {
      if( fread(room,sizeof(Room),1,fp) !=1)
         break;
      if(room->Number==roomnum)
      {
        fclose(fp);
        return room;
      }
   }
   //delete room;
   fclose(fp);
   return NULL;
}


int Global::GetLastRoomNumber(char *filename)//得到最后的房间号
{
   FILE *fp;
   if((fp=fopen(filename,"rb+"))==NULL)                 //不存在则新建一个
   {
       if((fp=fopen(filename,"wb+"))==NULL)
      {
        ShowMessage("创建文件失败!!");
        fclose(fp);
        return 1000;
      }
     
   }
   fseek(fp,-1*sizeof(Room)*1L,2);
   Room *room=new Room;
   if( fread(room,sizeof(Room),1,fp) !=1)
   {

      delete room;
      fclose(fp);
      return 1000;
   }

   int num=room->Number;
   delete room;
   fclose(fp);
   return num;
}

int Global::SetOrderedRoom(char *filename,int roomnum,int order)//设置该房间号是否已经被订
{
   FILE *fp;
   if((fp=fopen(filename,"rb+"))==NULL)                 //不存在则新建一个
   {
     
      if((fp=fopen(filename,"wb+"))==NULL)
     {
       ShowMessage("创建文件失败!!");
       fclose(fp);
       return -1;
     }
     
   }
   fseek(fp,0L,0);
   Room *room=new Room;
   while(1)
   {
      if( fread(room,sizeof(Room),1,fp) !=1)
      {//健壮性?
         break;
      }
      if(room->Number==roomnum)
      {
           
         room->Ordered=order;
         fseek(fp,-1*1L*sizeof(Room),1);//回移文件指针 
         fwrite(room,sizeof(Room),1,fp);
         break;
      }
   }
   delete room;
   fclose(fp);
   return 0;
}

int Global::SetGuestRoomNumber(char *filename,char *id,int number)//设置该房间号是否已经被订
{
   FILE *fp;
   if((fp=fopen(filename,"rb+"))==NULL)                 //不存在则新建一个
   {
     
      if((fp=fopen(filename,"wb+"))==NULL)
     {
       ShowMessage("创建文件失败!!");
       fclose(fp);
       return -1;
     }
     
   }
   fseek(fp,0L,0);
   RoomGuest *guest=new RoomGuest;
   while(1)
   {
      if( fread(guest,sizeof(RoomGuest),1,fp) !=1)
         break;
      if(strcmp(guest->SfzID,id)==0)
      {
           
         guest->RoomNumber=number;
         fseek(fp,-1*1L*sizeof(RoomGuest),1);//回移文件指针 
         fwrite(guest,sizeof(RoomGuest),1,fp);
         break;
      }
   }
   delete guest;
   fclose(fp);
   return 0;
}

UserIndex *pCZRYHead,*pSWRYHead,*pQCRYHead,*pZZRYHead;//定义常住人员等信息的索引链表头指针
//UserIndex *pIndex;//定义节点
RenKouJieGou * RenKouTJ;//定义人员统计结构
bool Admin=false;


//-----------------
#endif

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -