⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 企业员工管理系统.c

📁 有密码功能 密码加密功能 在wintc编译通过
💻 C
📖 第 1 页 / 共 3 页
字号:
#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 + -