
题目要求 做一个工资管理系统,要能按照姓名和卡号查找员工的工资信息,以及员工工资信息的插入,删除。同时这些信息要存储在TXT文件中…还要可以按照一定顺序输出所有员工工资的信息
#include #include #define N 100 struct mygz { int yuefen; float yfgz; float sf; float df; float sj; float sfgz; }; struct worker { int kahao; char xingming[20]; struct mygz m[12]; float zsfgz; }; int ygsm; struct worker a[N]; float shuijin(float m) { float shui1,shui2; float tmp; shui1=0;shui2=0; if(m>=1400) { shui1=(m-1400)*0.1; shui2=30; } else { if(m>=800 && m<1400) { shui2=(m-800)*0.05; } } tmp=shui1+shui2; return(tmp); }float shifagongzi(float a,float b,float c,float d) { float e=a-b-c-d; return(e); } void duqu() { FILE *fp; if((fp=fopen("D:工资信息.txt"))==NULL) { printf("无法读取文件"); ;return; } while(!feof(fp)) { fread(&a[ygsm],sizeof(struct worker),1,fp); ygsm++; } } void chaxun() { int b; int i; int j; label_3: b=0; while(b!=1&&b!=2) { printf("1,选择姓名查询.\\n2,选择卡号查询.\\n"); scanf("%d",&b); } if(b==1) { char c[20]; printf("请输入您的姓名:\\n"); scanf("%s",c); i=0; while(!(strcmp(a[i].xingming,c)==0)&&i i++; } if(i==ygsm) { printf("您查找的名字不存在,请正确输入您的名字或用卡号查询\\n"); return; } printf("%-10d %-20s \n",a[i].kahao,a[i].xingming); for(j=0;a[i].m[j].yuefen!=NULL;j++) { printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\\n",a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz); } printf("总实发工资:%10f\\n",a[i].zsfgz); b=0; while(b!=1&&b!=2) { printf("1,继续查询.\\n2,返回主菜单.\\n"); scanf("%d",&b); } if(b==1) { goto label_3; } else { ;return; } } else { int d=0; while(!(d>=10001&&d<=32767)) { printf("请输入您的卡号(五位数字),例如:10001\\n"); scanf("%d",&d); } i=0; while(a[i].kahao!=d&&i i++; } if(i==ygsm) { printf("您查找的名字不存在,请正确输入您的名字或用卡号查询\\n"); return; } printf("%-10d %-20s \n",d,a[i].xingming); for(j=0;a[i].m[j].yuefen!=NULL;j++) { printf("月份:%5d,应发工资:%10.2f,水费:%7.2f,电费:%7.2f,税金:%7.2f,实发工资:%10.2f.\\n",a[i].m[j].yuefen,a[i].m[j].yfgz,a[i].m[j].sf,a[i].m[j].df,a[i].m[j].sj,a[i].m[j].sfgz); } printf("总实发工资:%10f\\n",a[i].zsfgz); b=0; while(b!=1&&b!=2) { printf("1,继续查询.\\n2,返回主菜单.\\n"); scanf("%d",&b); } if(b==1) { goto label_3; } else { ;return; } } } void liulan() { struct worker x; int c; float d; int i; int j; int k; for(i=0;i c=a[i].kahao; k=i; for(j=i+1;j if(c>a[j].kahao) { c=a[j].kahao; k=j; } } x=a[i]; a[i]=a[k]; a[k]=x; }
