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

📄 企业员工管理系统.c

📁 有密码功能 密码加密功能 在wintc编译通过
💻 C
📖 第 1 页 / 共 3 页
字号:
				rewind(fp);
			while(fread(&empd,sizeof(struct employee),1,fp))
			{
				count++;
			}
			temp=(struct employee *)malloc(count*(sizeof(struct employee)));
			rewind(fp);
			fread(temp,sizeof(struct employee),count,fp);
			fclose(fp);
			if((fp=fopen("employee.txt","w")==NULL)){
				printf("Error Create new telefon.dat file");
				return;
			}
			else
			{
				fclose(fp);
				fp=fopen("employee.txt","a");
				for(i=0;i<count;i++)
				{
					if(strcmp(temp[i].name,emp1.name)==0)
						;
					else
						fwrite(&temp[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("工号\t职位\t\t姓名\t年龄\t性别\t文化程度\t工资\t身体情况\n");
			printf("%s\t",em[i].num);
			switch(em[i].position)
			{
			case '1':printf("董事长\t\t");break;
			case '2':printf("总经理\t\t");break;
			case '3':printf("副总经理\t");break;
			case '4':printf("经理\t\t");break;
			case '5':printf("副经理\t\t");break;
			case '6':printf("秘书\t\t");break;
			case '7':printf("技术员\t\t");break;
			case '8':printf("领班\t\t");break;
			case '9':printf("员工\t\t");break;
			}
			printf("%s\t",em[i].name);
			printf("%d\t",em[i].age);
			switch(em[i].sex)
			{
			case 'm':printf("男\t");break;
			case 'f':printf("女\t");break;
			}
			switch(em[i].cult)
			{
			case '1':printf("专家\t\t");break;
			case '2':printf("博士\t\t");break;
			case '3':printf("硕士\t\t");break;
			case '4':printf("学士\t\t");break;
			case '5':printf("其他\t\t");break;
			}
			printf("%d\t",em[i].salary);
			switch(em[i].state)
			{
			case '1':printf("好\n");break;
			case '2':printf("一般\n");break;
			case '3':printf("差\n");break;
			}
		}
		printf("是否继续删除?(Y/N)");
		fflush(stdin);
		scanf("%c",&flag);
		if(flag=='y'||flag=='Y')
			;
		else return;
		
	}while (1);
}



void mcount() //统计员工信息,并输出
{
	FILE *fp;
	int i=0;
	int num=0;//总人数统计
	int mnum=0,fnum=0;//性别人数统计
	int expernum=0,doctornum=0,masternum=0,bechelornum=0,othernum=0;//学位人数统计
	int dsznum=0,zglnum=0,fzglnum=0,glnum=0,fglnum=0;//职位人数统计
	int mishunum=0,jsynum=0,lbnum=0,ygnum=0;
	clrscr();
	if((fp=fopen("employee.txt","r"))==NULL)
	{
		printf("不能够打开这个文件\n");
		printf("按任意键继续\n");
		getch();
		return;
	}
	do //通过该循环结构统计员工信息
	{
		fread(&em[i],sizeof(struct employee),1,fp);
		if(feof(fp))
			break;
		num++;
		if(em[i].sex=='m')
			mnum++;
		if(em[i].sex=='f')
			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);
	fclose(fp);
	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\n",fzglnum);
	printf("经理数为%d\n",glnum);
	printf("副经理数为%d\n",fglnum);
	printf("秘书数为%d\n",mishunum);
	printf("技术员数为%d\n",jsynum);
	printf("领班人数为%d\n",lbnum);
	printf("员工数为%d\n",ygnum);
	printf("\n\n统计完毕,按任意键返回上一层\n");
	getch();
	return;
}








void query() //查询员工的基本信息
{
	FILE *fp;
	struct employee empd;
	int i=0,flag=0;
	char quename[8]; //存放要查询的姓名
	clrscr();
	if((fp=fopen("employee.txt","r"))==NULL)
	{
		printf("不能够打开文件,按任意键返回\n");
		getch();
		return;
	}
	printf("请你输入要查询的人的姓名\n");
	scanf("%s",quename);
	while(fread(&empd,sizeof(struct employee),1,fp))//循环查找是否存在该信息
	{
		if(strcmp(quename,empd.name)==0)  //如果存在显示可以修改的信息
		{
			flag=1;
			
			
			printf("这是你要找的人的信息\n");
			printf("工号\t职位\t\t姓名\t年龄\t性别\t文化程度\t工资\t身体情况\n");
			printf("%s\t",empd.num);
			switch(empd.position)
			{
			case '1':printf("董事长\t\t");break;
			case '2':printf("总经理\t\t");break;
			case '3':printf("副总经理\t");break;
			case '4':printf("经理\t\t");break;
			case '5':printf("副经理\t\t");break;
			case '6':printf("秘书\t\t");break;
			case '7':printf("技术员\t\t");break;
			case '8':printf("领班\t\t");break;
			case '9':printf("员工\t\t");break;
			}
			printf("%s\t",empd.name);
			printf("%d\t",empd.age);
			switch(empd.sex)
			{
			case 'm':printf("男\t");break;
			case 'f':printf("女\t");break;
			}
			switch(empd.cult)
			{
			case '1':printf("专家\t\t");break;
			case '2':printf("博士\t\t");break;
			case '3':printf("硕士\t\t");break;
			case '4':printf("学士\t\t");break;
			case '5':printf("其他\t\t");break;
			}
			printf("%d\t",em[i].salary);
			switch(empd.state)
			{
			case '1':printf("好\n");break;
			case '2':printf("一般\n");break;
			case '3':printf("差\n");break;
			}
		}
	}
	if(flag==0)
		printf("您要找的人不存在,按任意键返回上一层\n");
	getch();
}











void communicate()
{
    char choice;
    int stop;
	
	
	
    do
    {
        clrscr();
		printf("请你选择操作类型:\n");
		printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
		printf("1为输入通讯录信息\n");
		printf("2为查询通讯录信息\n");
		printf("3.修改通讯录信息\n");
		printf("0.退出通讯录系统\n");
		printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
		fflush(stdin);
		scanf("%c",&choice);
		switch(choice)
		{
		case '1':cinput();break;
		case '2':cquery();break;
		case '3':cchange();break;
		case '0':return;break;
		default: printf("您输入的有误请重新输入\n");
			for(stop=0;stop<50;stop++)
				delay(132767);
			break;
		}
    }while(1);
	
	
}
void cinput()
{
    FILE *fp;
    char choice;
    char choice1;//判断文件是否存在
    int i=0;
    if((fp=fopen("communicate.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("communicate.txt","w");
	
	
	do
	{
		i++;
		printf("第%d个职工\n",i);
		printf("\n");
		printf("请你输入工号:\n");
		fflush(stdin);
		scanf("%s",empc[i].num);
		printf("请你输入姓名:\n");
		fflush(stdin);
		scanf("%s",empc[i].name);
		printf("请你输入办公室电话号码:\n");
		fflush(stdin);
		scanf("%s",empc[i].officetel);
		printf("请你输入家庭电话号码:\n");
		fflush(stdin);
		scanf("%s",empc[i].hometel);
		printf("请你输入手机号码:\n");
		fflush(stdin);
		scanf("%s",empc[i].handtel);
		printf("请你输入地址:\n");
		fflush(stdin);
		scanf("%s",empc[i].address);
		fwrite(&empc[i],sizeof(struct communication),1,fp);
		printf("输入完毕,是否继续?(Y/N)");
		fflush(stdin);
		scanf("%c",&choice);
	}while(choice=='y'||choice=='Y');
	if(choice!='y'||choice!='Y')
	{
		fclose(fp);
		printf("输入完毕,任意键返回\n");
		getch();
		return;
	}
}










void cquery()   //查询通讯簿的实现
{
	FILE *fp;
	int i=0;
	char qcname[8]; 
	if((fp=fopen("communicate.txt","r"))==NULL)
	{
		printf("不能够打开文件,按任意键返回\n");
		getch();
		return;
	}
    printf("请你输入要查询的人的姓名:\n");
	scanf("%s",qcname);
	rewind(fp);
    for(i=0;fread(&empc[i],sizeof(struct communication),1,fp)!=0;i++)
    {
		if(strcmp(empc[i].name,qcname)==0)
		{
			printf("以下为您所要求的信息:\n");
			printf("姓名\t\t办公电话\t家庭电话\t手机\t\t家庭地址\n");
			printf("%s\t\t",empc[i].name);
			printf("%s\t\t",empc[i].officetel);
			printf("%s\t\t",empc[i].hometel);
			printf("%s\t\t",empc[i].handtel);
			printf("%s\n",empc[i].address);
			
			printf("查询完毕,按任意键返回\n");
			getch();
			fclose(fp);
			return;
		}
    }
	printf("没有这样的人,按任意键返回\n");
	getch();
	fclose(fp);
	return;
}






void cchange()
{
	FILE *fp;
	int i=0,count=0;
	struct communication com,comd,*temp;
	char chcname[8];
	char choicecom;
	if((fp=fopen("communicate.txt","rb"))==NULL)
	{
		printf("打不开文件按任意键返回\n");
		getch();
		return;
	}
	printf("请你输入你要修改的人的姓名:\n");
	scanf("%s",com.name);
	rewind(fp);
	while(fread(&comd,sizeof(struct communication),1,fp))
		
	{
		if(strcmp(comd.name,com.name)==0)
		{clrscr();
		printf("以下为您所要修改的人的信息:\n");
		printf("姓名\t\t办公电话\t家庭电话\t手机\t\t家庭地址\n");
		printf("%s\t\t",comd.name);
		printf("%s\t\t",comd.officetel);
		printf("%s\t\t",comd.hometel);
		printf("%s\t\t",comd.handtel);
		printf("%s\n",comd.address);
		do{
			
			printf("请你选择要修改的东西:\n");
			printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
			printf("1修改办公室电话号码\n");
			printf("2修改家庭电话号码\n");
			printf("3修改手机电话号码\n");
			printf("0修改完成,返回上一层\n");
			printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
			com=comd;
			fflush(stdin);
			scanf("%c",&choicecom);
			
			switch(choicecom)
			{
				
			case '1':
				
				printf("请输入新的办公室电话号码:");
				scanf("%s",com.officetel);
				//修改办公室的电话号码
				break;
			case '2':
				printf("请输入新的家庭电话号码:");
				scanf("%s",com.hometel);
				break;
			case '3':
				printf("请输入新的手机号码:");
				scanf("%s",com.handtel);
				break;
			case '0':
				return;
			default:
				printf("您的输入有误,请重新输入\n");
			}
		}while(1);
		
		rewind(fp);
		while(fread(&comd,sizeof(struct communication),1,fp))
		{
			count++;
		}
		printf("\n%d\n",count);
		temp=(struct communication *)malloc(count*(sizeof(struct communication)));
		rewind(fp);
		fread(temp,sizeof(struct communication),count,fp);
		fclose(fp);
		if((fp=fopen("communicate.txt","w")==NULL)){
			printf("Error Create new telefon.dat file");
			return;
		}
		else
		{
			fclose(fp);
			fp=fopen("communicate.txt","a");
			for(i=0;i<count;i++)
			{
				if(strcmp(temp[i].name,com.name)==0)
					fwrite(&com,sizeof(struct communication),1,fp);
				else
					fwrite(&temp[i],sizeof(struct communication),1,fp);
			}
		}
		}
    } fclose(fp); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -