forth commit

master
unknown 6 years ago
parent a4f8137321
commit c77ab66d0a

@ -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)

Binary file not shown.
Loading…
Cancel
Save