职工信息管理系统.docx
《职工信息管理系统.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
职工信息管理系统
#include
#include
#include
#include
#defineN100
structemployee//职工基本情况
{
intnum;//工号
intposition;//职位1为董事长2为总经理3为副总经理等
charname[8];//姓名
charsex[2];//性别f为女m为男
intage;//年龄
intcult;//文化程度1为专家2为博士3为硕士4为学士5为其他
intsalary;//工资
intstate;//健康情况分为good,general,bad
}em[N];
structcommunication//职工通讯录
{
charname[8];
charofficetel[13];
charhometel[13];
charhandtel[13];
charaddress[13];
}empc[N];
structempsalary//职工工资与姓名的文件
{
charname[8];
intsalary;
}emps[N];
voidmanage();
voidquery();
voidcommunicate();
voidinput();
voiddisplay();
voidchange();
voiddel();
voidadd();
voidcount();
intchangeposition();
intchangecult();
intchangesalary();
intchangestate();
voidquerysalary();
voidcreat();
voidinputcommunicate();
voidquerycommunicate();
voidchangecommunicate();
voidchangetel1();
voidchangetel2();
voidchangetel3();
charpassword[7]="123456";
voidmain()
{
intchoice;
chars[7];
intflag=0;
intn=3;
do
{
printf("请你输入密码:
\n");
scanf("%s",s);
if(!
strcmp(s,password))//若密码正确
{
printf("恭喜你成功登陆了\n\n\n");
flag=1;
break;
}
else
{
printf("输入有错误请重新输入:
\n");
n--;
}
}while(n>0);
if(!
flag)
{
printf("你的输入次数已到再见\n");
}
do
{
printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n");
printf("\t\t欢迎进入职工管理系统中文版\n");
printf("制作人:
某某\t班级:
计0803班\t学号:
303011608217\n");
printf("联系地址:
某某经济学院\n");
printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
printf("\t\t请你选择操作类型:
\n");
printf("==============\t\t==============\n");
printf("\t\t1进入管理系统\n");
printf("\t\t2进入查询系统\n");
printf("\t\t3进入通讯录\n");
printf("\t\t0退出系统\n");
printf("==============\t\t==============\n");
scanf("%d",&choice);
switch(choice)
{
case1:
manage();
break;
case2:
query();
break;
case3:
communicate();
break;
case0:
{
printf("谢谢使用再见\n");
exit(0);
}
default:
{
printf("输入有错误请重新输入:
\n");
return;
}
}
}while
(1);
}
voidmanage()
{
intchoicemanage;
charchoice='y';
while(choice=='y'||choice=='Y')
{
printf("\t\t欢迎进入管理系统\n");
printf("===================\n");
printf("\t\t请你选择操作类型:
\n");
printf("\t\t1输入职工信息\n");
printf("\t\t2显示职工信息\n");
printf("\t\t3修改职工信息\n");
printf("\t\t4追加一个职工信息\n");
printf("\t\t5删除一个职工信息\n");
printf("\t\t6统计职工信息\n");
printf("\t\t0返回\n");
printf("=====================\n");
scanf("%d",&choicemanage);
switch(choicemanage)
{
case1:
input();//输入职工信息
break;
case2:
display();//显示职工信息
break;
case3:
change();//修改职工信息
break;
case4:
add();//追加一个职工信息
break;
case5:
del();//删除一个职工信息
break;
case6:
count();//统计职工信息
break;
case0:
printf("谢谢你的使用再见\n");
return;
default:
printf("你的输入有错请重新输入\n");
}
printf("是否继续管理?
(y/n)");
scanf("%s",&choice);
}
if(toupper(choice)=='N'||(choice)=='n')
{
printf("输入完毕,任意键返回\n");
getch();
return;
}
}
voidinput()
{
FILE*fp;
inti=0;
charchoiceinput='y';
if((fp=fopen("employee.txt","w"))==NULL)
return;
while(choiceinput=='y'||choiceinput=='Y')
{
i++;
printf("第%d个职工\n",i);
printf("\n");
printf("请你输入工号:
\n");//输入工号
scanf("%d",&em[i].num);
printf("\n");
printf("请你输入职位:
\n");//输入职位
printf("1为董事长2为总经理3为副总经理\n");
printf("4为经理5为副经理6为秘书\n");
printf("7为技术员8为领班9为员工\n");
scanf("%d",&em[i].position);
printf("\n");
printf("请你输入姓名:
\n");//输入姓名
scanf("%s",em[i].name);
printf("\n");
printf("请你输入性别以m为男f为女:
\n");//输入性别
scanf("%s",em[i].sex);
printf("\n");
printf("请你输入文化程度:
\n");//输入文化程度
printf("1为专家2为博士3为硕士4为学士5为其他\n");
scanf("%d",&em[i].cult);
printf("\n");
printf("请你输入工资:
\n");//输入工资
scanf("%d",&em[i].salary);
printf("\n");
printf("请你输入身体情况:
\n");//身体情况
printf("1好2为一般3为差\n");
scanf("%d",&em[i].state);
printf("\n");
printf("是否继续输入?
(y/n)\n");
scanf("%s",&choiceinput);
fwrite(&em[i],sizeof(structemployee),1,fp);
}
if(toupper(choiceinput)=='N')
{
fclose(fp);
printf("输入完毕,任意键返回\n");
getch();
return;
}
}
voiddisplay()//显示职工信息
{
FILE*fp;
inti;
if((fp=fopen("employee.txt","r"))==NULL)
return;
printf("输出结果:
\n");
printf("工号职位姓名性别文化程度工资身体情况\n");
for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!
=0;i++)
{
printf("工号%d\n",em[i].num);
printf("职位为%d\n",em[i].position);
printf("1为董事长2为总经理3为副总经理\n");
printf("4为经理5为副经理6为秘书\n");
printf("7为技术员8为领班9为员工\n");
printf("姓名为%s\n",em[i].name);
printf("性别为%s\n",em[i].sex);
printf("其中m为男f为女\n");
printf("文化程度为%d\n",em[i].cult);
printf("1为专家2为博士3为硕士4为学士5为其他\n");
printf("工资为%d\n",em[i].salary);
printf("身体情况为%d\n",em[i].state);
printf("1好2为一般3为差\n");
}
printf("完毕按任意键返回\n");
getch();
fclose(fp);
return;
}
voidchange()
{
FILE*fp;
inti;
charchname[8];
intchoicechange;
printf("请你输入要修改的人的姓名:
\n");
scanf("%s",&chname);
if((fp=fopen("employee.txt","w+"))==NULL)
{
printf("不能够打开这个文件\n");
return;
}
for(i=0;i{
if(strcmp(chname,em[i].name)==0)
{
printf("这是你要修改的人的信息\n");
printf("工号为%d职位为%d姓名为%s性别为%s文化程度为%d工资为%d身体为%d\n",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].cult,em[i].salary,em[i].state);
printf("------------------------------------------------------------\n");
printf("请你输入要修改的部分:
\n");
printf("======================\n");
printf("1修改职位\n");
printf("2修改文化程度\n");
printf("3修改工资\n");
printf("4修改身体情况\n");
printf("0退出系统\n");
printf("======================\n");
printf("请选择\n");
scanf("%d",&choicechange);
switch(choicechange)
{
case1:
em[i].position=changeposition();
break;
case2:
em[i].cult=changecult();
break;
case3:
em[i].salary=changesalary();
break;
case4:
em[i].state=changestate();
break;
case0:
return;
default:
printf("输入有错误");
}
fwrite(&em[i],sizeof(structemployee),1,fp);
}
}
fclose(fp);
printf("操作完成按任意键返回\n");
getch();
return;
}
intchangeposition()
{
intnewposition;
printf("请你输入新职位:
\n");
printf("1为董事长2为总经理3为副总经理\n");
printf("4为经理5为副经理6为秘书\n");
printf("7为技术员8为领班9为员工\n");
scanf("%d",&newposition);
return(newposition);
}
intchangecult()
{
intnewcult;
printf("请你输入新的文凭:
\n");
printf("1为专家2为博士3为硕士4为学士5为其他\n");
scanf("%d",&newcult);
return(newcult);
}
intchangesalary()
{
intnewsalary;
printf("请你输入新的工资:
\n");
scanf("%d",&newsalary);
return(newsalary);
}
intchangestate()
{
intnewstate;
printf("请你输入现在的身体情况:
\n");
printf("1好2为一般3为差\n");
scanf("%d",&newstate);
return(newstate);
}
voidadd()//追加一个职工信息
{
structemployeeemp;
FILE*fp;
inti=0;
if((fp=fopen("employee.txt","ab+"))==NULL)
{
printf("不能够打开这个文件\n");
getch();
return;
}
printf("请你输入新人的内容:
\n");
printf("请你输入工号:
\n");//输入工号
scanf("%d",&emp.num);
printf("请你输入职位:
\n");//输入职位
printf("1为董事长2为总经理3为副总经理\n");
printf("4为经理5为副经理6为秘书\n");
printf("7为技术员8为领班9为员工\n");
scanf("%d",&emp.position);
printf("请你输入姓名:
\n");//输入姓名
scanf("%s",emp.name);
printf("请你输入性别以m为男f为女:
\n");//输入性别
scanf("%s",emp.sex);
printf("请你输入文化程度:
\n");//输入文化程度
printf("1为专家2为博士3为硕士4为学士5为其他\n");
scanf("%d",&emp.cult);
printf("请你输入工资:
\n");//输入工资
scanf("%d",&emp.salary);
printf("请你输入身体情况:
\n");//身体情况
printf("1好2为一般3为差\n");
scanf("%d",&emp.state);
fwrite(&emp,sizeof(structemployee),1,fp);
rewind(fp);
printf("插入完毕,按任意键返回\n");
getch();
fclose(fp);
return;
}
voiddel()//删除一个职工信息
{
inti=0;
chardelname[8];
FILE*fp;
if((fp=fopen("employee.txt","w"))==NULL)
{
printf("文件为空,不能够打开\n");
printf("按任意键返回\n");
getch();
return;
}
printf("请你输入要删除的人的姓名:
\n");//删除的职工的信息
scanf("%s",delname);
for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!
=0;i++)
{
if(strcmp(em[i].name,delname)!
=0)
fwrite(&em[i],sizeof(structemployee),1,fp);
}
fclose(fp);
if((fp=fopen("employee.txt","r"))==NULL)//显示新的职工的信息
return;
printf("新的职工的信息为:
\n");
for(i=0;fread(&em[i],sizeof(structemployee),1,fp)!
=0;i++)
{
printf("工号%d",em[i].num);
printf("职位为%d",em[i].position);
printf("1为董事长2为总经理3为副总经理\n");
printf("4为经理5为副经理6为秘书\n");
printf("7为技术员8为领班9为员工\n");
printf("姓名为%s",em[i].name[8]);
printf("性别为%s",em[i].sex[2]);
printf("其中m为男f为女");
printf("文化程度为%d",em[i].cult);
printf("1为专家2为博士3为硕士4为学士5为其他\n");
printf("工资为%d",em[i].salary);
printf("身体情况为%d",em[i].state);
printf("1好2为一般3为差\n");
fclose(fp);
}
}
voidcount()
{
FILE*fp;
inti=0;
intnum=0;//总人数统计
intmnum=0,fnum=0;//性别人数统计
intexpernum=0,doctornum=0,masternum=0,bechelornum=0,othernum=0;//学位人数统计
intdsznum=0,zglnum=0,fzglnum=0,glnum=0,fglnum=0;//职位人数统计
intmishunum=0,jsynum=0,lbnum=0,ygnum=0;
if((fp=fopen("employee.txt","r"))==NULL)
{
printf("不能够打开这个文件\n");
printf("按任意键继续\n");
getch();
return;
}
do
{
fread(&em[i],sizeof(structemployee),1,fp);
if(feof(fp))
break;
num++;
if(strcmp(em[i].sex,"m")==0)
mnum++;
if(strcmp(em[i].sex,"f")==0)
fnum++;
if(em[i].cult==1)
expernum++;
if(em[i].cult==2)
doctornum++;
if(em[i].cult==3)
masternum++;
if(em[i].cult=4)
bechelornum++;
if(em[i].cult=5)
othernum++;
if(em[i].position==1)//职位统计
dsznum++;
if(em[i].position==2)
zglnum++;
if(em[i].position==3)
fzglnum++;
if(em[i].position==4)
glnum++;
if(em[i].position==5)
fglnum++;
if(em[i].position==6)
mishunum++;
if(em[i].position==7)
jsynum++;
if(em[i].position==8)
lbnum++;
if(em[i].position==9)
ygnum++;
i++;
}while
(1);
printf("总人数为%d\n",num);
printf("====性别分类=====\n");
printf("男人数为%d\n",mnum);
printf("女人数为%d\n",fnum);
printf("=====文凭分类=====\n");
printf("专家数为%d\n",expernum);
printf("博士数为%d\n",doctornum);
printf("硕士数为%d\n",masternum);
printf("学士数为%d\n",bechelornum);
printf("其他的数为%d\n",othernum);
printf("=====职位分类========\n");
printf("董事长数为%d\n",dsznum);
printf("总经理数为%d\n",zglnum);
printf("副总经理数为%d",fzglnum);
printf("经理数为%d",glnum);
printf("副经理数为%d",fglnum);
printf("秘书数为%d",mishunum);
printf