企业职工管理系统



# <stdio.h>
# <.h>
# <stdlib.h>
# <conio.h>


# N 100


struct employee//职工基本情况
{
num;//工号
position;//职位1为董事长2为总经理3为副总经理等
char name[8];//姓名
char sex[2];//性别f为女m为男
age;//年龄
cult;//文化程度1为专家2为博士3为硕士4为学士5为其他
salary;//工资
state;//健康情况分为good,general,bad
}em[N];


struct communication//职工通讯录
{
char name[8];
char officetel[13];
char hometel[13];
char handtel[13];
char address[13];
}empc[N];


struct empsalary//职工工资和姓名文件
{
char name[8];
salary;
}emps[N];


void manage;
void query;
void communicate;
void input;
void display;
void change;
void del;
void add;
void count;
changeposition;
changecult;
changesalary;
changestate;
void querysalary;
void creat;
void inputcommunicate;
void querycommunicate;
void changecommunicate;
void changetel1;
void changetel2;
void changetel3;









char password[7]=\"123456\";


void
{
choice;
char s[7];
flag=0;
n=3;
do
{
prf(\"请你输入密码:\\n\");
scanf(\"%s\",s);
(!strcmp(s,password))//若密码正确
{
prf(\"恭喜你成功登陆了\\n\\n\\n\");
flag=1;

;
}

{
prf(\"输入有请重新输入:\\n\");
n--;
}
}while(n>0);

(!flag)
{
prf(\"你输入次数已到再见\\n\");
}
do
{
prf(\"~~~~~~~~~~\\t\\t\\t~~~~~~~~~~~~\\n\");
prf(\"\\t\\t欢迎进入职工管理系统中文版\\n\");
prf(\"制作人:李华诗\\t班级:计034班\\t学号:2003041150\\n\");
prf(\"联系地址:广西工学院\\n\");
prf(\"%%%%%%%%%%%%%%%%%%%%%%%%%%%\\n\");
prf(\"\\t\\t请你选择操作类型:\\n\");
prf(\"\\t\\t\\n\");
prf(\"\\t\\t1进入管理系统\\n\");
prf(\"\\t\\t2进入查询系统\\n\");
prf(\"\\t\\t3进入通讯录\\n\");
prf(\"\\t\\t0退出系统\\n\");
prf(\"\\t\\t\\n\");
prf(\"介绍说明:版权归作者所有违者必究\\n\\n\\n\\n\");
scanf(\"%d\",&choice);
switch(choice)
{
1:
manage;
;
2:
query;
;
3:
communicate;
;
0:
{
prf(\"谢谢使用再见\\n\");
exit(0);
}
default:
{
prf(\"输入有请重新输入:\\n\");
;
}
}
}while(1);
}





void manage
{
choicemanage;
char choice=\'y\';
while(choice\'y\'||choice\'Y\')
{
prf(\"\\t\\t欢迎进入管理系统\\n\");
prf(\"=\\n\");
prf(\"\\t\\t请你选择操作类型:\\n\");
prf(\"\\t\\t1输入职工信息\\n\");
prf(\"\\t\\t2显示职工信息\\n\");
prf(\"\\t\\t3修改职工信息\\n\");
prf(\"\\t\\t4追加个职工信息\\n\");
prf(\"\\t\\t5删除个职工信息\\n\");
prf(\"\\t\\t6统计职工信息\\n\");
prf(\"\\t\\t0返回\\n\");
prf(\"=\\n\");
scanf(\"%d\",&choicemanage);
switch(choicemanage)
{
1:
input;//输入职工信息
;
2:
display;//显示职工信息
;
3:
change;//修改职工信息
;
4:
add;//追加个职工信息
;
5:
del;//删除个职工信息
;
6:
count;//统计职工信息
;
0:
prf(\"谢谢你使用再见\\n\");
;
default:


prf(\"你输入有错请重新输入\\n\");
}
prf(\"是否继续管理?(y/n)\");
scanf(\"%s\",&choice);
}
(toupper(choice)\'N\'||(choice)\'n\')
{
prf(\"输入完毕,任意键返回\\n\");
getch;
;
}


}


void input
{
FILE *fp;
i=0;
char choiceinput=\'y\';
((fp=fopen(\"employee.txt\",\"w\"))NULL)
;
while(choiceinput\'y\'||choiceinput\'Y\')
{
i;
prf(\"第%d个职工\\n\",i);
prf(\"\\n\");
prf(\"请你输入工号:\\n\");//输入工号
scanf(\"%d\",&em[i].num);
prf(\"\\n\");
prf(\"请你输入职位:\\n\");//输入职位
prf(\"1为董事长2为总经理3为副总经理\\n\");
prf(\"4为经理5为副经理6为秘书\\n\");
prf(\"7为技术员8为领班9为员工\\n\");

scanf(\"%d\",&em[i].position);
prf(\"\\n\");
prf(\"请你输入姓名:\\n\");//输入姓名
scanf(\"%s\",em[i].name);
prf(\"\\n\");
prf(\"请你输入性别以m为男f为女:\\n\");//输入性别
scanf(\"%s\",em[i].sex);
prf(\"\\n\");
prf(\"请你输入文化程度:\\n\");//输入文化程度
prf(\"1为专家2为博士3为硕士4为学士5为其他\\n\");
scanf(\"%d\",&em[i].cult);
prf(\"\\n\");
prf(\"请你输入工资:\\n\");//输入工资
scanf(\"%d\",&em[i].salary);
prf(\"\\n\");
prf(\"请你输入身体情况:\\n\");//身体情况
prf(\"1好2为般3为差\\n\");
scanf(\"%d\",&em[i].state);
prf(\"\\n\");
prf(\"是否继续输入?(y/n)\\n\");
scanf(\"%s\",&choiceinput);
fwrite(&em[i],(struct employee),1,fp);
}
(toupper(choiceinput)\'N\')
{
fclose(fp);
prf(\"输入完毕,任意键返回\\n\");
getch;
;
}
}


void display//显示职工信息
{
FILE *fp;
i;
((fp=fopen(\"employee.txt\",\"r\"))NULL)
;
prf(\"输出结果:\\n\");
prf(\"工号 职位 姓名 性别 文化程度 工资 身体情况\\n\");
for(i=0;fread(&em[i],(struct employee),1,fp)!=0;i)
{
prf(\"工号%d\\n\",em[i].num);
prf(\"职位为%d\\n\",em[i].position);
prf(\"1为董事长2为总经理3为副总经理\\n\");
prf(\"4为经理5为副经理6为秘书\\n\");
prf(\"7为技术员8为领班9为员工\\n\");
prf(\"姓名为%s\\n\",em[i].name);
prf(\"性别为%s\\n\",em[i].sex);
prf(\"其中m为男f为女\\n\");
prf(\"文化程度为%d\\n\",em[i].cult);
prf(\"1为专家2为博士3为硕士4为学士5为其他\\n\");
prf(\"工资为%d\\n\",em[i].salary);
prf(\"身体情况为%d\\n\",em[i].state);
prf(\"1好2为般3为差\\n\");
}
prf(\"完毕按任意键返回\\n\");
getch;
fclose(fp);
;
}


void change
{
FILE *fp;
i;
char chname[8];
choicechange;
prf(\"请你输入要修改姓名:\\n\");
scanf(\"%s\",&chname);
((fp=fopen(\"employee.txt\",\"w+\"))NULL)
{
prf(\"不能够打开这个文件\\n\");
;
}
for(i=0;i<N;i)
{
(strcmp(chname,em[i].name)0)
{
prf(\"这是你要修改信息\\n\");
prf(\"工号为%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);
prf(\"------------------------------------------------------------\\n\");
prf(\"请你输入要修改部分:\\n\");
prf(\"\\n\");
prf(\"1修改职位\\n\");
prf(\"2修改文化程度\\n\");
prf(\"3修改工资\\n\");
prf(\"4修改身体情况\\n\");
prf(\"0退出系统\\n\");
prf(\"\\n\");
prf(\"请选择\\n\");
scanf(\"%d\",&choicechange);
switch(choicechange)
{
1:
em[i].position=changeposition;


;
2:
em[i].cult=changecult;
;
3:
em[i].salary=changesalary;
;
4:
em[i].state=changestate;
;
0:
;
default :
prf(\"输入有\");
}
fwrite(&em[i],(struct employee),1,fp);
}
}
fclose(fp);
prf(\"操作完成按任意键返回\\n\");
getch;
;
}


changeposition
{
position;
prf(\"请你输入新职位:\\n\");
prf(\"1为董事长2为总经理3为副总经理\\n\");
prf(\"4为经理5为副经理6为秘书\\n\");
prf(\"7为技术员8为领班9为员工\\n\");
scanf(\"%d\",&position);
(position);
}


changecult
{
cult;
prf(\"请你输入新文凭:\\n\");
prf(\"1为专家2为博士3为硕士4为学士5为其他\\n\");
scanf(\"%d\",&cult);
(cult);
}


changesalary
{
salary;
prf(\"请你输入新工资:\\n\");
scanf(\"%d\",&salary);
(salary);
}


changestate
{
state;
prf(\"请你输入现在身体情况:\\n\");
prf(\"1好2为般3为差\\n\");
scanf(\"%d\",&state);
(state);
}


void add//追加个职工信息
{
struct employee emp;
FILE *fp;
i=0;
((fp=fopen(\"employee.txt\",\"ab+\"))NULL)
{
prf(\"不能够打开这个文件\\n\");
getch;
;
}
prf(\"请你输入新人内容:\\n\");
prf(\"请你输入工号:\\n\");//输入工号
scanf(\"%d\",&emp.num);
prf(\"请你输入职位:\\n\");//输入职位
prf(\"1为董事长2为总经理3为副总经理\\n\");
prf(\"4为经理5为副经理6为秘书\\n\");
prf(\"7为技术员8为领班9为员工\\n\");
scanf(\"%d\",&emp.position);
prf(\"请你输入姓名:\\n\");//输入姓名
scanf(\"%s\",emp.name);
prf(\"请你输入性别以m为男f为女:\\n\");//输入性别
scanf(\"%s\",emp.sex);
prf(\"请你输入文化程度:\\n\");//输入文化程度
prf(\"1为专家2为博士3为硕士4为学士5为其他\\n\");
scanf(\"%d\",&emp.cult);
prf(\"请你输入工资:\\n\");//输入工资
scanf(\"%d\",&emp.salary);
prf(\"请你输入身体情况:\\n\");//身体情况
prf(\"1好2为般3为差\\n\");
scanf(\"%d\",&emp.state);
fwrite(&emp,(struct employee),1,fp);
rewind(fp);
prf(\"插入完毕按任意键返回\\n\");
getch;
fclose(fp);
;
}


void del//删除个职工信息
{
i=0;
char delname[8];
FILE *fp;
((fp=fopen(\"employee.txt\",\"w\"))NULL)
{
prf(\"文件为空不能够打开\\n\");
prf(\"按任意键返回\\n\");
getch;
;
}
prf(\"请你输入要删除姓名:\\n\");//删除职工信息
scanf(\"%s\",delname);
for(i=0;fread(&em[i],(struct employee),1,fp)!=0;i)
{
(strcmp(em[i].name,delname)!=0)
fwrite(&em[i],(struct employee),1,fp);
}
fclose(fp);
((fp=fopen(\"employee.txt\",\"r\"))NULL)//显示新职工信息
;
prf(\"新职工信息为:\\n\");
for(i=0;fread(&em[i],(struct employee),1,fp)!=0;i)
{
prf(\"工号%d\",em[i].num);
prf(\"职位为%d\",em[i].position);
prf(\"1为董事长2为总经理3为副总经理\\n\");
prf(\"4为经理5为副经理6为秘书\\n\");
prf(\"7为技术员8为领班9为员工\\n\");
prf(\"姓名为%s\",em[i].name[8]);
prf(\"性别为%s\",em[i].sex[2]);
prf(\"其中m为男f为女\");
prf(\"文化程度为%d\",em[i].cult);
prf(\"1为专家2为博士3为硕士4为学士5为其他\\n\");
prf(\"工资为%d\",em[i].salary);
prf(\"身体情况为%d\",em[i].state);
prf(\"1好2为般3为差\\n\");
fclose(fp);
}
}



void count
{
FILE *fp;
i=0;
num=0;//总人数统计


mnum=0,fnum=0;//性别人数统计
expernum=0,doctornum=0,masternum=0,bechelornum=0,othernum=0;//学位人数统计
dsznum=0,zglnum=0,fzglnum=0,glnum=0,fglnum=0;//职位人数统计
mishunum=0,jsynum=0,lbnum=0,ygnum=0;
((fp=fopen(\"employee.txt\",\"r\"))NULL)
{
prf(\"不能够打开这个文件\\n\");
prf(\"按任意键继续\\n\");
getch;
;
}
do
{
fread(&em[i],(struct employee),1,fp);
(feof(fp))
;
num;
(strcmp(em[i].sex,\"m\")0)
mnum;
(strcmp(em[i].sex,\"f\")0)
fnum;
(em[i].cult1)
expernum;
(em[i].cult2)
doctornum;
(em[i].cult3)
masternum;
(em[i].cult=4)
bechelornum;
(em[i].cult=5)
othernum;
(em[i].position1)//职位统计
dsznum;
(em[i].position2)
zglnum;
(em[i].position3)
fzglnum;
(em[i].position4)
glnum;
(em[i].position5)
fglnum;
(em[i].position6)
mishunum;
(em[i].position7)
jsynum;
(em[i].position8)
lbnum;
(em[i].position9)
ygnum;
i;
}while(1);
prf(\"总人数为%d\\n\",num);
prf(\"性别分类=\\n\");
prf(\"男人数为%d\\n\",mnum);
prf(\"女人数为%d\\n\",fnum);
prf(\"=文凭分类=\\n\");
prf(\"专家数为%d\\n\",expernum);
prf(\"博士数为%d\\n\",doctornum);
prf(\"硕士数为%d\\n\",masternum);
prf(\"学士数为%d\\n\",bechelornum);
prf(\"其他数为%d\\n\",othernum);
prf(\"=职位分类\\n\");
prf(\"董事长数为%d\\n\",dsznum);
prf(\"总经理数为%d\\n\",zglnum);
prf(\"副总经理数为%d\",fzglnum);
prf(\"经理数为%d\",glnum);
prf(\"副经理数为%d\",fglnum);
prf(\"秘书数为%d\",mishunum);
prf(\"技术员数为%d\",jsynum);
prf(\"领班人数为%d\",lbnum);
prf(\"员工数为%d\",ygnum);
fclose(fp);
;
}





void query
{
FILE *fp;
i=0;
char quename[8];
((fp=fopen(\"employee.txt\",\"r\"))NULL)
{
prf(\"不能够打开文件按任意键返回\\n\");
getch;
;
}
prf(\"请你输入要查询姓名\\n\");
scanf(\"%s\",quename);
for(i=0;fread(&em[i],(struct employee),1,fp)!=0;i)
{
(strcmp(em[i].name,quename)0) /*找到,并显示该职工记录*/
{
prf(\"\\t\\t\\n查询到职工号或姓名为信息如下:\\n\");
prf(\"以下是你要查询信息\\n\");
prf(\"工号%d\",em[i].num);
prf(\"职位为%d\",em[i].position);
prf(\"\\t1为董事长2为总经理3为副总经理\\n\");
prf(\"\\t4为经理5为副经理6为秘书\\n\");
prf(\"\\t7为技术员8为领班9为员工\\n\");
prf(\"姓名为%s\",em[i].name);
prf(\"性别为%s\",em[i].sex);
prf(\"\\t其中m为男f为女\");
prf(\"文化程度为%d\",em[i].cult);
prf(\"\\t1为专家2为博士3为硕士4为学士5为其他\\n\");
prf(\"工资为%d\",em[i].salary);
prf(\"身体情况为%d\",em[i].state);
prf(\"\\n\");
prf(\"查询完毕按任意键返回\\n\");
getch;
fclose(fp);
;
}
}
prf(\"没有这样按任意键返回\\n\");
getch;
fclose(fp);
;

}


void querysalary
{
i;
FILE *fp1,*fp2;
creat;
((fp1=fopen(\"employee.txt\",\"w+\"))NULL)
;
for(i=0;fread(&em[i],(struct employee),1,fp1)!=0;i)
{
prf(\"输出结果为:\\n\");
prf(\"工号%d\",em[i].num);
prf(\"职位为%d\",em[i].position);
prf(\"1为董事长2为总经理3为副总经理\\n\");


prf(\"4为经理5为副经理6为秘书\\n\");
prf(\"7为技术员8为领班9为员工\\n\");
prf(\"姓名为%s\",em[i].name[8]);
prf(\"性别为%s\",em[i].sex[2]);
prf(\"其中m为男f为女\");
prf(\"文化程度为%d\",em[i].cult);
prf(\"1为专家2为博士3为硕士4为学士5为其他\\n\");
prf(\"工资为%d\",em[i].salary);
prf(\"身体情况为%d\",em[i].state);
prf(\"1好2为般3为差\\n\");
strcpy(emps[i].name,em[i].name);
emps[i].salary=em[i].salary;
}
((fp2=fopen(\"empsalary.txt\",\"w\"))NULL)
;
for(i=0;i<N;i)
fwrite(&emps[i],(struct empsalary),1,fp2);
fclose(fp1);
fclose(fp2);
}



void creat
{
FILE *fp;
((fp=fopen(\"employee.txt\",\"w+\"))NULL)
;
input;
fclose(fp);
}



void communicate
{
choicecommunicate;
prf(\"欢迎进入通讯录系统\\n\");
prf(\"请你选择操作类型:\\n\");
prf(\"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\");
prf(\"1为输入通讯录信息\\n\");
prf(\"2为查询通讯录信息\\n\");
prf(\"3为修改通讯录信息\\n\");
prf(\"0为退出通讯录系统\\n\");
prf(\"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\n\");
scanf(\"%d\",&choicecommunicate);
switch(choicecommunicate)
{
1:
inputcommunicate;
;
2:
querycommunicate;
;
3:
changecommunicate;
;
0:
{
prf(\"谢谢使用再见\\n\");
prf(\"按任意键返回\\n\");
getch;
;
}
default:
prf(\"输入有错\\n\");
}

}




void inputcommunicate
{
FILE *fp;
choiceincom=\'y\';
i=0;
((fp=fopen(\"empcom.txt\",\"w\"))NULL)
{
prf(\"不能够打开文件\\n\");
prf(\"任意键返回\\n\");
getch;
;
}
prf(\"请你输入通讯录信息:\\n\");
while(choiceincom\'y\'||choiceincom\'Y\')
{
i;
prf(\"第%d个职工\\n\",i);
prf(\"请你输入姓名:\\n\");
scanf(\"%s\",empc[i].name);
prf(\"请你输入办公室电话号码:\\n\");
scanf(\"%s\",empc[i].officetel);
prf(\"请你输入家庭电话号码:\\n\");
scanf(\"%s\",empc[i].hometel);
prf(\"请你输入手机号码:\\n\");
scanf(\"%s\",empc[i].handtel);
prf(\"请你输入地址:\\n\");
scanf(\"%s\",empc[i].address);
prf(\"是否继续输入?(y/n)\\n\");


choiceincom=getch;
fwrite(&empc[i],(struct communication),1,fp);
}
(toupper(choiceincom)\'N\')
{
fclose(fp);
prf(\"输入完毕,任意键返回\\n\");
;
}



}



void querycommunicate
{
FILE *fp;
i=0;
char qcname[8];
((fp=fopen(\"empcom.txt\",\"r\"))NULL)
{
prf(\"不能够打开文件按任意键返回\\n\");
getch;
;
}
prf(\"请你输入要查询姓名:\\n\");
scanf(\"%s\",qcname);
for(i=0;fread(&empc[i],(struct communication),1,fp)!=0;i)
{
(strcmp(empc[i].name,qcname)0)
{
prf(\"以下为您所要求信息:\\n\");
prf(\"姓名为%s\\n\",empc[i].name);
prf(\"办公室电话号码为%s\\n\",empc[i].officetel);
prf(\"家庭电话号码为%s\\n\",empc[i].hometel);
prf(\"手机号码为%s\\n\",empc[i].handtel);
prf(\"家庭地址为%s\\n\",empc[i].address);
prf(\"查询完毕按任意键返回\\n\");
getch;
fclose(fp);
;
}
}
prf(\"没有这样按任意键返回\\n\");
getch;
fclose(fp);
;
}





void changecommunicate
{
FILE *fp;
i=0;
char chcname[8];
choicecom;
((fp=fopen(\"empcom.txt\",\"w+\"))NULL)
{
prf(\"打不开文件按任意键返回\\n\");
getch;
;
}
prf(\"请你输入你要修改姓名:\\n\");
scanf(\"%s\",chcname);
for(i=0;fread(&empc[i],(struct communication),1,fp)!=0;i)
{
(strcmp(empc[i].name,chcname)0)
{
prf(\"以下为您所要修改信息:\\n\");
prf(\"姓名为%s\\n\",empc[i].name);
prf(\"办公室电话号码为%s\\n\",empc[i].officetel);
prf(\"家庭电话号码为%s\\n\",empc[i].hometel);
prf(\"手机号码为%s\\n\",empc[i].handtel);
prf(\"家庭地址为%s\\n\",empc[i].address);
prf(\"请你选择要修改东西:\\n\");
prf(\"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\\n\");
prf(\"1修改办公室电话号码\\n\");


prf(\"2修改家庭电话号码\\n\");
prf(\"3修改手机电话号码\\n\");
prf(\"0退出系统\\n\");
prf(\"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\\n\");
scanf(\"%d\",&choicecom);
switch(choicecom)
{
1:
changetel1;
;
2:
changetel2;
;
3:
changetel3;
;
0:
;
default:
prf(\"输入有错\\n\");
}

}
}
}


void changetel1
{
prf(\"参照上面有时间再编\\n\");
}

void changetel2
{
prf(\"参照上面有时间再编\\n\");
}

void changetel3
{
prf(\"参照上面有时间再编\\n\");
}

Tags: 

延伸阅读

最新评论

发表评论