|
|
@ -25,6 +25,7 @@ struct emploee //ְ
|
|
|
|
}emp[NUM],newemp;
|
|
|
|
}emp[NUM],newemp;
|
|
|
|
int main()
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
system("color CF");
|
|
|
|
menu();
|
|
|
|
menu();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
void menu()//主界面
|
|
|
|
void menu()//主界面
|
|
|
@ -40,6 +41,7 @@ do{
|
|
|
|
printf("* 6-----浏览职工信息------ *\n");
|
|
|
|
printf("* 6-----浏览职工信息------ *\n");
|
|
|
|
printf("* 7-----添加职工信息------ *\n");
|
|
|
|
printf("* 7-----添加职工信息------ *\n");
|
|
|
|
printf("* 8-------退出程序-------- *\n");
|
|
|
|
printf("* 8-------退出程序-------- *\n");
|
|
|
|
|
|
|
|
printf("* 制造人:欧 慧 祥 *\n");
|
|
|
|
printf("*********************************************\n");
|
|
|
|
printf("*********************************************\n");
|
|
|
|
printf("输入你的选择(1-8):");
|
|
|
|
printf("输入你的选择(1-8):");
|
|
|
|
scanf("%d",&n);
|
|
|
|
scanf("%d",&n);
|
|
|
@ -77,7 +79,7 @@ switch(n)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
fread(&emp[i],sizeof(struct emploee),1,fp);
|
|
|
|
fread(&emp[i],sizeof(struct emploee),1,fp);
|
|
|
|
i++;
|
|
|
|
i++;
|
|
|
|
}while(feof(fp)==0);//检测流上的文件结束符
|
|
|
|
}while(feof(fp)==0);//检测上面的文件结束符
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fclose(fp);
|
|
|
|
fclose(fp);
|
|
|
|
return(i-1);//返回人数
|
|
|
|
return(i-1);//返回人数
|
|
|
@ -151,13 +153,13 @@ void count()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for(n=0;fread(&emp[n],sizeof(struct emploee),1,fp)!=0;n++)
|
|
|
|
for(n=0;fread(&emp[n],sizeof(struct emploee),1,fp)!=0;n++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if(emp[n].wage4>=2000&&emp[n].wage4<3000)
|
|
|
|
if(emp[n].wage4>=2000&&emp[n].wage4<=3000)
|
|
|
|
b++;
|
|
|
|
b++;
|
|
|
|
else if(emp[n].wage4>0&&emp[n].wage4<=2000)
|
|
|
|
else if(emp[n].wage4>0&&emp[n].wage4<=2000)
|
|
|
|
c++;
|
|
|
|
c++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
a=n-b-c;
|
|
|
|
a=n-b-c;
|
|
|
|
printf("前三项之和在1000~2000元的占的百分之%.1f\n",c*100/n);
|
|
|
|
printf("前三项之和在0~2000元的占的百分之%.1f\n",c*100/n);
|
|
|
|
printf("前三项之和在2000~3000元的占的百分之%.1f\n",b*100/n);
|
|
|
|
printf("前三项之和在2000~3000元的占的百分之%.1f\n",b*100/n);
|
|
|
|
printf("前三项之和在3000元以上占的百分之%.1f\n",a*100/n);
|
|
|
|
printf("前三项之和在3000元以上占的百分之%.1f\n",a*100/n);
|
|
|
|
fclose(fp);
|
|
|
|
fclose(fp);
|
|
|
@ -234,16 +236,16 @@ void modi_num()
|
|
|
|
printf("\t没有%s职工号的职工\n",num);
|
|
|
|
printf("\t没有%s职工号的职工\n",num);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资\n");
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资\n");
|
|
|
|
printf(" %-6s %-6s %-8d %-8d %-8d %-8d %-8d %-8d\n",emp[i].no,emp[i].name,emp[i].wage1,emp[i].wage2,emp[i].jt,emp[i].ylbx,emp[i].funds,emp[i].wage3);
|
|
|
|
printf("%-6s %-6s %-8d %-8d %-8d %-8d %-8d %-8d\n",emp[i].no,emp[i].name,emp[i].wage1,emp[i].wage2,emp[i].jt,emp[i].ylbx,emp[i].funds,emp[i].wage3);
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金\n");
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资\n");
|
|
|
|
scanf("%s%s%d%d%d%d%d",newemp.no,newemp.name,&newemp.wage1,&newemp.wage2,&newemp.jt,&newemp.ylbx,&newemp.funds);//获取新的职工记录
|
|
|
|
scanf("%s%s%d%d%d%d%d",newemp.no,newemp.name,&newemp.wage1,&newemp.wage2,&newemp.jt,&newemp.ylbx,&newemp.funds);//获取新的职工记录
|
|
|
|
newemp.wage3=newemp.wage1+newemp.wage2+newemp.jt-newemp.ylbx-newemp.funds;
|
|
|
|
newemp.wage3=newemp.wage1+newemp.wage2+newemp.jt-newemp.ylbx-newemp.funds;
|
|
|
|
fseek(fp,-(long)sizeof(struct emploee),SEEK_CUR); //文件指针指向该修改的记录开头
|
|
|
|
fseek(fp,-(long)sizeof(struct emploee),SEEK_CUR); //文件指针指向该修改的记录开头
|
|
|
|
fwrite(&newemp,sizeof(struct emploee),1,fp); //用newemp覆盖当前记录
|
|
|
|
fwrite(&newemp,sizeof(struct emploee),1,fp); //用newemp覆盖当前记录
|
|
|
|
printf(" 修改后:\n");
|
|
|
|
printf(" 修改后:\n");
|
|
|
|
fseek(fp,0,SEEK_SET); //显示修改后的文件数据
|
|
|
|
fseek(fp,0,SEEK_SET); //显示修改后的文件数据
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资\n");
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资\n");
|
|
|
|
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++)
|
|
|
|
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++)
|
|
|
|
printf(" %-6s %-6s %-8d %-8d %-8d %-8d %-8d %-8d\n",emp[i].no,emp[i].name,emp[i].wage1,emp[i].wage2,emp[i].jt,emp[i].ylbx,emp[i].funds,emp[i].wage3);
|
|
|
|
printf(" %-6s %-6s %-8d %-8d %-8d %-8d %-8d %-8d\n",emp[i].no,emp[i].name,emp[i].wage1,emp[i].wage2,emp[i].jt,emp[i].ylbx,emp[i].funds,emp[i].wage3);
|
|
|
|
fclose(fp);
|
|
|
|
fclose(fp);
|
|
|
@ -268,8 +270,8 @@ void search_num()
|
|
|
|
printf("\t查无此人\n");
|
|
|
|
printf("\t查无此人\n");
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资\n");
|
|
|
|
printf("ID 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资\n");
|
|
|
|
printf(" %-6s %-6s %-8d %-8d %-8d %-8d %-8d %-8d\n",emp[i].no,emp[i].name,emp[i].wage1,emp[i].wage2,emp[i].jt,emp[i].ylbx,emp[i].funds,emp[i].wage3);
|
|
|
|
printf("%-6s %-6s %-8d %-8d %-8d %-8d %-8d %-8d\n",emp[i].no,emp[i].name,emp[i].wage1,emp[i].wage2,emp[i].jt,emp[i].ylbx,emp[i].funds,emp[i].wage3);
|
|
|
|
printf("继续请按1,不继续请按0\n");
|
|
|
|
printf("继续请按1,不继续请按0\n");
|
|
|
|
scanf("%d",&n);
|
|
|
|
scanf("%d",&n);
|
|
|
|
switch(n)
|
|
|
|
switch(n)
|
|
|
|