职工管理系统

来源:互联网 发布:淘宝标题组合优化软件 编辑:程序博客网 时间:2024/04/28 07:20

//职工 

  #include<iostream.h>  
  #include<iomanip.h>  
  #include<string.h>  
  #include<fstream.h>  
  const   int   Maxb=10000;   //最多的职工  
    class Worker//职工类  
  {  
     int  tag;   //删除标记1:已删0:未删  
     int  number;   //工号  
     char  name[10];   //姓名  
     int age;//年龄
     char sex[2]; //性别
     char edu[10];//学历
     int price;//工资
     char address[50];//地址
     int phone;//电话
 
  public:  
  Worker()   {} //构造函数 
 
  int   getnumber()   {   return   number;   }//获取工号  
  int   gettag()   {   return   tag;   }   //获取删除标记  
  char *getsex()    {return sex;}       //获取姓名
  char *getedu()       {return edu;}               //获取学历
  char *getaddress() {return address;}               //获取地址
  int  getphone()  {return phone;}             //获取电话
  int  getprice() {return price;}           //获取工资
  int   getage()  {return age;}
  char *getname() {return name;}

  void   setname(char   na[])   //设置姓名  
  {  
     strcpy(name,na);  
  }  
  void setsex(char se[]) //设置姓名
  {
     strcpy(sex,se);
  }
  void setedu(char ed[])    //设置学历
  {
     strcpy(edu,ed);
  }
  void setaddress(char ad[])   //设置地址
  {
     strcpy(address,ad);
  }
 
  void   delworker()   {   tag=1;   }   //删除职工  
  void   addworker(int n,char *na,char *se,int ag,char *ed,int pr,char *addr,int pho)   //增加职工  
  {  
     tag=0;  
     number=n;
     age=ag;
     price=pr;
     phone=pho;
     strcpy(name,na);
     strcpy(sex,se);
     strcpy(edu,ed);
     strcpy(address,addr);
   }  
  void   disp()   //输出职工  
  { 
   cout   <<setw(10)<<number<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<age<<setw(10)<<edu<<setw(10)<<price<<setw(10)<<address<<setw(10)<<phone<<endl;  
  }  
  };  
  class   BDatabase   //职工库类  
  {  
  int top;   //职工记录指针  
  Worker worker[Maxb];   //职工记录  
  public:BDatabase()   //构造函数,将worker.txt读到worker[]中  
  {  
               Worker   b;  
               top=-1;  
               fstream   file("worker.txt",ios::binary);  
               while   (1)  
      {
       file.read((char   *)&b,sizeof(b));  
                if  (!file)   break;  
                    top++;  
                    worker[top]=b;  
      }  
              file.close();  
   }  
  void   clear()   //全删  
  {  
      int all_del;
   cout<<endl<<endl;
      cout<<"    注意!"<<endl;
      cout<<"    本次操作将删除资料库里的所有信息,您确定要继续吗?"<<endl<<endl;
      cout<<"    确定请输入1,取消请输入0: ";
      cin>>all_del;
      if(all_del==1)
   {
   top=-1;  
   cout<<endl<<endl;
      cout<<"      --------------------------"<<endl;
      cout<<"            已清空所有信息"<<endl;
      cout<<"      --------------------------"<<endl<<endl;
   }
  }
  //增加职工
  int addworker(int n,char *na,char *se,int ag,char *ed,int pr,char *addr,int pho)     
 {  
   Worker   *p=query(n);  
      if  (p==NULL)  
   {  
         top++;  
         worker[top].addworker(n,na,se,ag,ed,pr,addr,pho);  
         return   1;  
   }  
       return   0;  
  }  
  Worker   *query(int   workerid)   //查找职工  
  {  
  for(int i=0;i<=top;i++)  
     if(worker[i].getnumber()==workerid   &&  
     worker[i].gettag()==0)  
     return &worker[i];  
     return   NULL;  
  }  
  void   workerdata();   //职工库维护  
  void   disp()  
  {  
   cout<<setw(10)<<"工号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"年龄"<<setw(10)<<"学历"<<setw(10)<<"工资(元)"<<setw(10)<<"住址"<<setw(10)<<"电话"<<endl;
   for(int i=0;i<=top;i++)  
   if(worker[i].gettag()==0)  
   worker[i].disp();  
  }  
  ~BDatabase()   //析构函数,将worker[]写入worker.txt文件中  
  {  
   fstream   file("worker.txt",ios::binary);  
      for(int i=0;i<=top;i++)  
      if(worker[i].gettag()==0)  
      file.write((char*)&worker[i],sizeof(worker[i]));  
      file.close();  
  }  
  };  
 void help()
{
  cout<<endl<<endl;
  cout<<"      *---------------------------------------------*"<<endl;
  cout<<"      -                                             -"<<endl;
  cout<<"      -              本软件简单实用                  -"<<endl;
  cout<<"      -        按每一步的提示进行操作即可。         -"<<endl;
  cout<<"      -                                             -"<<endl;
  cout<<"      *---------------------------------------------*"<<endl<<endl;
}
  void menu()
  {
  cout<<endl<<endl;
  cout<<"                      * * * * * * * * * * * *"<<endl;
  cout<<"                      *     一 添加职工     *"<<endl;
  cout<<"                      *     二 修改信息     *"<<endl;
  cout<<"                      *     三 逐个删除     *"<<endl;
  cout<<"                      *     四 查询信息     *"<<endl;
  cout<<"                      *     五 信息显示     *"<<endl;
  cout<<"                      *     六 全部删除     *"<<endl;
  cout<<"                      *     七 使用帮助     *"<<endl;
  cout<<"                      *     八 退出系统     *"<<endl;
  cout<<"                      * * * * * * * * * * * *"<<endl<<endl;
  }
  void   BDatabase::workerdata()  
  {  
   int choice=1;  
      int choice2=1;
      int workerid;
      char bname[10];  
      char bsex[2];
      int bage;
      char bedu[10];
      char baddress[50];
      int bphone;
      int bprice;
      Worker *b;  
      while(choice!=8)
   {
          menu();
    //cout<<endl<<"职工管理"<<endl<<"1:新增职工  2:修改  3:删除职工  4:查询职工信息  5:显示  6:全删  0:退出=>";  
          //cin>>choice; 
          cout<<"请选择你要进行的操作";
    cin>>choice;
          while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=7&&choice!=8&&choice!=8)
     {
      cout<<endl<<"   ** 您输入的编号在菜单里不存在,请重新输入 **"<<'/a'<<endl<<endl;
                  cout<<"   请选择您需要的操作:";
                  cin>>choice;
     }
    switch(choice)  
    {        
    case 1:
       while(choice==1)
    {
     //system("cls");
                    cout<<endl;
                    cout<<"   输入工号:";  
                    cin>>   workerid;  
                    cout<<"   输入姓名:";  
                    cin>>   bname;  
                    cout<<"   输入性别:";
                    cin>>bsex;
                    cout<<"   输入年龄:";
                    cin>>bage;
                    cout<<"   输入学历:";
                    cin>>bedu;
                    cout<<"   输入月工资:";
                    cin>>bprice;
                    cout<<"   输入住址:";
                    cin>>baddress;
                    cout<<"   输入电话:";
                    cin>>bphone;
                    addworker(workerid,bname,bsex,bage,bedu,bprice,baddress,bphone); 
                    cout<<endl<<"     "<<"输入1继续添加,输入2返回菜单:";
                    cin>>choice;
                    if(choice==1)
     {
      //system("cls");
                        cout<<endl;
                        cout<<"   输入工号:";  
                        cin>>   workerid;  
                        cout<<"   输入姓名:";  
                        cin>>   bname;  
                        cout<<"   输入性别:";
                        cin>>bsex;
                        cout<<"   输入年龄:";
                        cin>>bage;
                        cout<<"   输入学历:";
                        cin>>bedu;
                        cout<<"   输入月工资:";
                        cin>>bprice;
                        cout<<"   输入住址:";
                        cin>>baddress;
                        cout<<"   输入电话:";
                        cin>>bphone;
                        addworker(workerid,bname,bsex,bage,bedu,bprice,baddress,bphone); 
                        cout<<endl<<"     "<<"输入1继续添加,输入2返回菜单:";
                        cin>>choice;

     }
                    if(choice==2)
     {
                        //system("cls");
                        menu();         
                        cout<<"   请选择您需要的操作:";
                        cin>>choice;
     }
                    if(choice!=1&&choice!=2)
     {
                        cout<<endl<<"      <您的输入有误>"<<'/a'<<endl;
                        cout<<endl<<"      返回菜单请输入1 :";
                        cin>>choice;
     }
    }
              break;  
          case 2:  
     cout<<   "   输入工号:";  
              cin>>workerid;  
              b=query(workerid);  
              if(b==NULL)  
     {  
      cout<<   "   该职工不存在"   <<   endl;  
                  break;  
     }  
              cout<<"请输入要更改的:1姓名 2性别 3学历 4住址  0退出";
              cin>>choice2;
    switch(choice2)
 {
  case 1:
   cout<<   "   输入新的姓名:";   //修改职工名
      cin>>  bname;  
      b->setname(bname);  
      break;
  case 2:
   cout<<"输入新的性别:";          //修改职工性别
      cin>>bsex;
      b->setsex(bsex);
      break;
  case 3:
      cout<<"输入新的学历:";        //修改职工的学历
      cin>>bedu;
      b->setedu(bedu);
      break;
  case 4:
      cout<<"输入新的地址:";        //修改职工的工资
      cin>>baddress;
      b->setaddress(baddress);
      break;
 }
  break;  
  case 3:  
      cout<<   "   输入工号:";  
      cin>>workerid;  
      b=query(workerid);  
      if(b==NULL)  
   {  
   cout<<   "   该职工不存在"   <<   endl;  
      break;  
   }  
      b->delworker();  
      break;  
  case 4:  
      cout<<"   输入工号:";   //按工号查询
      cin>>workerid;  
      cout<<setw(10)<<"工号"<<setw(10)<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"年龄"<<setw(10)<<"学历"<<setw(10)<<"工资"<<setw(10)<<"住址"<<setw(10)<<"电话"<<endl;
      b=query(workerid);  
      if(b==NULL)  
   {  
    cout<<   "   该职工不存在"   <<   endl;  
          break;  
   }  
      b->disp();
      break;  
  case 5:  
      disp();  
      break;  
  case 6:  
      clear();  
      break;
  case 7:
   help();
    } 
     }
  cout<<"退出职工管理"<<endl<<endl;
 };  
 
  void main()  
  {  
   int choice;
   BDatabase   WorkerDB;  
      Worker  *b;  
       
 cout<<"       **************************************************************     "<<endl;
    cout<<endl;
    cout<<"                ★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<<endl;
    cout<<"                ☆                                  ☆"<<endl;
    cout<<"                ☆                                  ☆"<<endl;
    cout<<"                ★   ★☆欢迎使用职工管理系统☆★   ★"<<endl;
    cout<<"                ☆                                  ☆"<<endl;
    cout<<"                ☆                                  ☆"<<endl;
    cout<<"                ★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<<endl;
    //cout<<endl;
 cout<<endl;
 cout<<"      ***************************************************************     "<<endl;
 //cout<<                         "输入0进入主菜单";
 //cin>>choice;
    /*if(choice==0)
  menu();
 else
        cout<<endl<<"---输入有误---"<<'/a'<<endl;
      cout<<"    请重新输入:";
      //cin>>choice;*/
    
 WorkerDB.workerdata();  
   }  
   

原创粉丝点击