📄 企业员工管理系统.c
字号:
#include<stdio.h>
#include<string.h>
#include<graphics.h>
#define N 100
void password();
char *getpassword(char password[]);
void change();
void welcome();
void manage();
void minput();
void mdisplay();
void mchange();
char changeposition(); //修改职务
char changecult(); //修改文化程度
void changesalary(); //修改工资
char changestate();
void madd();
void mdelete();
void mcount();
void query();
void communicate();
void cinput();
void cquery();
void cchange();
struct employee
{
char num[8];
char position;//职位
char name[8];//姓名
char sex; //性别定义为char为以后的输出做准备
char age[3];
char cult;
char salary[8];//工资
char state;//健康情况
}em[N];
struct communication
{
char name[8];
char officetel[13];
char hometel[13];
char handtel[13];
char address[13];
}empc[N];
void main()
{
int driver=DETECT,mode=0;
registerbgidriver(EGAVGA_driver);
initgraph(&driver,&mode,"");
setbkcolor(6);
password();
welcome();
}
void password()
{
int i=3;
int flag;
char choice;
int choicemark=0;
FILE *fpr;
FILE *fpw;
char get[128];
char once[128];
char twice[128];
char load[128];
char input[128];
if((fpr=fopen("password.txt","r"))==NULL)
{
fclose(fpr);
do{
printf("请输入新密码:\n");
strcpy(once,getpassword(get));
printf("请再次输入:\n");
strcpy(twice,getpassword(get));
if(!strcmp(once,twice))
break;
else
{
printf("您输入的密码不匹配,请重新输入。\n");
flag=1;
}
}while(flag);
fpw=fopen("password.txt","w");
fwrite(once,sizeof(char),128,fpw);
fclose(fpw);
printf("您输入的密码是\n%s\n请记牢",once);
getch();
clrscr();
}
else
{
//fpr=fopen("password.txt","r");
fread(load,sizeof(char),128,fpr);
//puts(load);
do
{
printf("请输入密码(您还有%d次机会):\n",i);
strcpy(input,getpassword(get));
if (!strcmp(input,load))
{
fclose(fpr);
printf("您输入的密码正确\n");
printf("按任意键继续\n");
getch();
clrscr();
break;
}
else
{
i--;
if(i)
printf("对不起,您输入的密码错误,请重新输入\n");
else printf("对不起,您输入的密码错误\n");
}
} while(i>0);
if (!i)
{
printf("您输入的次数已到,谢谢使用再见!\n");
fclose(fpr);
exit(1);
}
}
do
{
printf("1.登录系统\n");
printf("2.修改密码\n");
printf("3.退出系统\n");
fflush(stdin);
scanf("%c",&choice);
switch(choice)
{
case '1':return;
break;
case '2':
{
change();
choicemark=1;
}
break;
case '3':exit(1);
break;
default:
{
printf("您的输入有误,请重新输入:\n");
choicemark=1;
}
break;
}
} while(choicemark);
getch();
}
char *getpassword(char password[])
{
int i=0;
while((password[i]=getch())!=13)
{
if(password[i]==8)
{
if(i>0)
{
printf("\b \b");
i--;
}
continue;
}
printf("*");
i++;
}
password[i]='\0';
printf("\n");
return(password);
}
void change()
{
FILE *fpr,*fpw;
int flag,i=3;
int choice;
char load[128];
char input[128];
char newfirst[128];
char newtwice[128];
char get[128];
fpr=fopen("password.txt","r");
fread(load,sizeof(char),128,fpr);
do{
printf("请输入旧密码:\n");
strcpy(input,getpassword(get));
if(!strcmp(input,load))
{
fclose(fpr);
fpw=fopen("password.txt","w");
do
{
printf("请输入新密码:\n");
strcpy(newfirst,getpassword(get));
printf("请再次输入新密码:\n");
strcpy(newtwice,getpassword(get));
if (!strcmp(newtwice,newfirst))
{
fwrite(newfirst,sizeof(char),128,fpw);
fclose(fpw);
printf("更改成功\n");
printf("您输入的密码是 %s\n请记牢\n",newfirst);
getch();
clrscr();
return;
}
else
{
printf("您输入的密码不匹配,请重新输入。\n");
flag=1;
}
} while(flag);
}
else
{
i--;
if (i)
printf("对不起,您输入的密码错误,请重新输入\n");
else
printf("对不起,您输入的密码错误\n");
}
}while(i>0);
if (!i)
{
fclose(fpr);
printf("您输入的次数已到,将返回上一层\n");
return;
}
}
/* i--;
if(i)
printf("对不起,您输入的密码错误,请重新输入\n");
else printf("对不起,您输入的密码错误\n");
}
} while(i>0);
if (!i)
{
printf("您输入的次数已到,谢谢使用再见!\n");
fclose(fpr);
exit(1);
}*/
void welcome()
{
char choice;
int stop;
printf("恭喜你成功登录了\n");
printf("~~~~~~~~~~~ ~~~~~~~~~~~~\n");
printf(" 欢迎进入职工管理系统中文版\n");
printf("制作人:赵旭辉 班级:07214 学号:0721444\n");
printf("联系地址:哈尔滨华夏计算机职业技术学院\n");
printf("说明制作权归作者所以违者必究\n");
printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
for(stop=0;stop<80;stop++)
delay(132767);
do{
for(stop=0;stop<150;stop++)
delay(132767);
//delay(132767)功 能: 将程序的执行暂停一段时间(毫秒)Emits a 440-Hz tone for 500 milliseconds用 法: void delay(unsigned milliseconds);
clrscr();
printf(" 请选择操作类型:\n");
printf("================ =================\n");
printf("1.进入管理系统\n");
printf("2.进入查询系统\n");
printf("3.进入通讯录\n");
printf("0.退出系统\n");
fflush(stdin);
scanf("%c",&choice);
switch(choice)
{
case '1':manage();break;
case '2':query();break;
case '3':communicate();break;
case '0':exit(0);break;
default:printf("输入错误请重新输入\n");break;
}
}while(1);
}
void manage()
{
int stop;
char choice;
do{
for(stop=0;stop<50;stop++)
delay(132767);
clrscr();
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");
fflush(stdin);
scanf("%c",&choice);
switch(choice)
{
case '1':minput();break;
case '2':mdisplay();break;
case '3':mchange();break;
case '4':madd();break;
case '5':mdelete();break;
case '6':mcount();break;
case '0':return;break;
default: printf("输入错误请重新输入\n");break;
}
}while(1);
}
void minput()
{
FILE *fp;
int i=0,sexflag,stateflag,agei=0,salaryi=0;
char choice;
char choice1;//文件存在的继续判断
if((fp=fopen("employee.txt","r"))==NULL)
;
else
{ fclose(fp);
printf("文件已存在继续输入将覆盖掉原来的数据\n原来的信息将丢失\n是否继续?(Y/N)");
fflush(stdin);
scanf("%c",&choice1);
if(choice1=='y'||choice1=='Y') //只有if(choice1=='y'||choice1=='Y')才可行if(choice1!='y'||choice1!='Y')不可行
;
else return;
}
fp=fopen("employee.txt","w");
do
{
i++;
printf("第%d个职工\n",i);
printf("\n");
printf("请你输入工号:\n");
fflush(stdin);
scanf("%s",em[i].num);
do{ printf("\n");
printf("请您输入职位:\n");
printf("1为董事长2为总经理3为副总经理\n");
printf("4为经理5为副经理6为秘书\n");
printf("7为技术员8为领班9为员工\n");
fflush(stdin);
scanf("%c",&em[i].position);
if(em[i].position<49||em[i].position>57)
printf("您的输入有误,请重新输入\n");
}while(em[i].position<49||em[i].position>57); //49 --->1 . --57 --->9
printf("\n");
printf("请你输入姓名:\n");
fflush(stdin);
scanf("%s",em[i].name);
do{ printf("\n");
printf("请你输入性别以m为男f为女:\n");
fflush(stdin);
scanf("%c",&em[i].sex);
if(em[i].sex==102||em[i].sex==109)
sexflag=0;
else
{
printf("您的输入有误,请重新输入\n");
sexflag=1;
}
}while(sexflag);
printf("请输入年龄\n");
fflush(stdin);
do
{
em[i].age[agei]=getch();
if (em[i].age[agei]<48||em[i].age[agei]>57)
;
else
{
if(em[i].age[agei]==8)
{
if(agei>0)
{
printf("\b \b");
agei--;
}
continue;
}
printf("%c",em[i].age[agei]);
agei++;
}
if(em[i].age[agei]==13&&agei!=0)
break;
}
while (em[i].age[agei]>48||em[i].age[agei]<57);
em[i].age[agei]='\0';
do{ printf("\n");
printf("请你输入文化程度:\n");
printf("1为专家2为博士3为硕士4为学士5为其他\n");
fflush(stdin);
scanf("%c",&em[i].cult);
if(em[i].cult<49||em[i].cult>53)
printf("您的输入有误,请重新输入\n");
}while(em[i].cult<49||em[i].cult>53); //49 --->1 . --53 --->5
printf("\n");
printf("请你输入工资\n");
fflush(stdin);
do
{
em[i].salary[salaryi]=getch();
if (em[i].salary[salaryi]<48||em[i].salary[salaryi]>57)
;
else
{
if(em[i].salary[salaryi]==8)
{
if(salaryi>0)
{
printf("\b \b");
salaryi--;
}
continue;
}
printf("%c",em[i].salary[salaryi]);
salaryi++;
}
if(em[i].salary[salaryi]==13&&salaryi!=0)
break;
}
while (em[i].salary[salaryi]>48|em[i].salary[salaryi]<57);
em[i].salary[salaryi]='\0';
do{
printf("\n");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -