#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("密码输入错误!"); } }
宝慕林9955328