分类: C/C++
2008-05-31 13:56:59
#define N 100
struct employee//职工基本情况
{
int num;//工号
int position;//职位1为董事长2为总经理3为副总经理等
char name[8];//姓名
char sex[2];//性别f为女m为男
int age;//年龄
int cult;//文化程度1为专家2为博士3为硕士4为学士5为其他
int salary;//工资
int 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];
int salary;
}emps[N];
void manage();
void query();
void communicate();
void input();
void display();
void change();
void del();
void add();
void count();
int changeposition();
int changecult();
int changesalary();
int changestate();
void querysalary();
void creat();
void inputcommunicate();
void querycommunicate();
void changecommunicate();
void changetel1();
void changetel2();
void changetel3();
char password[7]=\"123456\";
void main()
{
int choice;
char s[7];
int flag=0;
int n=3;
do
{
printf(\"请你输入密码:\\n\");
scanf(\"%s\",s);
if(!strcmp(s,password))//若密码正确
{
printf(\"恭喜你成功登陆了");
flag=1;
break;
}
else
{
printf(\"输入有错误请重新输入:\\n\");
n--;
}
}while(n>0);
if(!flag)
{
printf(\"你的输入次数已到再见");
}
do
{
printf(\"~~~~~~~~~~\\t\\t\\t~~~~~~~~~~~~\\n\");
printf(\"欢迎进入职工管理系统中文版");
printf(\"制作人:李华诗班级:计034班学号:2003041150\\n\");
printf(\"联系地址:广西工学院");
printf(\"%%%%%%%%%%%%%%%%%%%%%%%%%%%\\n\");
printf(\"请你选择操作类型:\\n\");
printf(\"==============\\t\\t==============\\n\");
printf(\"进入管理系统");
printf(\"进入查询系统");
printf(\"进入通讯录");
printf(\"退出系统");
printf(\"==============\\t\\t==============\\n\");
printf(\"说明:版权归作者所有违者必究");
scanf(\"%d\",&choice);
switch(choice)
{
case 1:
manage();
break;
case 2:
query();
break;
case 3:
communicate();
break;
case 0:
{
printf(\"谢谢使用再见");
exit(0);
}
default:
{
printf(\"输入有错误请重新输入:\\n\");
return;
}
}
}while(1);
}
printf(\"你的输入有错请重新输入");
}
printf(\"是否继续管理?(y/n)\");
scanf(\"%s\",&choice);
}
if(toupper(choice)==\'N\'||(choice)==\'n\')
{
printf(\"输入完毕,任意键返回");
getch();
return;
}
}
void input()
{
FILE *fp;
int i=0;
char choiceinput=\'y\';
if((fp=fopen(\"employee.txt\",\"w\"))==NULL)
return;
while(choiceinput==\'y\'||choiceinput==\'Y\')
{
i++;
printf(\"第%d个职工);
printf(\"");
printf(\"请你输入工号:\\n\");//输入工号
scanf(\"%d\",&em[i].num);
printf(\"");
printf(\"请你输入职位:\\n\");//输入职位
printf(\"1为董事长2为总经理3为副总经理");
printf(\"4为经理5为副经理6为秘书");
printf(\"7为技术员8为领班9为员工");
scanf(\"%d\",&em[i].position);
printf(\"");
printf(\"请你输入姓名:\\n\");//输入姓名
scanf(\"%s\",em[i].name);
printf(\"");
printf(\"请你输入性别以m为男f为女:\\n\");//输入性别
scanf(\"%s\",em[i].sex);
printf(\"");
printf(\"请你输入文化程度:\\n\");//输入文化程度
printf(\"1为专家2为博士3为硕士4为学士5为其他");
scanf(\"%d\",&em[i].cult);
printf(\"");
printf(\"请你输入工资:\\n\");//输入工资
scanf(\"%d\",&em[i].salary);
printf(\"");
printf(\"请你输入身体情况:\\n\");//身体情况
printf(\"1好2为一般3为差");
scanf(\"%d\",&em[i].state);
printf(\"");
printf(\"是否继续输入?(y/n)\\n\");
scanf(\"%s\",&choiceinput);
fwrite(&em[i],sizeof(struct employee),1,fp);
}
if(toupper(choiceinput)==\'N\')
{
fclose(fp);
printf(\"输入完毕,任意键返回");
getch();
return;
}
}void display()//显示职工信息
{
FILE *fp;
int i;
if((fp=fopen(\"employee.txt\",\"r\"))==NULL)
return;
printf(\"输出结果:\\n\");
printf(\"工号 职位 姓名 性别 文化程度 工资 身体情况");
for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
{
printf(\"工号%d\\n\",em[i].num);
printf(\"职位为%d\\n\",em[i].position);
printf(\"1为董事长2为总经理3为副总经理");
printf(\"4为经理5为副经理6为秘书");
printf(\"7为技术员8为领班9为员工");
printf(\"姓名为%s\\n\",em[i].name);
printf(\"性别为%s\\n\",em[i].sex);
printf(\"其中m为男f为女");
printf(\"文化程度为%d\\n\",em[i].cult);
printf(\"1为专家2为博士3为硕士4为学士5为其他");
printf(\"工资为%d\\n\",em[i].salary);
printf(\"身体情况为%d\\n\",em[i].state);
printf(\"1好2为一般3为差");
}
printf(\"完毕按任意键返回");
getch();
fclose(fp);
return;
}
void change()
{
FILE *fp;
int i;
char chname[8];
int choicechange;
printf(\"请你输入要修改的人的姓名:\\n\");
scanf(\"%s\",&chname);
if((fp=fopen(\"employee.txt\",\"w+\"))==NULL)
{
printf(\"不能够打开这个文件");
return;
}
for(i=0;i
if(strcmp(chname,em[i].name)==0)
{
printf(\"这是你要修改的人的信息");
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修改职位");
printf(\"2修改文化程度");
printf(\"3修改工资");
printf(\"4修改身体情况");
printf(\"0退出系统");
printf(\"======================\\n\");
printf(\"请选择");
scanf(\"%d\",&choicechange);
switch(choicechange)
{
case 1:
em[i].position=changeposition();
break;
case 2:
em[i].cult=changecult();
break;
case 3:
em[i].salary=changesalary();
break;
case 4:
em[i].state=changestate();
break;
case 0:
return;
default :
printf(\"输入有错误\");
}
fwrite(&em[i],sizeof(struct employee),1,fp);
}
}
fclose(fp);
printf(\"操作完成按任意键返回");
getch();
return;
}
int changeposition()
{
int newposition;
printf(\"请你输入新职位:\\n\");
printf(\"1为董事长2为总经理3为副总经理");
printf(\"4为经理5为副经理6为秘书");
printf(\"7为技术员8为领班9为员工");
scanf(\"%d\",&newposition);
return(newposition);
}int changecult()
{
int newcult;
printf(\"请你输入新的文凭:\\n\");
printf(\"1为专家2为博士3为硕士4为学士5为其他");
scanf(\"%d\",&newcult);
return(newcult);
}
int changesalary()
{
int newsalary;
printf(\"请你输入新的工资:\\n\");
scanf(\"%d\",&newsalary);
return(newsalary);
}
int changestate()
{
int newstate;
printf(\"请你输入现在的身体情况:\\n\");
printf(\"1好2为一般3为差");
scanf(\"%d\",&newstate);
return(newstate);
}
void add()//追加一个职工信息
{
struct employee emp;
FILE *fp;
int i=0;
if((fp=fopen(\"employee.txt\",\"ab+\"))==NULL)
{
printf(\"不能够打开这个文件");
getch();
return;
}
printf(\"请你输入新人的内容:\\n\");
printf(\"请你输入工号:\\n\");//输入工号
scanf(\"%d\",&emp.num);
printf(\"请你输入职位:\\n\");//输入职位
printf(\"1为董事长2为总经理3为副总经理");
printf(\"4为经理5为副经理6为秘书");
printf(\"7为技术员8为领班9为员工");
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为其他");
scanf(\"%d\",&emp.cult);
printf(\"请你输入工资:\\n\");//输入工资
scanf(\"%d\",&emp.salary);
printf(\"请你输入身体情况:\\n\");//身体情况
printf(\"1好2为一般3为差");
scanf(\"%d\",&emp.state);
fwrite(&emp,sizeof(struct employee),1,fp);
rewind(fp);
printf(\"插入完毕,按任意键返回");
getch();
fclose(fp);
return;
}
void del()//删除一个职工信息
{
int i=0;
char delname[8];
FILE *fp;
if((fp=fopen(\"employee.txt\",\"w\"))==NULL)
{
printf(\"文件为空,不能够打开");
printf(\"按任意键返回");
getch();
return;
}
printf(\"请你输入要删除的人的姓名:\\n\");//删除的职工的信息
scanf(\"%s\",delname);
for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
{
if(strcmp(em[i].name,delname)!=0)
fwrite(&em[i],sizeof(struct employee),1,fp);
}
fclose(fp);
if((fp=fopen(\"employee.txt\",\"r\"))==NULL)//显示新的职工的信息
return;
printf(\"新的职工的信息为:\\n\");
for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
{
printf(\"工号%d\",em[i].num);
printf(\"职位为%d\",em[i].position);
printf(\"1为董事长2为总经理3为副总经理");
printf(\"4为经理5为副经理6为秘书");
printf(\"7为技术员8为领班9为员工");
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为其他");
printf(\"工资为%d\",em[i].salary);
printf(\"身体情况为%d\",em[i].state);
printf(\"1好2为一般3为差");
fclose(fp);
}
}