📄 p2.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 + -