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

📄 p2.cpp

📁 工资管理系统的C++源代码
💻 CPP
字号:
#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<fstream.h>
typedef struct zhigong 
{int num;
char name[20];
char sex;
float score[4];
struct date{int year,month,day;}birthday;
struct zhigong *next;
}STU;
/*输入资料的函数*/
STU *mycreat()
{STU *head,*p,*q;char j;
head=(STU *)malloc(sizeof(STU));
q=head;
cout<<"是否输入职工资料(y/n)";

cin>>j;
while(j=='y')
{p=(STU *)malloc(sizeof(STU));
q->next=p;
cout<<"工号:";cin>>p->num;cout<<"姓名:";cin>>p->name;cout<<"性别:";cin>>p->sex;
cout<<"基本工资:";cin>>p->score[0];cout<<"补贴:";cin>>p->score[1];
cout<<"奖金:";cin>>p->score[2];cout<<"罚款:";cin>>p->score[3];
cout<<"出生日期:";cin>>p->birthday.year>>p->birthday.month>>p->birthday.day;
q=p;
cout<<"是否继续输入(y/n)"<<endl;cin>>j;}
q->next=NULL;
return head;
}
/*删除资料的函数*/
int mydelete(STU *head,int n)
{STU *p,*q;
q=head;p=head->next;
if(head=NULL)cout<<"不存在该职工的工号"<<endl;
while(p!=NULL)
if(n!=p->num)
{q=q->next;p=p->next;}
else break;
if(p==NULL)return 0;
q->next=p->next;
free(p);return 1;
}
/*查询资料的函数*/
void select(STU *head,int n)
{STU *p;
p=head->next;
while(p!=NULL)
{if (n==p->num) 
{cout<<"工号:"<<p->num<<"\n姓名:"<<p->name<<"\n性别:"<<p->sex;
 cout<<"\n基本工资:"<<p->score[0]<<"  补贴:"<<p->score[1]<<"  奖金:"<<p->score[2]<<"  罚款:"<<p->score[3];
 cout<<"\n出生日期:"<<p->birthday.year<<"年"<<p->birthday.month<<"月"<<p->birthday.day<<"日"<<endl;
 break;
}  
p=p->next; 
}
if(p==NULL)cout<<"不存在该职工的工号"<<endl;
}
/*修改资料的函数*/
void modify(STU *head,int n)
{STU *p;int i;
p=head->next; 
while(p!=NULL) 
{ 
if (n==p->num) 
{ 
 cout<<"请输入新的姓名,性别,基本工资,补贴,奖金,罚款,出生日期"<<endl; 
 cin>>(*p).name>>(*p).sex;
 for(i=0;i<=3;i++)
 cin>>p->score[i];
 cin>>(*p).birthday.year>>(*p).birthday.month>>(*p).birthday.day;
 cout<<"工号:"<<p->num<<"\n姓名:"<<p->name<<"\n性别:"<<p->sex;
 cout<<"\n基本工资:"<<p->score[0]<<" 补贴:"<<p->score[1]<<" 奖金:"<<p->score[2]<<" 罚款:"<<p->score[3];
 cout<<"\n出生日期:"<<p->birthday.year<<"年"<<p->birthday.month<<"月"<<p->birthday.day<<"日"<<endl; 
 break;
} 
p=p->next; 
}
if(p==NULL)cout<<"不存在该职工的工号"<<endl; 
}
/*显示资料的函数*/
void myprint(STU *head)
{STU *p;
p=head->next;
if(p==NULL)cout<<"职工资料不存在";
else 
cout<<"  工号  "<<"       姓名     "<<" 性别 "<<"  基本工资 "<<" 补贴 "<<" 奖金 "<<" 补贴 "<<" 罚款 "<<" 出生日期"<<endl;
do
{ cout<<setw(6)<<p->num<<setw(14)<<p->name<<setw(7)<<p->sex;
  cout<<setw(8)<<p->score[0]<<setw(6)<<p->score[1]<<setw(6)<<p->score[2]<<setw(9)<<p->score[3];
  cout<<"      "<<p->birthday.year<<"年"<<p->birthday.month<<"月"<<p->birthday.day<<"日"<<endl;
  p=p->next;
}while(p!=NULL);
cout<<endl;
}
  
 void save(STU *head) //保存资料
	
	{ 
       STU *p ; 
	   ofstream outfile("d:liuwei.txt"); 
       p=head->next;
      while(p!=head) 
	  {
	   outfile<<p->num<<p->name; 
         p=p->next; 
	  }
         cout<<"数据保存完毕"<<endl; 
        
	} 




/*------------------------主程序------------------------*/
void main()
{  STU *head;
   int n;
   int choose,k;char j; 
   cout<<"*******************************************************"<<endl;
   cout<<"**                 WELCOME       YOU !               **"<<endl;
   cout<<"**             This is a  C++ program                **"<<endl;
   cout<<"**                职工工资管理系统                   **"<<endl;
   cout<<"**    功能选项:                                      **"<<endl;
   cout<<"**          1.输入职工资料       2.删除职工资料      **"<<endl;
   cout<<"**          3.查询职工工资       4.修改职工工资      **"<<endl;
   cout<<"**          5.显示职工工资       6.保存职工资料      **"<<endl;
   cout<<"**                 0.退出系统                        **"<<endl;
   cout<<"*******************************************************"<<endl;
   cout<<"是否进行您的功能操作(y/n)";
   cin>>j;
   if(j=='y')
   {loop:cout<<"请输入您的功能选项:";
    cin>>choose;
    switch(choose)
	{case 1:head=mycreat();
	        cout<<"是否进行其它功能操作(y/n)";
			cin>>j;
			if(j=='y')goto loop;
			else break;
	 case 2:cout<<"是否要删除职工的资料(y/n)";
		   cin>>j;
		   if(j=='y')
		  {cout<<"请你输入要删除职工的工号:"<<endl;
	       cin>>n;
	       k=mydelete(head,n);
		   if(k==1)
		   {cout<<"删除后:"<<endl;myprint(head);}
		   else cout<<"不存在该职工的工号"<<endl;
		  }
           cout<<"是否进行其它功能操作(y/n)";
		   cin>>j;
		   if(j=='y')goto loop;
		   else break; 
    case 3:cout<<"是否要查询职工的资料(y/n)";
		   cin>>j;
		   if(j=='y')
		  {cout<<"请你输入要查询职工的工号:"<<endl;
	       cin>>n;
		   select(head,n);
		  }
           cout<<"是否进行其它功能操作(y/n)";
		   cin>>j;
		   if(j=='y')goto loop;
		   else break;
    case 4:cout<<"是否要修改职工的资料(y/n)";
		   cin>>j;
		   if(j=='y')
		   {cout<<"请你输入要修改职工的工号:"<<endl;
	       cin>>n;
		   modify(head,n);}
           cout<<"是否进行其它功能操作(y/n)";
		   cin>>j;
		   if(j=='y')goto loop;
		   else break;
    case 5:cout<<"是否要输出全部职工的资料(y/n)";
		   cin>>j;
		   if(j=='y')
		   myprint(head);
           cout<<"是否进行其它功能操作(y/n)";
		   cin>>j;
		   if(j=='y')goto loop;
		   else break;
	case 6:save(head);
	}
   }
}



⌨️ 快捷键说明

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