#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
void kaitou()
{
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 << "================================" << endl;
cout << "您的选择是(输入1-7中任意一个数):" << endl;
}
struct zhigong
{
char gonghao[10];//工号
char xingming[10];//姓名
float gwgz;//岗位工资
float jxgz;//绩效工资
float yfgz;//应发工资
float grkk;//个人扣款
float sfgz;//实发工资
struct zhigong *next;
}k,z[100],f[100];
struct zhigong head={0};//定义一个有头的链表
void sr()//输入的内容
{
cout << "请输入职工工号" << endl;
cin >> k.gonghao;
cout << "请输入职工姓名" << endl;
cin >> k.xingming;
cout << "请输入岗位工资" << endl;
cin>>k.gwgz;
cout << "请输入绩效工资" << endl;
cin>>k.jxgz;
cout << "请输入个人扣款" << endl;
cin>>k.grkk;
k.yfgz=k.gwgz+k.jxgz;
k.sfgz=k.yfgz-k.grkk;
}
void xieru()//进行文件写入操作
{
FILE*fp;
fp = fopen("D:\\工资管理.txt", "ab+");
fwrite(&k, sizeof(k),1,fp);
fclose(fp);
}
void xieru1()//进行文件写入操作1
{
FILE*fp;
if ((fp=fopen("D:\\工资管理.txt","wb+"))==NULL) /*创建文件并判断是否能打开*/
{
printf ("cannot open file\n");
exit(0);
}
fwrite(&z,sizeof(struct zhigong),100,fp);
fclose(fp);
}
void duqu()//进行文件的读取操作
{
FILE*fq;
fq=fopen("D:\\工资管理.txt","rb+");
fread(&z[0],sizeof(struct zhigong),100,fq);
fclose(fq);
}
void shuchu()//文件的输出操作
{
int a;
FILE*fq;
fq=fopen("D:\\工资管理.txt","rb+");
for(a=0;a<100;a++)
{
fread(&z,sizeof(z),1,fq);
fclose(fq);
if(z[a].jxgz==0)
break;
else
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[a].gonghao,z[a].xingming,z[a].gwgz,z[a].jxgz,z[a].grkk,z[a].yfgz,z[a].sfgz);
}
}
void chaxun()
{
int a;
int i;
cout<<"请输入查询方式"<<endl;
cout<<"输入1,按照姓名查询"<<endl;
cout<<"输入2,按照工号查询"<<endl;
cin>>a;
switch(a)
{
case 1:cout<<"请输入被查询者的姓名:";
char m[10];
cin>>m;
for(i=0;i<100;i++)
{
if(strcmp(z[i].xingming,m)==0)
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
}break;
case 2:cout<<"请输入被查询者的工号:";
char n[10];
cin>>n;
for(i=0;i<100;i++)
{
if(strcmp(z[i].gonghao,n)==0)
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
}break;
}
}
void shanchu()
{
int a;
int i;
int j;
char k[10];
cout<<"====请根据提示执行操作====\n"<<endl;
cout<<"输入1,按照姓名执行删除操作"<<endl;
cout<<"输入2,按照工号执行删除操作"<<endl;
cin>>a;
switch(a)
{
case 1:cout<<"请输入将被删除者的姓名:";
char m[10];
cin>>m;
for(i=0;i<100;i++)
{
if(strcmp(z[i].xingming,m)==0)
j=i;
}
for(i;i<100;i++)
{
strcpy(z[i - 1].gonghao, z[i].gonghao);
strcpy(z[i - 1].xingming, z[i].xingming);
z[i - 1].gwgz = z[i].gwgz;
z[i - 1].jxgz = z[i].jxgz;
z[i - 1].grkk = z[i].grkk;
z[i - 1].sfgz = z[i].sfgz;
z[i - 1].yfgz = z[i].yfgz;
}
printf("\n=======删除成功!========\n");
break;
case 2:cout<<"请输入将被删除者的工号:";
char n[10];
cin>>n;
for(i=0;i<100;i++)
{
if(strcmp(z[i].xingming,m)==0)
j=i;
}
for(i;i<100;i++)
{
strcpy(z[i - 1].gonghao, z[i].gonghao);
strcpy(z[i - 1].xingming, z[i].xingming);
z[i - 1].gwgz = z[i].gwgz;
z[i - 1].jxgz = z[i].jxgz;
z[i - 1].grkk = z[i].grkk;
z[i - 1].sfgz = z[i].sfgz;
z[i - 1].yfgz = z[i].yfgz;
}
printf("\n=======删除成功!========\n");
break;
}
}
void xiugai()
{
int j;
int a;
int i;
cout<<"请输入查询方式"<<endl;
cout<<"输入1,按照姓名查询"<<endl;
cout<<"输入2,按照工号查询"<<endl;
cin>>a;
switch(a)
{
case 1:cout<<"请输入被查询者的姓名:";
char m[10];
cin>>m;
for(j=0;j<100;j++)
{
if(strcmp(z[j].xingming,m)==0)
i=j;
}
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
printf("请输入修改的姓名:\n");
scanf("%s",&z[i].xingming);
printf("请输入修改的岗位工资:\n");
scanf("%f",&z[i].gwgz);
printf("请输入修改的绩效工资:\n");
scanf("%f",&z[i].jxgz);
printf("请输入修改的个人扣款:\n");
scanf("%f",&z[i].grkk);
z[i].yfgz=z[i].gwgz+z[i].jxgz;
z[i].sfgz=z[i].yfgz-z[i].grkk;
break;
case 2:cout<<"请输入被查询者的工号:";
char n[10];
cin>>n;
for(j=0;j<100;j++)
{
if(strcmp(z[j].gonghao,n)==0)
i=j;
}
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
printf("请输入修改的姓名:\n");
scanf("%s",&z[i].xingming);
printf("请输入修改的岗位工资:\n");
scanf("%f",&z[i].gwgz);
printf("请输入修改的绩效工资:\n");
scanf("%f",&z[i].jxgz);
printf("请输入修改的个人扣款:\n");
scanf("%f",&z[i].grkk);
z[i].yfgz=z[i].gwgz+z[i].jxgz;
z[i].sfgz=z[i].yfgz-z[i].grkk;
break;
}
}
int main()//主函数
{
int i;
int l;
printf("请输入密码!");
scanf("%d",&l);
switch(l)
{
case 1234:
system("cls");
kaitou();
cin >> i;
switch(i)
{
case 1:shuchu();break;
case 2:duqu();chaxun();break;
case 3:sr();xieru();break;
case 4:duqu();shanchu();xieru1();break;
case 5:duqu();xiugai();xieru1();break;
case 7:return 0;
default:printf("输入有误,请重新输入!");
}
return 0;
default :printf("密码输入错误!");
}
}
1 回答
- 1 回答
- 1 关注
- 1397 浏览
添加回答
举报
0/150
提交
取消