#include #include #include #define NUM 1000 void enter(); void search_num(); void dele_num(); void modi_num(); void browse(); void count(); void add(); void menu(); int n; //员工的总数 struct emploee //职工数据结构 { char no[5]; char name[8]; int wage1; //员工的基本工资 int wage2; //员工的职务工资 int funds; //员工的公积金 int ylbx; //员工的医疗保险 int jt; //员工的津贴 int wage3; //员工的实发工资 int wage4; //前3项工资之和 }emp[NUM],newemp; int main() { menu(); } void menu()//主界面 { int n; do{ printf("**************** 职工工资管理系统 ***********\n"); printf("* 1-----输入职工信息------ *\n"); printf("* 2-----查询职工信息------ *\n"); printf("* 3-----删除职工信息------ *\n"); printf("* 4-----修改职工信息------ *\n"); printf("* 5-----工资统计信息------ *\n"); printf("* 6-----浏览职工信息------ *\n"); printf("* 7-----添加职工信息------ *\n"); printf("* 8-------退出程序-------- *\n"); printf("*********************************************\n"); printf("输入你的选择(1-8):"); scanf("%d",&n); switch(n) { case 1:enter(); break; case 2:search_num(); break; case 3:dele_num(); break; case 4:modi_num(); break; case 5:count(); break; case 6:browse(); break;//加载信息 case 7:add(); break; case 8:printf("*******欢迎下次使用!*******"); default:exit(0);//退出系统.exit(0)函数功能是退出程序 } }while(n!=0); } /*************************输入**********************/ void enter() { FILE *fp; int n,i; fp=fopen("emp.txt","ab+"); if(fp==NULL) { if ((fp=fopen("emp.txt","wb"))==NULL) { printf("不能建立emp文件\n"); exit(1); } } printf("输入职工人数:"); scanf("%d",&n); for(i=0;i=1000&&emp[i].wage4<2000) { a++; } if(emp[n].wage4>=2000&&emp[i].wage4<3000) { b++; } if(emp[n].wage4>=3000) { c++; } } printf("前三项之和在1000~2000元的占的百分之%d\n",a*100/n); printf("前三项之和在2000~3000元的占的百分之%d\n",b*100/n); printf("前三项之和在3000元以上占的百分之%d\n",c*100/n); fclose(fp); } /********************删除信息的地方*******************/ void dele_num() { FILE *fp; int i,j,n; char num[5]; if((fp=fopen("emp.txt","rb"))==NULL) { printf("不能打开emp文件\n"); exit(1); } printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 实发工资\n"); for(n=0;fread(&emp[n],sizeof(struct emploee),1,fp);n++) { printf("ID:"); scanf("%-6s",emp[i].no); printf("姓名:"); scanf("%-6s",&emp[i].name); printf("基本工资:"); scanf("%-8d",&emp[i].wage1); printf("职务工资:"); scanf("%-8d",&emp[i].wage2); printf("津贴:"); scanf("%-8d",&emp[i].jt); printf("医疗保险:"); scanf("%-8d",&emp[i].ylbx); printf("公积金:"); scanf("%-8d",&emp[i].funds); printf("总工资:"); scanf("%-8d",&emp[i].wage3); }/*n为emp文件中记录数*/ printf("要删除的ID:"); scanf("%s",num); for(i=0;(strcmp(emp[i].no,num)!=0&&i=n) { printf("\t没有%s职工号的职工\n",num); return; } fclose(fp); fp=fopen("emp.dat","w+"); if(n==1) /*一个记录已经删除了*/ { fclose(fp); exit(3); } for(j=0;j