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

📄 unitmainform.cpp

📁 使用C++Builder开发的常住人口管理系统
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        //新添的
        ShowMessage("该人信息已删除!");

        delete per;
    }
        
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnZZZAddClick(TObject *Sender)
{
   if (edtZZZName->Text.IsEmpty())
   {
       ShowMessage("名字不能为空!");
       return;
   }

   if(SysUtil::JudgeSfzID(edtZZZSfzID->Text))
    {
        //判断身份证是否存在

        //修改!!!!
        if((Global::SearchIndex(pCZRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
        {
           ShowMessage("此身份证号码已在常住及迁入记录中存在,请检查你的输入!");
           return ;
        }
        if((Global::SearchIndex(pQCRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
        {
           ShowMessage("此身份证号码已在迁出记录中存在,请检查你的输入!");
           return ;
        }
        if((Global::SearchIndex(pSWRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
        {
           ShowMessage("此身份证号码已在死亡记录中存在,请检查你的输入!");
           return ;
        }
        if((Global::SearchIndex(pZZRYHead,edtZZZSfzID->Text.c_str()))!=-1L)
        {
           ShowMessage("此身份证号码已在暂住记录中存在,请检查你的输入!");
           return ;
        }


        //判断数字是否合法


        if (!SysUtil::IsNumberString(edtZZZAge->Text))
        {
           ShowMessage("你输入的年龄不是一个合法的整数");
           return;
        }
        else
        {
           if (edtZZZAge->Text.ToInt()<1 || edtZZZAge->Text.ToInt() > 150)
           {
               ShowMessage("你输入的年龄不是一个有效的年龄段");
               return;
           }

        }

     //BUG
        int QRtime,birth;
        QRtime=DTZZZQianRuShiJian->DateTime.operator int();
        birth=DTZZZBirthday->DateTime.operator int();
        if (QRtime<birth)
        {
           ShowMessage("出生日期与迁入时间不匹配!");
           return ;
        }
     
        //添加新的索引节点
        UserIndex *pIndex=new UserIndex;
        strcpy(pIndex->SfzID,edtZZZSfzID->Text.c_str());
        pZZRYHead=Global::AddPerson(pZZRYHead,pIndex);
        //delete pIndex;//delete *pIndex

        //创建一个临时结构体
        PerInfo *per=new PerInfo;

        strcpy(per->Name,edtZZZName->Text.c_str());
        strcpy(per->MinZu,edtZZZMinZu->Text.c_str());
        strcpy(per->JiGuan,edtZZZJiGuan->Text.c_str());
        per->QianRuShiJian=DTZZZQianRuShiJian->DateTime.operator int();

        per->Sex=RGZZZSex->ItemIndex;
        per->Age=edtZZZAge->Text.ToInt();
        per->Birthday=DTZZZBirthday->DateTime.operator int();
        per->HunYin=comBxZZZHunYin->ItemIndex;

        strcpy(per->SfzID,edtZZZSfzID->Text.c_str());
        strcpy(per->QianRuDiDian,edtZZZAddress->Text.c_str());
        strcpy(per->QianRuYuanYin,edtZZZYuanYin->Text.c_str());
        per->ZhongDian=RGZZZZhongDian->ItemIndex;

        if (!Global::WritePerInfoToFile("ZZZPerson.db",pIndex->Index,per))
        {
           ShowMessage("你成功添加了一条信息!");
        }

        //刷新统计信息   新添的
        Global::AddJieGouMes(RenKouTJ,per->Age,-1,-1,2);

        delete per;
     }
        
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnZZZFindClick(TObject *Sender)
{
     if (SysUtil::JudgeSfzID(edtZZZSfzID->Text))
     {
        double index;
        //判断身份证是否存在

        if((index=Global::SearchIndex(pZZRYHead,edtZZZSfzID->Text.c_str()))==-1L)
        {
           ShowMessage("找不到你要的身份证号码,请检查你的输入!");
           return ;
        }

        //创建临时PERINFO
        PerInfo *per=new PerInfo;


        if (!Global::ReadPerInfoFromFile("ZZZPerson.db",index,per))
        {
             edtZZZName->Text=per->Name;
             edtZZZMinZu->Text=per->MinZu;
             edtZZZJiGuan->Text=per->JiGuan;
             DTZZZQianRuShiJian->DateTime=per->QianRuShiJian;

             RGZZZSex->ItemIndex=per->Sex;
             edtZZZAge->Text=per->Age;
             DTZZZBirthday->DateTime=per->Birthday;
             comBxZZZHunYin->ItemIndex=per->HunYin;

             edtZZZSfzID->Text=per->SfzID;
             edtZZZAddress->Text=per->QianRuDiDian;
             edtZZZYuanYin->Text=per->QianRuYuanYin;
             RGZZZZhongDian->ItemIndex=per->ZhongDian;
        }

        delete per;
        if(Admin)
           btnZZZDelete->Enabled=true;

     }        
}

//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnZZZDeleteClick(TObject *Sender)
{
    if (SysUtil::JudgeSfzID(edtZZZSfzID->Text))
    {

         double index ;             //新添的
        //判断身份证是否存在

        if((index=Global::SearchIndex(pZZRYHead,edtZZZSfzID->Text.c_str()))==-1L)
        {
           ShowMessage("找不到你要的身份证号码,请检查你的输入!");
           return ;
        }

        //创建一个临时结构体     新添的
        PerInfo *per1=new PerInfo;
        Global::ReadPerInfoFromFile("ZZZPerson.db",index,per1);
        Global::DeleteJieGouMes(RenKouTJ,per1->Age,-1,-1,2);
        pZZRYHead=Global::DeleteIndex(pZZRYHead,edtZZZSfzID->Text.c_str());
        //新添的
        ShowMessage("该人信息已删除!");
        delete per1;
    }

}

//---------------------------------------------------------------------------

void __fastcall TfrmMain::DTSWRYJLBirthdayChange(TObject *Sender)
{
    //年龄的判断
        AnsiString Dead,Birth;
      //  double p;
        Dead= DTSWRYJLDeadTime->DateTime;
        Birth=DTSWRYJLBirthday->DateTime;
       /*
        p=Dead.SubString(0,3).ToDouble() -Birth.SubString(0,3).ToDouble();
        if(p<0)
        {
           ShowMessage("出生日期与死亡时间不符!");
           return ;
        }
       */
        edtSWRYJLAge->Text=Dead.SubString(0,4).ToInt()-Birth.SubString(0,4).ToInt();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::DTSWRYJLDeadTimeChange(TObject *Sender)
{
     //年龄的判断
        AnsiString Dead,Birth;
        int p;
        Dead= DTSWRYJLDeadTime->DateTime;
        Birth=DTSWRYJLBirthday->DateTime;
        p=Dead.SubString(0,4).ToInt()-Birth.SubString(0,4).ToInt();
        if(p<0)
        {
           ShowMessage("出生日期与死亡时间不符!");
           return ;
        }
        edtSWRYJLAge->Text=p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnSWRYJLAddClick(TObject *Sender)
{
   if (edtSWRYJLName->Text.IsEmpty())
   {
       ShowMessage("名字不能为空!");
       return;
   }
   if(SysUtil::JudgeSfzID(edtSWRYJLSfzID->Text))
    {
        double index;
        //判断身份证是否存在

        if((index=Global::SearchIndex(pCZRYHead,edtSWRYJLSfzID->Text.c_str()))==-1L)
        {
           ShowMessage("找不到你要的身份证号码,请检查你的输入!");
           return ;
        }

        //判断死亡记录是否已存在该记录
        if((Global::SearchIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str()))!=-1L)
        {
           ShowMessage("此身份证号码已存到死亡记录里,请检查你的输入!");
           return ;
        }

        //判断数字是否合法

        if (!SysUtil::IsNumberString(edtSWRYJLAge->Text))
        {
           ShowMessage("你输入的年龄不是一个合法的整数");
           return;
        }
        else
        {
           if (edtSWRYJLAge->Text.ToInt()<1 || edtSWRYJLAge->Text.ToInt() > 150)
           {
               ShowMessage("你输入的年龄不是一个有效的年龄段");
               return;
           }

        }

        //创建一个临时结构体
        PerInfo *per1=new PerInfo;
        Global::ReadPerInfoFromFile("Person.db",index,per1);
        Global::DeleteJieGouMes(RenKouTJ,per1->Age,per1->WenHua,per1->ShouRu,per1->XingZhi);
        pCZRYHead=Global::DeleteIndex(pCZRYHead,edtSWRYJLSfzID->Text.c_str());
        delete per1;

        //添加新的索引节点
        UserIndex *pIndex=new UserIndex;
        strcpy(pIndex->SfzID,edtSWRYJLSfzID->Text.c_str());
        pSWRYHead=Global::AddPerson(pSWRYHead,pIndex);

        //创建一个临时结构体
        PerInfo *per=new PerInfo;
        strcpy(per->Name,edtSWRYJLName->Text.c_str());
        per->Sex=RGSWRYJLSex->ItemIndex;
        per->Birthday=DTSWRYJLBirthday->DateTime.operator int();
        strcpy(per->JiGuan,edtSWRYJLJiGuan->Text.c_str());
        strcpy(per->MinZu,edtSWRYJLMinZu->Text.c_str());

        per->ZengZhi=comBxSWRYJLZZMM->ItemIndex;
        per->Age=edtSWRYJLAge->Text.ToInt();
        per->HunYin=comBxSWRYJLHunYin->ItemIndex;
        per->WenHua=comBxSWRYJLWenHua->ItemIndex;
        per->SiWangShiJian=DTSWRYJLDeadTime->DateTime.operator double();

        strcpy(per->SfzID,edtSWRYJLSfzID->Text.c_str());
        strcpy(per->Address,edtSWRYJLAddress->Text.c_str());
        strcpy(per->SiWangYuanyin,edtSWRYJLQianChuYuanYin->Text.c_str());
        per->ZhongDian=RGSWRYJLZhongDian->ItemIndex;

        if (!Global::WritePerInfoToFile("DeadPerson.db",pIndex->Index,per))
        {
           ShowMessage("你成功添加了一条信息!");
        }
        delete per;
    }        
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnSWRYJLFindClick(TObject *Sender)
{
  if(SysUtil::JudgeSfzID(edtSWRYJLSfzID->Text))
    {
        double index;
        //判断死亡记录是否已存在该记录

        if((index=Global::SearchIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str()))==-1L)
        {
           ShowMessage("找不到你要的身份证号码,请检查你的输入!");
           return ;
        }

        //创建一个临时结构体
        PerInfo *per=new PerInfo;
        if (!Global::ReadPerInfoFromFile("DeadPerson.db",index,per))
        {
           edtSWRYJLName->Text=per->Name;
           RGSWRYJLSex->ItemIndex=per->Sex;
           DTSWRYJLBirthday->DateTime=per->Birthday;
           edtSWRYJLJiGuan->Text=per->JiGuan;
           edtSWRYJLMinZu->Text=per->MinZu;

           comBxSWRYJLZZMM->ItemIndex=per->ZengZhi;
           edtSWRYJLAge->Text=per->Age;
           comBxSWRYJLHunYin->ItemIndex=per->HunYin;
           comBxSWRYJLWenHua->ItemIndex=per->WenHua;
           DTSWRYJLDeadTime->DateTime=per->SiWangShiJian;

           edtSWRYJLSfzID->Text=per->SfzID;
           edtSWRYJLAddress->Text=per->Address;
           edtSWRYJLQianChuYuanYin->Text=per->SiWangYuanyin;
           RGSWRYJLZhongDian->ItemIndex=per->ZhongDian;

           delete per;
           if(Admin)
              btnSWRYJLDelete->Enabled=true;
        }
    }        
}
//---------------------------------------------------------------------------


void __fastcall TfrmMain::btnSWRYJLDeleteClick(TObject *Sender)
{
   if(SysUtil::JudgeSfzID(edtSWRYJLSfzID->Text))
    {
    
        //判断死亡记录是否已存在该记录

        if((Global::SearchIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str()))==-1L)
        {
           ShowMessage("找不到你要的身份证号码,请检查你的输入!");
           return ;
        }
        pSWRYHead=Global::DeleteIndex(pSWRYHead,edtSWRYJLSfzID->Text.c_str());
        //新添的
        ShowMessage("该人信息已删除!");

    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::DTQCRYJLBirthdayChange(TObject *Sender)
{
   //年龄 BUG
    AnsiString time,birth;
    time=Date();
    birth=DTQCRYJLBirthday->Date;

    edtQCRYJLAge->Text= time.SubString(0,4).ToInt()-birth.SubString(0,4).ToInt();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::btnQCRYJLAddClick(TObject *Sender)
{
    if (edtQCRYJLName->Text.IsEmpty())
   {
       ShowMessage("名字不能为空!");
       return;
   }
    if(SysUtil::JudgeSfzID(edtQCRYJLSfzID->Text))
    {
        double index;
        //判断身份证是否存在

        if((index=Global::SearchIndex(pCZRYHead,edtQCRYJLSfzID->Text.c_str()))==-1L)
        {
           ShowMessage("找不到你要的身份证号码,请检查你的输入!");
           return ;
        }

        //判断迁出记录是否已存在该记录
        if((Global::SearchIndex(pQCRYHead,edtQCRYJLSfzID->Text.c_str()))!=-1L)
        {
           ShowMessage("此身份证号码已存到迁出记录里,请检查你的输入!");
           return ;
        }

        //判断数字是否合法

        if (!SysUtil::IsNumberString(edtQCRYJLAge->Text))
        {
           ShowMessage("你输入的年龄不是一个合法的整数");
           return;
        }
        else
        {
           if (edtQCRYJLAge->Text.ToInt()<1 || edtQCRYJLAge->Text.ToInt() > 150)
           {
       

⌨️ 快捷键说明

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