#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
int t,number,mt,st,smt,tt;
class zhigong
{
public:
void setnumber(int n) {number=n;}
void setname(char *na) {strcpy(name,na);}
void setbumen(char *bu) {strcpy(bumen,bu);}
int getnumber() {return number; }
char *getname() {return name; }
char *getbumen() {return bumen;}
void setzhigong()
{
cout<<"請輸入職工所在部門:"; cin>>bumen;
cout<<"請輸入職工編號:"; cin>>number;
cout<<"請輸入職工姓名:"; cin>>name;
}
private:
int number;
char name[20];
char bumen[20];
};
class gongzi
{
public:
void setgangwei(double g) {gangwei=g;}
void setjintie(double j) {jintie=j;}
void setyiliao(double y) {yiliao=y;}
void setshuidian(double s) {shuidian=s;}
double getgangwei() {return gangwei;}
double getjintie() {return jintie;}
double getyilao() {return yiliao;}
double getshuidian() {return shuidian;}
double getyingfa() {return (gangwei+jintie);}
double getshifa() {return (gangwei+jintie-shuidian-yiliao);}
void setgongzi()
{
cout<<"請輸入所得崗位工資:"; cin>>gangwei;
cout<<"請輸入所得崗位津貼:"; cin>>jintie;
cout<<"請輸入所需繳納的水電費:"; cin>>shuidian;
cout<<"請輸入所需要交納的醫療保險費:"; cin>>yiliao;
}
private:
double gangwei;
double jintie;
double yiliao;
double shuidian;
};
class zhigongzi:public zhigong,public gongzi
{
public:
void setzhigongzi()
{
setzhigong();
setgongzi();
}
};
void menu()
{
cout<<"***********************************************************************"<<endl;
cout<<"--------------------------職工工資管理系統-----------------------------"<<endl;
cout<<"***********************************************************************"<<endl;
cout<<"** 1. 輸入職工資訊 **"<<endl;
cout<<"** 2. 修改職工工資 **"<<endl;
cout<<"** 3. 添加職工資訊 **"<<endl;
cout<<"** 4. 洗掉職工資訊 **"<<endl;
cout<<"** 5. 查詢職工工資 **"<<endl;
cout<<"** 6. 顯示職工資訊 **"<<endl;
cout<<"** 7. 顯示職工人數 **"<<endl;
cout<<"** 8. 退出系統 **"<<endl;
cout<<"***********************************************************************"<<endl;
}
int i=-1;
int shuru(zhigongzi z[])
{
ofstream ofile("D:\\zhigong.dat",ios::binary);
if(!ofile)
{
cout<<"檔案夾不能打開."<<endl;
return 0;
}
while(1)
{
int p=1;
while(p==1)
{
i++;
z[i].setzhigongzi();
ofile.write((char*)&z[i],sizeof(zhigongzi));
cout<<"輸入成功!"<<endl;
cout<<"繼續輸入請按1,退出請按0:";
cin>>p;
}
return i+1;
}
ofile.close();
}
double gangwei;
double jintie;
double yiliao;
double shuidian;
char name[20];
int xiugai(zhigongzi z[],int m)
{
ofstream ofile("D:\\zhigong.dat",ios::binary);
int flag;
int n=1;
while(n==1)
{
cout<<"請輸入要修改資訊的職工號:";
cin>>number;
flag=0;
int a;
for(int i=0;i<m;i++)
if(number==z[i].getnumber())
do{
cout<<"請選擇要修改的資訊:"<<endl;
cout<<"***********************************************"<<endl;
cout<<"****** 1.修改崗位工資 ******"<<endl;
cout<<"****** 2.修改崗位津貼 ******"<<endl;
cout<<"****** 3.修改應交納水電費 ******"<<endl;
cout<<"****** 4.修改應交納醫療保險費用 ******"<<endl;
cout<<"***********************************************"<<endl;
cout<<"請選擇對應數字序號進行操作:";
cin>>a;
if(a==1)
{
cout<<"請輸入新的崗位工資:";
cin>>gangwei;
z[i].setgangwei(gangwei);
}
if(a==2)
{
cout<<"請輸入新的崗位津貼:";
cin>>jintie;
z[i].setjintie(jintie);
}
if(a==3)
{
cout<<"請輸入新的水電費:";
cin>>shuidian;
z[i].setshuidian(shuidian);
}
if(a==4)
{
cout<<"請輸入新的醫療保險費用:";
cin>>yiliao;
z[i].setyiliao(yiliao);
}
ofile.write((char*)&z[i],sizeof(zhigongzi));
flag=1;
}while(a<1||a>4);
if(flag==0)
{
cout<<"查詢不到該工號的職工,按0退出"<<endl;
cin>>n;
}
else
{
cout<<"繼續修改請按1 / 退出請按0:";
cin>>n;
}
}
cout<<endl;
ofile.close();
return 0;
}
int tianjia(zhigongzi z[],int m)
{
int n=1;
while(n==1)
{
cout<<"請輸入要添加的新職工資訊"<<endl;
z[t].setzhigongzi();
cout<<"添加成功!";
t++;
cout<<"是否繼續添加,繼續請按1 / 退出請按0:"<<endl;
cin>>n;
}
return t;
}
void shanchu(zhigongzi z[],int m)
{
int flag;
int n=1;
while(n==1)
{
cout<<"請輸入要洗掉的職工的職工號 :";
cin>>number; flag=0;
for(int i=0;i<t;i++)
if(number==z[i].getnumber())
{ int k;k=i;
for(k;k<t;k++)
{ z[k]=z[k+1];t=t-1; }
flag=1;
t--;
cout<<"*****洗掉成功*****"<<endl;
}
if(flag==0)
{
cout<<"查詢不到該工號的職工,無法洗掉按0退出"<<endl;
cin>>n;
}
else
{
cout<<"繼續洗掉請按1 / 退出請按0:";
cin>>n;
}
}
}
void chaxun(zhigongzi z[],int m)
{
cout<<"-----------------[1] 按姓名查詢-------------------"<<endl;
cout<<"-----------------[2] 按工號查詢-------------------"<<endl;
cout<<"---請選擇查詢的方式(輸入對應方式的序號1或2)---:";
int k;
cin>>k;
if(k==1)
{
int u[10];
int n=1;
while(n==1)
{
cout<<"請輸入要查詢的職工的姓名:";
cin>>name;
int j=0;
for(int i=0;i<t;i++)
if(strcmp(name,z[i].getname())==0)
{
u[j]=i;j++;
}
if(j==0)
{
cout<<"沒有你要查詢的職工名字"<<endl;
cout<<"是否繼續查詢,繼續請按1 / 退出按0:"<<endl;
cin>>n;
}
for(int b=0;b<j;b++)
{
if(j<2)
{
i=u[b];
cout<<"職工號"<<" "<<"姓名"<<" "<<"所屬部門"<<" "<<"崗位工資"<<" "<<"崗位津貼"<<" "<<"水電費"<<" "<<"醫療保險"<<" "<<"應發工資"<<" "<<"實發工資"<<endl;
cout<<z[i].getnumber()<<"\t"<<z[i].getname()<<"\t"<<z[i].getbumen()<<"\t"
<<z[i].getgangwei()<<"\t"<<z[i].getjintie()<<"\t"<<z[i].getshuidian()<<"\t"
<<z[i].getyilao()<<"\t"<<z[i].getyingfa()<<"\t"<<z[i].getshifa()<<endl;
}
else
i=u[b];
}
}
}
if(k==2)
{
int flag;
int n=1;
while(n==1)
{
cout<<"請輸入要查詢的職工的職工號:";
cin>>number; flag=0;
for(int i=0;i<t;i++)
if(number==z[i].getnumber())
{
cout<<"職工號"<<" "<<"姓名"<<" "<<"所屬部門"<<" "<<"崗位工資"<<" "<<"崗位津貼"<<" "<<"水電費"<<" "<<"醫療保險"<<" "<<"應發工資"<<" "<<"實發工資"<<endl;
cout<<z[i].getnumber()<<"\t"<<z[i].getname()<<"\t"<<z[i].getbumen()<<"\t"
<<z[i].getgangwei()<<"\t"<<z[i].getjintie()<<"\t"<<z[i].getshuidian()<<"\t"
<<z[i].getyilao()<<"\t"<<z[i].getyingfa()<<"\t"<<z[i].getshifa()<<endl;
flag=1;
}
if(flag==0)
{
cout<<"查詢不到,按0退出"<<endl;
cin>>n;
}
else
{
cout<<"是否繼續查詢,繼續請按1 / 退出按0:"<<endl;
cin>>n;
}
}
}
}
int xianshi(zhigongzi z[],int m)
{
cout<<"職工工資資訊:" <<endl;
cout<<"職工號"<<" "<<"姓名"<<" "<<"所屬部門"<<" "<<"崗位工資"<<" "<<"崗位津貼"<<" "<<"水電費"<<" "<<"醫療保險"<<" "<<"應發工資"<<" "<<"實發工資"<<endl;
for(int i=0;i<m;i++)
{
cout<<z[i].getnumber()<<"\t"<<z[i].getname()<<"\t"<<z[i].getbumen()<<"\t"
<<z[i].getgangwei()<<"\t"<<z[i].getjintie()<<"\t"<<z[i].getshuidian()<<"\t"
<<z[i].getyilao()<<"\t"<<z[i].getyingfa()<<"\t"<<z[i].getshifa()<<endl;
}
return 0;
}
int tongji(int m)
{
cout<<"總人數為"<<m<<endl;
cout<<"經理人數為"<<mt<<endl;
cout<<"銷售人員人數為"<<st<<endl;
cout<<"銷售經理人數為"<<smt<<endl;
cout<<"技術員工人數為"<<tt<<endl;
return 0;
}
int main()
{
zhigongzi z[20];
int a;
while(1)
{
menu() ;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"------------------------請輸入序號選擇對應功能-------------------------"<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<"請輸入選單選項 ";
cin>>a;
switch(a)
{
case 1:system("cls");t=shuru(z);break;
case 2:system("cls");xiugai(z,t);break;
case 3:system("cls");tianjia(z,t);break;
case 4:system("cls");shanchu(z,t);break;
case 5:system("cls");chaxun(z,t);break;
case 6:system("cls");xianshi(z,t);break;
case 7:system("cls");tongji(t);break;
case 8:exit(0);
}
system("pause");
system("cls");
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66057.html
標籤:基礎類
