C语言职工信息管理系统

1.c语言实现职工信息管理系统

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
typedef struct workers{
	char number[10];
	char name[10];
	char sex[10];
	char birthday[10];
	char xl[10];
	char position[10];
	int money;
	char add[10];
	char tele[10];
	struct workers *next;
}WOR;
int create(WOR *head)
{
	    char  c; 
	    int flag=0;
	    char arr[100];
	    WOR *p,*q,*t;
	    p=head;
	    t=head;
	    t=t->next;
	    while(p->next!=NULL)
	    	p=p->next;
	while(1)
	{
		 
    	q=(WOR *)malloc(sizeof(WOR));
    	int cntt=0; 
    	while(1)
    	{
    		t=head;
    		t=t->next;
		  	flag=0;
		  	if(cntt>0)
		  	printf("职工号重复请重新输入!\n");
    	 	printf("请输入职工号:");
    	 	scanf("%s",q->number); 
    	 	cntt++;
    	 while(t!=NULL)
    	 {
    	 	if(strcmp(t->number,q->number)==0)
    	 	{
    	 		flag=1; 
    	 		break;
			 }
    	 	t=t->next;
    	 	
		 }
		 if(flag==1)
		 continue;
		 else if(t==NULL)
		 break;
	   }
    	printf("请输入姓名:");
    	scanf("%s",q->name);
    	int cnt=0;
	    while(1)
	    {
	    	if(cnt>0)
	    	printf("性别输入错误,若要寻找第三方性别请前往泰国,请重新输入性别,"); 
	    	printf("请输入性别:");
			scanf("%s",arr);
			cnt++;
			if(strcmp("男",arr)==0)
			break;
			if(strcmp("女",arr)==0)
			break; 
		}
		strcpy(q->sex,arr);
		printf("请输入出生年月:");
		scanf("%s", q->birthday);
		printf("请输入学历:");
		scanf("%s", q->xl);
		printf("请输入职务:");
		scanf("%s", q->position);
		int flag=0;
		while(1)
	  {
	  	printf("请输入工资:"); 
	  	cin>>q->money;
        if(!cin)
	    {
		printf("搬砖哪有那么多工资!\n"); 
		cin.clear();
		cin.sync();
		system("pause"); 
	    }
	    else
	     flag=1;
	    if(flag==1)
	     break;
	    else
	    continue; 
	   }
		printf("请输入住址:");
		scanf("%s", q->add);
		printf("请输入电话:");
		scanf("%s", q->tele);
		q->next=NULL;
		p->next=q;
		p=q;
		for(int i=0;i<100;i++)
		arr[i]=0;
		printf("提示:靓仔!你已经添加了一个职工的信息!('n')退出其余任意键继续添加职工信息!\n");
		getchar();
		scanf("%c",&c);
		if(c=='n')
		break;
	}	  

}
int  save(WOR *head)
{
	FILE *fp;
	fp=fopen("职工信息管理系统.txt","wb");
	WOR *p=head;
	p=p->next;
	 while(p!=NULL)
    {
        fprintf(fp,"%s %s %s %s %s %s %d %s %s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
        p=p->next;
    }
    printf("保存成功!\n");
    Sleep(3000);
    fclose(fp);
}
int alter(WOR *head)
{ 
	char arr[20];
	char crr[20];
	WOR *p=head;
	p=p->next;
	int flag=0;
	printf("请输入你要修改的职工号:");
	scanf("%s",arr);
	while(p!=NULL)
	{
		if(strcmp(p->number,arr)==0)
		{
		flag=1;
		printf("请输入姓名:");
		scanf("%s", p->name);
	   int cnt=0;
	     while(1)
	    {
	    	if(cnt>0)
	    	printf("性别输入错误,若要寻找第三方性别请前往泰国,请重新输入性别,"); 
	    	printf("请输入性别:");
			scanf("%s",crr);
			cnt++;
			if(strcmp("男",crr)==0)
			break;
			if(strcmp("女",crr)==0)
			break; 
		}
		strcpy(p->sex,crr);
		printf("请输入出生年月:");
		scanf("%s", p->birthday);
		printf("请输入学历:");
		scanf("%s", p->xl);
		printf("请输入职务:");
		scanf("%s", p->position);
		printf("请输入工资:");
		scanf("%d",&p->money);
		printf("请输入住址:");
		scanf("%s", p->add);
		printf("请输入电话:");
		scanf("%s", p->tele);
		}
		else
		p=p->next;
	    if(flag==1)
	    break;	
	 }
	 if(flag==0)
	 printf("靓仔没跌这个蜀黍\n"); 
	 Sleep(1000);

} 
int scan(WOR *head)
{
	WOR *p=head;
	p=p->next;
	printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	while(p!=NULL)
	{
		printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
		p=p->next;
    }
	printf("是否停止查看!(y)任意键继续:");
    char c;
    while(1)
    {   
	    cin>>c;
    	if(c=='y')
		break;
		else
		continue;
	}                                                                                                                                                                                           
}
int seek(WOR *head)
{
	printf("\(≧▽≦)/请选择查找方式(★^O^★) \n");
	printf("  1:按职工工号查找\n");
	printf("  2:按职工姓名查找\n");
	printf("  3:按职工出生年月查找\n");
	printf("  4:按职工学历查找\n");
	printf("  5:按职工职务查找\n");
	printf("  6:按职工工资查找\n");
	printf("  7:按职工地址查找\n");
	printf("  8:按职工电话查询\n"); 
	printf("  9:按职工性别查找\n");
    printf("\(≧▽≦)/****************( ̄ε(# ̄)\n");
    printf("输入你想进行的操作:") ; 
    int n;
    scanf("%d",&n);
    WOR *p;
    p=head;
    p=p->next;
    if(n==1)
    { 
	    char arr[20];
    	int cnt=0;
    	printf("请输入你需要查找工人的工号:");
    	scanf("%s",arr);
      	while(p!=NULL)
      	{
      		if(strcmp(arr,p->number)==0)
			  {
			  		printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	                printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  		cnt=1;
			  		break;
			   } 
			   else
			   p=p->next;
		}
		if(cnt==0)
		printf("抱歉没有这个蜀黍!\n");
		cnt=0;
		char c[100]={0};
        while(1)
       {   
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    scanf("%s",c);
    	if(strcmp("y",c)==0)
	    break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
   	   }
  }
	if(n==2)
	{
		char arr[20];
		int cnt=0;
		printf("请输入你需要查找工人的姓名:");
		scanf("%s",arr);
		while(p!=NULL)
		{
			if(strcmp(arr,p->name)==0) 
			{
				printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	            printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  	cnt=1;
			  	Sleep(500);
			  	//break;
			}
			//else
			p=p->next;
		 } 
		 if(cnt==0)
		 printf("没有这个蜀黍\n");
		 cnt=0;
		   char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}
	}
	if(n==3)
	{
     	char arr[20];
    	int cnt=0;
    	printf("请输入你需要查找工人的出生年月\n:");
    	scanf("%s",arr);
      	while(p!=NULL)
      	{
      		if(strcmp(arr,p->birthday)==0)
			  {
			  		printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	                printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  		cnt=1;
			  	//	break;
			   } 
			   //else
			   p=p->next;		
	   }
	    if(cnt==0)
	    printf("没有这个蜀黍\n");
	    cnt=0;
	      char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}
	}
	if(n==4)
	{
		char arr[20];
    	int cnt=0;
    	printf("请输入你需要查找工人的学历:");
    	scanf("%s",arr);
      	while(p!=NULL)
      	{
      		if(strcmp(arr,p->xl)==0)
			  {
			  		printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	                printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  		cnt=1;
			  	//	break;
			   } 
			   //else
			   p=p->next;		
	   }
	    if(cnt==0)
	    printf("没有这个蜀黍\n");	
	    cnt=0;
	      char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}
	}
	if(n==5)
	{
		char arr[20];
    	int cnt=0;
    	printf("请输入你需要查找工人的职务:");
    	scanf("%s",arr);
      	while(p!=NULL)
      	{
      		if(strcmp(arr,p->position)==0)
			  {
			  		printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	                printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  		cnt=1;
			  	//	break;
			   } 
			   //else
			   p=p->next;		
	   }
	    if(cnt==0)
	    printf("没找到这个蜀黍\n");	
	    cnt=0;
	      char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}
	}
	if(n==6)
	{
		int  t;
    	int cnt=0;
    	printf("请输入你需要查找工人的工资:");
    	scanf("%d",t);
      	while(p!=NULL)
      	{
      		if(t==p->money)
			  {
			  		printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	                printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  		cnt=1;
			  	//	break;
			   } 
			   //else
			   p=p->next;		
	   }
	    if(cnt==0)
	    printf("没找到这个蜀黍\n");
	    cnt=0;
	      char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}
	}
	if(n==7)
	{
		char arr[20];
    	int cnt=0;
    	printf("请输入你需要查找工人的地址:");
    	scanf("%s",arr);
      	while(p!=NULL)
      	{
      		if(strcmp(arr,p->add)==0)
			  {
			  		printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	                printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  		cnt=1;
			  	//	break;
			   } 
			   //else
			   p=p->next;		
	   }
	    if(cnt==0)
	    printf("没找到这个蜀黍\n");
	    cnt=0;
	      char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}
	
	}
	if(n==8)
	{
		char arr[20];
    	int cnt=0;
    	printf("请输入你需要查找工人的电话:");
    	scanf("%s",arr);
      	while(p!=NULL)
      	{
      		if(strcmp(arr,p->tele)==0)
			  {
			  	
	                printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
			  		cnt=1;
			  	//	break;
			   } 
			   //else
			   p=p->next;		
	   }
	    if(cnt==0)
	    printf("没找到这个蜀黍\n");	
	    cnt=0;
	      char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}
	}
	if(n==9)
{
	char a[10];
		while(1)
		{
		  printf("请输入你想要查找的性别:");
		  scanf ("%s",a);
		  if(strcmp("男",a)==0)
		  break;
		  if(strcmp("女",a)==0)
		  break;
		}
	printf("工号\t姓名\t性别\t出生年月\t学历\t职务\t工资\t地址\t电话\n"); 
	while(p!=NULL)
	{
		if(strcmp(a,p->sex)==0)
		 printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->xl,p->position,p->money,p->add,p->tele);
		 p=p->next;
	 } 
	   char c[100];
        while(1)
       {  
	    printf("是否返回主菜单(y返回主菜单): \n"); 
	    cin>>c; 
    	if(strcmp("y",c)==0)
		break;
		else
		{
		  printf("麻烦请仔细输入!别滚键盘!");
		  continue; 
		}
	}	
}
}
int  del(WOR *head)
{
	WOR *p, *q;
	char arr[10];
	p = head->next;
	if (p == NULL)
	{
		printf("没有添加任何职工信息,你只能把空气删了( ̄ε(# ̄)\n ");
		return 0;
	}
	printf(" \n提示:请输入你要删除的职工号!\n ");
	scanf("%s", arr);
	while (p != NULL)
	{
		if (strcmp(p->number, arr) == 0)
			break;
		p = p->next;

	}
	if(p==NULL)
	printf("亲抱歉!没找到此工人!\n"); 
	else 
	{
		q = head;
		while (q->next != p)
		{
			q = q->next;
		}
		q->next = q->next->next;    
	}
}
int charu(WOR *head)
{
	    int flag=0;
	    char arr[100];
	    WOR *p,*q,*t,*i,*h;
	    h=head;
	    p=head->next;
	    i=head->next;
	    while(i->next!=NULL)
	     i=i->next;
    	q=(WOR *)malloc(sizeof(WOR));
    	int cntt=0; 
    	while(1)
    	{
    	t=head;
    	t=t->next;
		  flag=0;
		  if(cntt>0)
		  printf("职工号重复请重新输入!\n");
    	 printf("请输入职工号:");
    	 scanf("%s",q->number); 
    	 cntt++;
    	 while(t!=NULL)
    	 {
    	 	if(strcmp(t->number,q->number)==0)
    	 	{
    	 		flag=1; 
    	 		break;
			 }
    	 	t=t->next;
    	 	
		 }
		 if(flag==1)
		 continue;
		 else if(t==NULL)
		 break;
	   }
    	printf("请输入姓名:");
    	scanf("%s",q->name);
    	int cnt=0;
	    while(1)
	    {
	    	if(cnt>0)
	    	printf("性别输入错误,若要寻找第三方性别请前往泰国,请重新输入性别,"); 
	    	printf("请输入性别:");
			scanf("%s",arr);
			cnt++;
			if(strcmp("男",arr)==0)
			break;
			if(strcmp("女",arr)==0)
			break; 
		}
		strcpy(q->sex,arr);
		printf("请输入出生年月:");
		scanf("%s", q->birthday);
		printf("请输入学历:");
		scanf("%s", q->xl);
		printf("请输入职务:");
		scanf("%s", q->position);
		flag=0;
		while(1)
	  {
	  	printf("请输入工资:"); 
	  	cin>>q->money;
        if(!cin)
	    {
		printf("哥你悠着点,别滚键盘!\n"); 
		cin.clear();
		cin.sync();
		system("pause"); 
	    }
	    else
	     flag=1;
	    if(flag==1)
	     break;
	    else
	    continue; 
	   }
		printf("请输入住址:");
		scanf("%s", q->add);
		printf("请输入电话:");
		scanf("%s", q->tele);
		if(q->money>=p->money)
		{
			head->next=q;
			q->next=p;
			printf("插入成功!");
			save(head);
			Sleep(500);
			return  0; 
		}
		if(i->money>=q->money)
		{
			q->next=NULL;
			i->next=q;
			printf("插入成功!"); 
			save(head);
			Sleep(500);
			return  0;
		}
		if((q->money<p->money)&&(q->money>i->money))
		{
			while(p->money>q->money)
			{
				p=p->next;
			}
			while(h->next!=p)
			h=h->next;
			h->next=q;
			q->next=p; 
			printf("插入成功!"); 
			save(head);
			Sleep(500);
			return  0;			
	   }
}
int   px(WOR *head)
{
	WOR *p,*q,*t;
	t=(WOR*)malloc(sizeof(WOR));
 for(p=head->next;p!=NULL;p=p->next)
  {
  	for(q=p->next;q!=NULL;q=q->next)
  	{ 
  		if(p->money<q->money)
  		{
  			strcpy(t->add,p->add);
			strcpy(t->birthday,p->birthday);
			strcpy(t->name,p->name);
			strcpy(t->number,p->number);
			strcpy(t->position,p->position);
			strcpy(t->sex,p->sex);
			strcpy(t->tele,p->tele);
			strcpy(t->xl,p->xl);
			t->money=p->money;
			strcpy(p->add,q->add);
			strcpy(p->birthday,q->birthday);
			strcpy(p->name,q->name);
			strcpy(p->number,q->number);
			strcpy(p->position,q->position);
			strcpy(p->sex,q->sex);
			strcpy(p->tele,q->tele);
			strcpy(p->xl,q->xl);
			p->money=q->money;
			strcpy(q->add,t->add);
			strcpy(q->birthday,t->birthday);
			strcpy(q->name,t->name);
			strcpy(q->number,t->number);
			strcpy(q->position,t->position);
			strcpy(q->sex,t->sex);
			strcpy(q->tele,t->tele);
			strcpy(q->xl,t->xl);
			q->money=t->money;
		}
	  }
   } 
   printf("排序成功!");
   Sleep(3000); 
   return  0;
 }
int pjz(WOR *head)
{
	WOR *p;
	p=head;
	p=p->next;
	float sum=0;
	int cnt=0; 
	int min=1000;
	int max=0; 
	while(p!=NULL)
	{
		if(p->money>max)
		max=p->money;
		if(p->money<min)
		min=p->money;
		sum+=p->money;
		cnt++;
		p=p->next;
	}
	float a=sum/cnt;
	printf("\n\n\n\n\n\n\t\t\t\t\t员工工资最大值为:%d",max);
    printf("\n\t\t\t\t\t员工工资最小值为:%d",min);
    printf("\n\t\t\t\t\t员工平均工资为:%.2f",a);
	printf("\n是否停止查看!(y)任意键继续:");
    char c;
    while(1)
    {   
	    cin>>c;
    	if(c=='y')
		break;
		else
		continue;
	}     
	
	return  0;
	
}
int main()
{
	WOR *head;
	head=(WOR *)malloc(sizeof(WOR));
	head->next=NULL;
	FILE *p;
	if((p=fopen("职工信息管理系统.txt","rb+") )!= NULL){
			WOR *t,*q;
			t=head;
		while(feof(p)==0)
		{
			q=(WOR*)malloc(sizeof(WOR));
			fscanf(p,"%s %s %s %s %s %s %d %s %s\n",q->number,q->name,q->sex,q->birthday,q->xl,q->position,&q->money,q->add,q->tele);
			q->next=NULL;
			t->next=q;
			t=q;
		}
	fclose(p);
	}
	while(1)
 {	
    system("CLS");
	printf("\n\t\t\t\t职 工 信 息 管 理 系 统\n");
	printf("=====( ̄ε(# ̄)===========菜 单=============( ̄ε(# ̄)=====\n ");
	printf("\n\t\t\t1.输入职工信息\n ");
	printf("\n\t\t\t2.修改职工信息\n ");
	printf("\n\t\t\t3.浏览职工信息\n ");
	printf("\n\t\t\t4.查询职工信息\n ");
	printf("\n\t\t\t5.删除职工信息\n ");
	printf("\n\t\t\t6.按照职工工资插入职工信息\n ");
	printf("\n\t\t\t7.求出员工工资最大值最小值平均值\n ");
	printf("\n\t\t\t8.按照工资对职工进行排序\n ");
	printf("\n\t\t\t0.退出\n ");
	printf("=====( ̄ε(# ̄)========(=^▽^=)============( ̄ε(# ̄)==========\n ");
    printf("输入你想要进行的操作: ");
    int a;
    cin>>a;
    if(!cin)
	{
		printf("哥你悠着点,别滚键盘!\n"); 
		cin.clear();
		cin.sync();
		system("pause"); 
	 } 
	 else{
    switch(a)
    {
    	case 1:system("CLS");create(head);save(head);break;
    	case 2:system("CLS");alter(head);save(head);;break; 
    	case 3:system("CLS");scan(head);break;
    	case 4:system("CLS");seek(head);break;
    	case 5:system("CLS");del(head);save(head);break;
    	case 6:system("CLS");charu(head);break; 
    	case 7:system("CLS");pjz(head);break;
    	case 8:system("CLS");px(head);save(head);break;
		case 0:system("CLS");printf("谢谢小阔爱你的使用  拜拜(-^〇^-)!\n");return 0;break;  
	}			
 } 
}
}

2.c++实现职工信息管理系统

#include<iostream>
#include<string>
#include<windows.h>
#include<fstream> 
#include<conio.h>
#include<cstring>
using namespace std;
int   checkcin(int   n)
{	
	if(cin.fail())
	{
		cin.clear();cin.sync();
	}
	cout<<"输入错误,请重新输入"<<endl;	
	cin>>n;
	return n;
}
class W{
	public:
	int showmenu()
	{
	cout<<endl;
	system("date/t");system("time/t");
	cout<<endl;
	cout<<endl<<"\t\t\t\t\t欢迎使用职工管理系统"<<endl<<endl<<endl;
	cout<<"\t\t\t\t\t1.添加职工信息"<<endl<<endl; 
	cout<<"\t\t\t\t\t2.浏览职工信息"<<endl<<endl;
    cout<<"\t\t\t\t\t3.删除职工信息"<<endl<<endl;
	cout<<"\t\t\t\t\t4.修改职工信息"<<endl<<endl;
	cout<<"\t\t\t\t\t5.查找职工信息"<<endl<<endl;
	cout<<"\t\t\t\t\t6.按照职工号(从小到大)进行排序"<<endl<<endl;
	cout<<"\t\t\t\t\t7.按照职工工资(从大到小)进行排序"<<endl<<endl;
	cout<<"\t\t\t\t\t8.职工号排序后按照职工号进行插入"<<endl<<endl; 
	cout<<"\t\t\t\t\t9.对员工信息进行保存"<<endl<<endl;
	cout<<"\t\t\t\t\t0.退出程序"<<endl<<endl; 
	}
	int showmenu1()
	{
	system("color 07");
	cout<<endl;
	system("date/t");system("time/t");
	cout<<endl;
	cout<<endl<<"\t\t\t\t\t欢迎使用职工管理系统"<<endl<<endl<<endl;
	cout<<"\t\t\t\t\t1.浏览职工信息"<<endl<<endl;
	cout<<"\t\t\t\t\t2.查找职工信息"<<endl<<endl;
	cout<<"\t\t\t\t\t3.按照职工号(从小到大)进行排序"<<endl<<endl;
	cout<<"\t\t\t\t\t4.按照职工工资(从大到小)进行排序"<<endl<<endl;
	cout<<"\t\t\t\t\t5.返回选择登录方式页面"<<endl<<endl; 
	cout<<"\t\t\t\t\t0.退出程序"<<endl<<endl;
	} 
	int exit1()
	{
		cout<<"欢迎下次使用"<<endl;
		system("pause");
		exit(0); 
	}  
};
class worker{
	public:
	int setnumber(int number_)
	{this->number=number_;}
	int setname(string name_)
	{this->name=name_;}
	int setsex(string sex_)
	{this->sex=sex_;}
	int setbirthday(string birthday_)
	{this->birthday=birthday_;}
	int setxl(string xl_)
	{this->xl=xl_;}
	int setposition(string position_)
	{this->position=position_;}
	int setmoney(int  money_)
	{this->money=money_;}
	int setadd(string add_)
	{this->add=add_;}
	int settele(string tele_)
	{this->tele=tele_;}
	int getnumber()
	{return this->number;}
	string  getname()
	{return this->name;}
	string  getsex()
	{return this->sex;}
	string getbirthday()
	{return this->birthday;}
	string getxl()
	{return this->xl;}
	string  getposition()
	{return this->position;}
	int getmoney()
	{return this->money;}
	string  getadd()
	{return this->add;}
	string  gettele()
	{return this->tele;}	
	worker* setnext(worker *p)
	{this->next=p;}
	worker* getnext()
	{return this->next;}
	private:
	int  number;
	string name;
	string sex;
	string birthday;
	string xl;
	string position;
	int money;
	string add;
	string tele;
	worker *next;
};
class functionwork:public worker{
	public:
	functionwork()
	{head=new worker();//建立头节点并将其初始化 
	head->setnext(NULL);}
	int add();//添加职工信息 
	int liulan();//浏览职工信息 
	int del();//删除职工信息 
	int xiugai();//修改职工信息 
	int chaxun();//查询职工信息 
	int keep();//保存职工信息 
	int read(); //读取职工信息 
	int numpaixu();//按照职工号进行排序 
	int monpaixu();//按照工资进行排序 
	int charu();//插入职工信息 
	private:
	worker *p1,*p2,*head;//建立头指针和备用指针 
};
int functionwork::add()
{
	int  number1;
	string name1;
	string sex1;
	string birthday1;
	string xl1;
	string position1;
	int money1;
	string add1;
	string tele1;
	p2=head;
	worker *p3;
	while(p2->getnext())
	{p2=p2->getnext();}
	int n;
	cout<<"请输入你想添加的职工数:";
	cin>>n;
	while(cin.fail())
	n=checkcin(n); 
	for(int i=0;i<n;i++)
	{
		int cntt=0;
		p1=new worker();
		p1->setnext(NULL);
		cout<<"请输入第"<<i+1<<"个职工信息"<<endl;
		while(1)
		{	
		cout<<"请输入职工号:";
		cin>>number1;
		while(cin.fail())
	     number1=checkcin(number1); 
		p3=head->getnext();
		while(p3!=NULL)
		{
			if(p3->getnumber()==number1)
			{
			cout<<"职工号重复,请重新输入!";
		    break;}
			p3=p3->getnext(); 
		}
		if(p3==NULL)
		{
		p1->setnumber(number1);
		break;}
		else
		continue;
	   }
		cout<<"请输入姓名:";
		cin>>name1;
		p1->setname(name1);
		while(1)
		{
			if(cntt>0)
			cout<<"你输入性别有误!请重新输入"; 
	    	cout<<"请输入性别:";
	     	cin>>sex1;
	     	if(sex1=="男")
	     	break;
			else if(sex1=="女")
			break;
			cntt++;
		 } 
		p1->setsex(sex1);
		cout<<"请输入出生年月:";
		cin>>birthday1;
		p1->setbirthday(birthday1);
		cout<<"请输入学历:";
		cin>>xl1;
		p1->setxl(xl1);
		cout<<"请输入职务:";
		cin>>position1;
		p1->setposition(position1);
		while(1)
		{cout<<"请输入工资:";
		cin>>money1;
		 if(cin.fail())
	   {while(cin.fail())
	   money1=checkcin(money1) ;} 
	   else
	   break;
	   }
		p1->setmoney(money1);
		cout<<"请输入地址:";
		cin>>add1;
		p1->setadd(add1);
		cout<<"请输入电话:";
		cin>>tele1;
		p1->settele(tele1);
		system("cls");
		p2->setnext(p1);
		p2=p1;
	}
	cout<<"添加完毕!谢谢使用";
	system("pause"); 
} 
int functionwork::liulan()
{
	if(head->getnext()==NULL)
	{
		cout<<"您尚未添加任何职工信息!"<<endl;
		system("pause");
		return 0; 
	}
    cout<<"职工号\t"<<"姓名\t"<<"性别\t"<<"出生年月 "<<"学历\t"<<"职务\t"<<"工资\t"<<"地址\t"<<"职工电话\t"<<endl; 
    p1=head->getnext();
    while(p1!=NULL)
    {
    	cout<<p1->getnumber()<<"\t"<<p1->getname()<<"\t"<<p1->getsex()<<"\t"<<p1->getbirthday()<<" \t"<<p1->getxl()<<"\t"<<p1->getposition()<<"\t"<<p1->getmoney()<<"\t"<<p1->getadd()<<"\t"<<p1->gettele()<<endl;
		p1=p1->getnext(); 
	}
	system("pause");
	return 0;	
}
int functionwork::del()
{
	int a;
	int h=0;
	cout<<"请输入你想删除的职工号:" ;
	cin>>a;
	if(cin.fail())
	 { while(cin.fail())
	 a=checkcin(a) ;} 
    worker *p3; 
	p3=head->getnext();
	while(p3!=NULL)
	{
		if(p3->getnumber()==a)
		{
			break; 
		}
		p3=p3->getnext();
	}
	if(p3==NULL)
	{
	cout<<"没有此职工!"<<endl; 
	system("pause");
	system("cls");
	return  0;
	}
	else
	{
		cout<<"你想要删除职工号信息如下:"<<endl;
		cout<<"姓名:"<<p3->getname()<<endl<<"性别:"<<p3->getsex()<<endl<<"出生年月:"<<p3->getbirthday()<<endl<<"学历:"<<p3->getxl()<<endl<<"职务:"<<p3->getposition()<<endl<<"工资:"<<p3->getmoney()<<endl<<"地址:"<<p3->getadd()<<endl<<"电话:"<<p3->gettele()<<endl<<endl; 
		string arr;
		while(1)
		{
			cout<<"是否确认删除(是或否):";
			cin>>arr;
			if(arr=="是")
			break; 
			else if(arr=="否")
			{
				cout<<"谢谢使用!"<<endl;
				system("pause");
				return 0; 
			 } 
			 else
			 {
			 	cout<<"请输入是或否,其他无效!";
				system("pause"); 
				continue; 
			 }
		}
		fstream fp;
		fp.open("删除职工统计",ios::app);
		fp<<"姓名:"<<p3->getname()<<endl<<"性别:"<<p3->getsex()<<endl<<"出生年月:"<<p3->getbirthday()<<endl<<"学历:"<<p3->getxl()<<endl<<"职务:"<<p3->getposition()<<endl<<"工资:"<<p3->getmoney()<<endl<<"地址:"<<p3->getadd()<<endl<<"电话:"<<p3->gettele()<<endl<<endl; 
		worker *t; 
		t=head;
		while(t->getnext()!=p3)
		t=t->getnext();
	    t->setnext(p3->getnext());
	    p3->setnext(NULL);
	    cout<<"删除成功"<<endl; 
		system("pause");
		system("cls");
		return 0;
	}		
}
int functionwork::xiugai()
{
	string name1;
	string sex1;
	string birthday1;
	string xl1;
	string position1;
	int money1;
	string add1;
	string tele1;
	int o;
	cout<<"1.全部修改"<<endl<<"2.局部修改"<<endl;
	cout<<"请输入修改方式:";
	cin>>o;
	while(cin.fail())
	o=checkcin(o);
	 if(o==1)
	 {
	 	while(1)
	  {
	 	int  b; 
	 	cout<<"请输入你想修改的职工号:";
	 	cin>>b;
	 	p1=head->getnext();
	 	while(p1!=NULL)
	 	{
	 		if(p1->getnumber()==b)
	 		break;
	 		p1=p1->getnext();
		}
		if(p1==NULL)
		{
			cout<<"没有找到你想修改的职工号!"<<endl;
			cout<<"1.继续输入"<<endl<<"(除1外任意键).返回主菜单";
			cout<<"请输入你的选择(1或者除1外任意键):"; 
			getchar();
			char c;	c=getchar();if(c=='1')continue;	else return 0;	 
		}
		else
		{
			int cnttt=0;
			cout<<"请输入修改后的姓名:";
			cin>>name1;
			p1->setname(name1);
			while(1)
			{
			if(cnttt>0)
			cout<<"性别输入格式错误";
			cout<<"请输入修改后的性别:";
			cin>>sex1;
			if(sex1=="男")
			break;
			if(sex1=="女")
			break; 
			cnttt++; 
		    }
			p1->setsex(sex1);
			cout<<"请输入修改后的出生年月:";
			cin>>birthday1;
			p1->setbirthday(birthday1);
			cout<<"请输入修改后的学历:";
			cin>>xl1;
			p1->setxl(xl1);
			cout<<"请输入修改后的职务:";
			cin>>position1;
			p1->setposition(position1);
			while(1)
			{
			cout<<"请输入修改后的工资:";
			cin>>money1;
		   if(cin.fail())
	       {while(cin.fail())
	        money1=checkcin(money1);} 
			else
			break;}
			p1->setmoney(money1);
			cout<<"请输入修改后的地址:";
			cin>>add1;
			p1->setadd(add1);
			cout<<"请输入修改后的电话:";
			cin>>tele1;
			p1->settele(tele1);
			cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
			getchar();char c;c=getchar();if(c=='1')continue;else	return 0; 	
		}
	  }
	}
	 if(o==2)
	{
	 	while(1)
	  {
	 	int  b; 
	 	cout<<"请输入你想修改的职工号:";
	 	cin>>b;
	 	p1=head->getnext();
	 	while(p1!=NULL)
	 	{
	 		if(p1->getnumber()==b)
	 		break;
	 		p1=p1->getnext();
		}
		if(p1==NULL)
		{
			cout<<"没有找到你想修改的职工号!"<<endl;
			cout<<"1.继续输入"<<endl<<"(除1外任意键).返回主菜单";
			cout<<"请输入你的选择(1或者除1外任意键):"; 
			getchar();
			char c;	c=getchar();if(c=='1')continue;	else return 0; 	 
		}
		else
	{
			while(1)
	    {
	 	 cout<<"1.修改姓名"<<endl<<"2.修改性别"<<endl<<"3.修改出生年月"<<endl<<"4.修改学历"<<endl<<"5.修改职务"<<endl<<"6.修改工资"<<endl<<"7.修改地址"<<endl<<"8.修改电话号码"<<endl;
		 cout<<"请输入你的选择:";
		 int a; 
		 cin>>a;
		 while(cin.fail())
		 a=checkcin(a);
		 if(a==1)
		 {
		   cout<<"请输入修改后的姓名:";
		   cin>>name1;
		   p1->setname(name1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		    char c;	c=getchar();if(c=='1')continue;	else return 0;	
		 }
		 if(a==2)
		 {cout<<"请输入修改后的性别:";
		   cin>>sex1;
		   p1->setsex(sex1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		    char c;	c=getchar();if(c=='1')continue;	else return 0;}
		 if(a==3)
		 {cout<<"请输入修改后的出生年月:";
		   cin>>birthday1;
		   p1->setbirthday(birthday1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		    char c;	c=getchar();if(c=='1')continue;	else return 0;} 
		if(a==4)
		{cout<<"请输入修改后的学历:";
		   cin>>xl1;
		   p1->setxl(xl1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;}
		if(a==5)
		{cout<<"请输入修改后的职务:";
		   cin>>position1;
		   p1->setposition(position1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;}
		if(a==6)
		{cout<<"请输入修改后的工资:";
		   cin>>money1;
	       while(cin.fail())
	       money1=checkcin(money1);
		   p1->setmoney(money1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;}
		 if(a==7)
		 {cout<<"请输入修改后的地址:";
		   cin>>add1;
		   p1->setadd(add1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		    char c;	c=getchar();if(c=='1')continue;	else return 0; }
		 if(a==8)
		 {cout<<"请输入修改后的电话:";
		   cin>>tele1;
		   p1->settele(tele1);
		   cout<<"修改成功!"<<endl;
            getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;}
			if(a>8)
			{cout<<"没有此选项!";
			getchar();
			cout<<"1.继续修改"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;} 
		   }
	    }
      } 
   }
    if(o>=2)
    {
    	cout<<"输入错误!"<<endl;
    	cout<<"任意键返回主菜单!";
    	system("pause");
		return 0; 	
	 } 
}
int functionwork::chaxun()
{
	int number1;
	string name1;
	string tele1;
	if(head->getnext()==NULL)
	{
		cout<<"未读取到职工信息,请手动添加后再进行查询!"<<endl;
		system("pause");
		return 0;
	}
	while(1)
 {
	cout<<"1.按照职工号查询"<<endl<<"2.按照姓名查询"<<endl<<"3.按照电话号码查询"<<endl;
	cout<<"请输入你的选择:"; 
	int z;
    cin>>z;
    while(cin.fail())
	z=checkcin(z);
	if(z==1)
    {
	    cout<<"请输入你想要查询的工号:";
    	cin>>number1; 
    	p1=head;
    	while(p1!=NULL)
    	{
    		if(p1->getnumber()==number1)
			break;
    		p1=p1->getnext();
		}
		if(p1==NULL)
		{
			getchar();
			cout<<"抱歉!没找到此职工"<<endl;
			cout<<"1.继续查询"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;
		}
		else
		{
		cout<<"职工号:"<<p1->getnumber()<<endl<<"姓名:"<<p1->getname()<<endl<<"性别:"<<p1->getsex()<<endl<<"出生年月:"<<p1->getbirthday()<<endl<<"学历:"<<p1->getxl()<<"职务:"<<p1->getposition()<<endl<<"工资:"<<p1->getmoney()<<endl<<"地址:"<<p1->getadd()<<endl<<"电话:"<<p1->gettele()<<endl; 
		system("pause");
		cout<<"感谢你的使用!";
		Sleep(1000); 
		return 0;
		}	
	}
	if(z==2)
	{
		int cnt=0;
		cout<<"请输入你想查找的姓名:";
		cin>>name1;
		p1=head;
		while(p1!=NULL)
		{
		  	if(p1->getname()==name1)
		  	{
			cout<<"职工号:"<<p1->getnumber()<<endl<<"姓名:"<<p1->getname()<<endl<<"性别:"<<p1->getsex()<<endl<<"出生年月:"<<p1->getbirthday()<<endl<<"学历:"<<p1->getxl()<<"职务:"<<p1->getposition()<<endl<<"工资:"<<p1->getmoney()<<endl<<"地址:"<<p1->getadd()<<endl<<"电话:"<<p1->gettele()<<endl; 
			cout<<endl;
			cnt++;
			}
			p1=p1->getnext();	
		} 
		system("pause");
		if(cnt==0)
		{
			getchar();
			cout<<"抱歉!没找到此职工"<<endl;
			cout<<"1.继续查询"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;	
		}
		else if(cnt>0)
		{
			getchar(); 
			cout<<"我们已经为你找到相应职工!"<<endl;
			cout<<"1.继续查询"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		    char c;	c=getchar();if(c=='1')continue;	else return 0;		
		}	
	}
	if(z==3)
	{
		cout<<"请输入你想查询的电话号码!";
		cin>>tele1;
		p1=head;
		while(p1!=NULL)
    	{
    		if(p1->gettele()==tele1)
			break;
    		p1=p1->getnext();
		}
		if(p1==NULL)
		{
			getchar();
			cout<<"抱歉!没找到此职工"<<endl;
			cout<<"1.继续查询"<<endl<<"(任意键).返回主菜单"<<endl;
			cout<<"请输入你的选择(1或者任意键):"; 
		   	char c;	c=getchar();if(c=='1')continue;	else return 0;
		}
		else
		{
		cout<<"职工号:"<<p1->getnumber()<<endl<<"姓名:"<<p1->getname()<<endl<<"性别:"<<p1->getsex()<<endl<<"出生年月:"<<p1->getbirthday()<<endl<<"学历:"<<p1->getxl()<<"职务:"<<p1->getposition()<<endl<<"工资:"<<p1->getmoney()<<endl<<"地址:"<<p1->getadd()<<endl<<"电话:"<<p1->gettele()<<endl; 
		system("pause");
		cout<<"感谢你的使用!";
		Sleep(1000); 
		return 0;	
	   }
	}
	if(z>3)
	{
		getchar();
		cout<<"你的输入有误"<<endl;
		cout<<"1.继续查询"<<endl<<"(任意键).返回主菜单"<<endl;
		cout<<"请输入你的选择(1或者任意键):"; 
		char c;	c=getchar();if(c=='1')continue;	else return 0;	
	}
 }	 
}
int functionwork::keep()
{
	ofstream fp[2];
	int cnt=1;
	fp[0].open("职工信息管理1.txt",ios::out);
	fp[1].open("职工信息管理2.txt",ios::out);
	for(int i=0;i<2;i++)
  {
    p1=head->getnext();
    while(p1!=NULL)
	{
	  if(i==0)
	  {
	  fp[i]<<"第"<<cnt<<"名职工"<<endl<<"职工号:"<<p1->getnumber()<<endl<<"职工姓名:"<<p1->getname()<<endl<<
	  "职工性别:"<<p1->getsex()<<endl<<"职工出生年月:"<<p1->getbirthday()<<endl<<
	  "职工学历:"<<p1->getxl()<<endl<<"职工职位 "<<p1->getposition()<<endl<<"职工工资:"<<p1->getmoney()
	  <<endl<<"职工地址:"<<p1->getadd()<<endl<<"职工电话:"<<p1->gettele()<<endl<<endl;
	   p1=p1->getnext(); 
	   cnt++;
      }
      if(i==1)
      {
      	fp[i]<<p1->getnumber()<<" "<<p1->getname()<<" "<<p1->getsex()<<" "<<p1->getbirthday()<<" "<<p1->getxl()<<" "
      	<<p1->getposition()<<" "<<p1->getmoney()<<" "<<p1->getadd()<<" "<<p1->gettele()<<" ";
		p1=p1->getnext();
	  } 
	} 
  }
	cout<<"保存成功!";
	fp[0].close();
	fp[1].close();                   
	system("pause");
    return 0;  
}
int functionwork::read()
{
	int  number1;
	string name1;
	string sex1;
	string birthday1;
	string xl1;
	string position1;
	int money1;
	string add1;
	string tele1;
	ifstream fp;
	fp.open("职工信息管理2.txt",ios::in);
	if(fp==NULL)
	{
		cout<<"未读到职工信息,你可以手动添加";
		system("pause");
		return 0; 
	}
	else
	{cout<<"读取成功,欢迎使用!";
	 Sleep(1000);}
	p2=head;
	int cnt=0; 
	while(!fp.eof()) 
	{
		p1=new worker();
		fp>>number1>>name1>>sex1>>birthday1>>xl1>>position1>>money1>>add1>>tele1;
		if(number1==p2->getnumber())
		break;
		p1->setnumber(number1);
		p1->setname(name1);
		p1->setsex(sex1);
		p1->setbirthday(birthday1);
	    p1->setxl(xl1);
		p1->setposition(position1);
		p1->setmoney(money1);
		p1->setadd(add1);
    	p1->settele(tele1);
    	p2->setnext(p1);
    	p1->setnext(NULL);
        p2=p1;
        cnt++;
	}
	fp.close();
	return 0; 
}
int functionwork::numpaixu()
{
	int  number1;
	string name1;
	string sex1;
	string birthday1;
	string xl1;
	string position1;
	int money1;
	string add1;
	string tele1;
	if(head->getnext()==NULL)
	{
		cout<<"文件为空,无法进行排序"<<endl;
		system("pause");
		return 0; 
	 } 
	for(p1=head->getnext();p1!=NULL;p1=p1->getnext())
	{
		for(p2=p1->getnext();p2!=NULL;p2=p2->getnext())
	   {
	   	  if(p1->getnumber()>p2->getnumber())
	   	  {
	   	       number1=p1->getnumber();
	   	       name1=p1->getname();
	   	       sex1=p1->getsex();
	   	       birthday1=p1->getbirthday();
	   	       xl1=p1->getxl();
	   	       position1=p1->getposition();
	   	       money1=p1->getmoney();
	   	       add1=p1->getadd();
	   	       tele1=p1->gettele();
	   	       p1->setnumber(p2->getnumber());
	   	       p1->setname(p2->getname());
	   	       p1->setsex(p2->getsex());
	   	       p1->setbirthday(p2->getbirthday());
	   	       p1->setxl(p2->getxl());
	   	       p1->setposition(p2->getposition());
			   p1->setmoney(p2->getmoney());
			   p1->setadd(p2->getadd());
			   p1->settele(p2->getadd());
			   p2->setnumber(number1);
			   p2->setname(name1);
			   p2->setsex(sex1);
			   p2->setbirthday(birthday1);
			   p2->setxl(xl1);
			   p2->setposition(position1);
			   p2->setmoney(money1);
			   p2->setadd(add1);
			   p2->settele(tele1);
		  } 
	   }
	}
	cout<<"排序成功!";
	system("pause");
	return 0; 
}
int functionwork::monpaixu()
{
	int  number1;
	string name1;
	string sex1;
	string birthday1;
	string xl1;
	string position1;
	int money1;
	string add1;
	string tele1;
	if(head->getnext()==NULL)
	{
		cout<<"文件为空,无法进行排序"<<endl;
		system("pause");
		return 0; 
	 } 
	for(p1=head->getnext();p1!=NULL;p1=p1->getnext())
	{
		for(p2=p1->getnext();p2!=NULL;p2=p2->getnext())
	   {
	   	  if(p1->getmoney()<p2->getmoney())
	   	  {
	   	       number1=p1->getnumber();
	   	       name1=p1->getname();
	   	       sex1=p1->getsex();
	   	       birthday1=p1->getbirthday();
	   	       xl1=p1->getxl();
	   	       position1=p1->getposition();
	   	       money1=p1->getmoney();
	   	       add1=p1->getadd();
	   	       tele1=p1->gettele();
	   	       p1->setnumber(p2->getnumber());
	   	       p1->setname(p2->getname());
	   	       p1->setsex(p2->getsex());
	   	       p1->setbirthday(p2->getbirthday());
	   	       p1->setxl(p2->getxl());
	   	       p1->setposition(p2->getposition());
			   p1->setmoney(p2->getmoney());
			   p1->setadd(p2->getadd());
			   p1->settele(p2->getadd());
			   p2->setnumber(number1);
			   p2->setname(name1);
			   p2->setsex(sex1);
			   p2->setbirthday(birthday1);
			   p2->setxl(xl1);
			   p2->setposition(position1);
			   p2->setmoney(money1);
			   p2->setadd(add1);
			   p2->settele(tele1);
		  } 
	   }
	}
	cout<<"排序成功!";
	system("pause");
	return 0; 	
}
int functionwork::charu()
{
	worker *a;
	int flag=0;
    a=head->getnext();
	if(a==NULL)
	{
		cout<<"未读到任何职工信息,请添加后再插入"<<endl;
		system("pause");
		 return 0;
	}
	else
	{
		for(a=head->getnext();a->getnext()!=NULL;a=a->getnext())
		{
			if(a->getnumber()>a->getnext()->getnumber())
			flag=1;
		}
		if(flag==1)
		{
			cout<<"请按照职工号排完序后再插入!"<<endl;
			system("pause");
			return 0;
		}
	}
	int  number1;
	string name1;
	string sex1;
	string birthday1;
	string xl1;
	string position1;
	int money1;
	string add1;
	string tele1;
	if(head->getnext()==NULL)
	{
	  cout<<"暂未从文件中读取任何职工信息不能插入!"<<endl;
	  system("pause");
	  return 0;	
	} 
	worker *p3,*q,*t;
	p2=head->getnext();
	q=head->getnext();
    t=head->getnext();
	p1=new worker();
	p1->setnext(NULL);
	cout<<"请输入插入职工的信息!"; 
	while(1)
	{	
	 cout<<"请输入职工号:";
	 cin>>number1;
	 p3=head->getnext();
	 while(p3!=NULL)
	 {
		if(p3->getnumber()==number1)
		 {
		  cout<<"职工号重复,请重新输入!";
		  break;
		 }
		p3=p3->getnext(); 
	 }
	 if(p3==NULL)
	 {
		p1->setnumber(number1);
		break;}
		else
		continue;
	 }
	 cout<<"请输入姓名:";
	 cin>>name1;
	 p1->setname(name1);
	  int cntt=0;
	 while(1)
	{
	
	 if(cntt>0)
	 cout<<"你输入性别有误!请重新输入"; 
	 cout<<"请输入性别:";
	 cin>>sex1;
	 if(sex1=="男")
	 break;
	 else if(sex1=="女")
	 break;
	 cntt++;
	} 
	 p1->setsex(sex1);
	 cout<<"请输入出生年月:";
	cin>>birthday1;
	p1->setbirthday(birthday1);
	cout<<"请输入学历:";
	cin>>xl1;
	p1->setxl(xl1);
	cout<<"请输入职务:";
	cin>>position1;
	p1->setposition(position1);
	while(1)
	{
	  cout<<"请输入工资:";
	 cin>>money1;
	  if(!cin)
	 {
	 cout<<"请正确输入工资格式!"; 
	 cin.clear();
	 cin.sync();
	 system("pause"); 
	 }
     else
     break;
     } 
	p1->setmoney(money1);
	cout<<"请输入地址:";
    cin>>add1;
	p1->setadd(add1);
	cout<<"请输入电话:";
	cin>>tele1;
	p1->settele(tele1);
	if(q->getnumber()>p1->getnumber())
	{
		head->setnext(p1);
		p1->setnext(q); 
		cout<<"插入成功!";
		system("pause");
		return 0;
	}
	while(q->getnext()!=NULL)
	q=q->getnext();
	if(q->getnumber()<p1->getnumber())
	{
		q->setnext(p1);
		p1->setnext(NULL);
		cout<<"插入成功!";
		return 0;
		system("pause");
	} 
	while(p2)
	{
		if(p1->getnumber()<p2->getnumber())
		{
			while(t->getnext()!=p2)
			t=t->getnext();
			t->setnext(p1);
			p1->setnext(p2);
			cout<<"插入成功!";
			return 0;
		    system("pause");
		}
		p2=p2->getnext(); 
	 } 	
}
typedef  struct  user
{
	char id[10];
	char mima[10];
	char namea[10];
	char sexa[10];
    long phone;
}USE;
int creation()
{
	FILE *fp;
	if((fp=fopen("users.txt","rb"))==NULL)
	{
		if((fp=fopen("users.txt","wb+"))==NULL)
		{
		   cout<<"无法正常打开!"; 
			exit(0); 
		}
	}
}
int login()
{
	system("CLS");
	FILE *p;
	USE *a,*b;
	USE c,d;
	a=&c,b=&d;
	int cnt=0;
	printf("\n\n\n\n\n\n\t***********(-^〇^-)************欢迎来到登录界面!***********(=^▽^=)****\n\n");
	p=fopen("users.txt","r");
	fread(b,sizeof(USE),1,p);
	cout<<"请输入你的账号:"; 
    cin>>a->id;
	while(1)
	{
		if(strcmp(a->id,b->id)==0)
		break;
		else
		{
			if(feof(p)==0)
			fread(b,sizeof(USE),1,p);
			else
			{
				  cout<<"此用户不存在!";
				  Sleep(1000);
				  fclose(p);
				  return 0; 
			}
     	}
	}
		cout<<"请输入密码:"; 
		char crr[20];
		int min=1;
		int max=10;
		int i;
        char ch;
        while(1)
{
        i = 0;
        while(1)
	{
        ch = getch();
        if(ch == '\r')
        break;
        else if(ch == '\b')
	  {
        if(i > 0)
		{
         cout<<"\b \b";
         i--;
        }
        continue;
      }
        cout<<"*";
        if(i > max)
        break;
        crr[i++] = ch;
    }
        crr[i] = 0;
        if(i < min || i > max)
        cout<<endl<<"请再次输入:"; 
        else
        break;
}
	   strcpy(a->mima,crr);
	   while(1)
	   {
	   	  if(strcmp(a->mima,b->mima)==0)
	   	  {
	   	    cout<<endl<<"登录成功,欢迎使用!"<<endl; 
		    Sleep(500);
			return 1; 
		 }
		 else
		 {
		 	cout<<endl<<"密码输入错误,请重新输入:"; 
		    while(1)
	   {
            i = 0;
            while(1)
		 {
            ch = getch();
            if(ch == '\r')
            break;
            else if(ch == '\b')
			{
            if(i > 0)
			{
             cout<<"\b \b";
             i--;
             }
             continue;
            }
            cout<<"*";
            if(i > max)
            break;
            crr[i++] = ch;
        }
        crr[i] = 0;
        if(i < min || i > max)
        cout<<"请再次输入:";
        else
        break;
    }
      strcpy(a->mima,crr);
	  cnt++;
	  if(cnt==2&&strcmp(a->mima,b->mima)!=0)
	 {
	  cout<<"抱歉!你已经三次输入密码错误!我们将返回主菜单!"<<endl;
	  Sleep(2000); 
	  cnt=0;
	  return 0;
     }
  }
	   	
 }
}
int  registers()
{
	system("CLS");
	USE *a,*b;
	USE c,d;
	a=&c,b=&d;
	FILE *p;
	char arr[20];
	printf("\n\n\n\n\n\n\t***********(-^〇^-)************欢迎来到注册界面!***********(=^▽^=)****\n\n");
	Sleep(1000);
	p=fopen("users.txt","r");
	fread(b,sizeof(USE),1,p);
	cout<<"请输入账号:";
	cin>>a->id;
	while(1)
	{
		if(strcmp(a->id,b->id)!=0)
		{
			if(feof(p)==0)
			{
				fread(b,sizeof(USE),1,p);
			}
			else
			break;
		}
		else
		{
			 cout<<"此用户名已存在!请重新注册!"<<endl; 
             Sleep(1000);
             fclose(p);
             return 0; 	
		}
		
	 } 
	cout<<"请输入姓名:";
	cin>>a->namea;
	while(1)
	    {
	    	cout<<"请输入性别:";
			cin>>a->sexa;
			if(strcmp("男",a->sexa)==0)
			break;
			if(strcmp("女",a->sexa)==0)
			break; 
		}
	 for(int i=0;i<2;i++)
	 a->sexa[i]=arr[i];
	cout<<"请输入手机号:";
	cin>>a->phone;
	cout<<"请输入密码:";
	cin>>a->mima;
	 cout<<"请确认密码:";
	 cin>>arr;
	 while(1)
	 {
	 	if(strcmp(a->mima,arr)==0)
	 	{
	 		p = fopen("users.txt","a");
	 	    fwrite(a, sizeof(USE), 1, p);
		    cout<<"账号注册成功,请登录!"<<endl; 
		    Sleep(1000);
		    fclose(p);
		    return 0;
		 }
		 else
		 {
		 	cout<<"两次输入密码不匹配!请重新输入:";
		    cin>>a->mima ;
		    cout<<"请再次确认密码:";
			cin>>arr;
		 }
	  } 	 
}
int seekl()
{
	system("CLS");
	USE *a,*b;
	FILE *p;
	USE c,d;
	a=&c,b=&d;
	int cnt=0;
	char arr[20];
	cout<<endl<<endl<<endl<<endl<<endl<<endl<<"\t***********(-^〇^-)************欢迎来到找回密码界面!***********(=^▽^=)****"<<endl<<endl;
	Sleep(1000);
	p=fopen("users.txt","r");
	fread(b,sizeof(USE),1,p);
	cout<<"请输入账户:";
    cin>>a->id;
	while(1)
   {
   	  if(strcmp(a->id,b->id)==0)
   	  {
   	  	break;
	  }
	  else
	  {
	  	if(feof(p)==0)
	  	{
	  		fread(b,sizeof(USE),1,p);
		  }
		  else
		  {
		  	cout<<"此用户名不存在,请重新输入!"<<endl;
		    Sleep(500); 
	        fclose(p);  
		    return 0;  
		  }
	  }
	}
	cout<<"请输入你的姓名:"; 
    cin>>a->namea;
	while(1)
  {
  	if(strcmp(a->namea,b->namea)==0)
  	{
  		break;
	}
	  else
	  {
	  	cout<<"你输入的姓名有误!请重新输入:";
	  	cnt++;
	    cin>>a->namea;
		if(cnt==2&&strcmp(a->namea,b->namea)!=0)
		{
			cout<<"抱歉你已经三次输入错误,我们将返回主菜单!"<<endl;
			Sleep(3000);
			cnt=0;
			return 0;
		}
	  }
  }
  cnt=0; 
  cout<<"请输入你的电话号码:";
 cin>>a->phone; 
  while(1)
  {
  	if((a->phone==b->phone))
  	{
  		break;
	  }
	  else
	  {
	  	cout<<"你输入的号码有误,请重新输入:";
	  	cnt++;
	     cin>>a->phone;
		  if(cnt==2&&(a->phone!=b->phone));
		  {
		  	cout<<"你已经两次输入错误,再见!"<<endl;
		  	Sleep(3000);
			cnt=0;
			return 0;
		   } 
	  }
   } 
   cout<<"你的密码是:";
   cout<<b->mima;
   cout<<"我们已经找回你的密码谢谢使用!"; 
   Sleep(1000);
}
int main()
{
	while(1)
	{
	system("cls");
	int hh;
	cout<<"\n\n\n\n\n\t\t\t1.管理员登录"<<endl;
	cout<<"\t\t\t2.普通用户查看"<<endl; 
	cout<<"请选择登陆方式:";
	cin>>hh;
	while(cin.fail())
	hh=checkcin(hh); 
	if(hh==1)
	{ 
	creation();
	int c,flag=0;
	while(1)
 {
	system("CLS");
	cout<<"\n\n\n\n\n\t\t\t欢迎来到管理员登陆系统!\n";
	cout<<"\n\n\n\n\t\t\t********************1.登录账号";
	cout<<"\n\n\n\n\t\t\t********************2.注册账号";
	cout<<"\n\n\n\n\t\t\t********************3.找回密码\n";
	cout<<"\t\t\t请输入你想要进行的操作:"; 
    cin>>c;
	if(cin.fail())
	 {while(cin.fail())
	  c=checkcin(c) ;} 
	 else
	 {
	  switch(c)
	  {
		case 1:flag=login();system("pause");break;
		case 2:registers();break;
		case 3:seekl();break;
   	  }
   	  	if(flag==1)
		break;
    }
  }
	W h;
	functionwork a; 
	a.read();
	system("cls");
	int choice;
	while(1)
	{
	h.showmenu();
	cout<<"请选择你想要进行的操作:";
	cin>>choice;
	while(cin.fail())
	choice=checkcin(choice);
	switch(choice)
	{
	  case 1:system("cls");a.add();a.keep();system("cls");system("pause");break;
	  case 2:system("cls");a.liulan();system("cls");break;
	  case 3:system("cls");a.del();system("cls");break;
	  case 4:system("cls");a.xiugai();system("cls");break;
	  case 5:system("cls");a.chaxun();system("cls");break;
	  case 6:system("cls");a.numpaixu();system("cls");break;
	  case 7:system("cls");a.monpaixu();system("cls");break;
	  case 8:system("cls");a.charu();system("cls"); break;
	  case 9:system("cls");a.keep();system("cls") ;break;
	  case 0:system("cls"); h.exit1();break;
	  default:if(choice>9)cout<<"没有你想进行的操作!"<<endl;system("pause");break; 
	}
   } 
}
 if(hh==2)
{
  	W h;
	functionwork a; 
	a.read();
	system("cls");
	int choice;
		while(1)
	 {
	h.showmenu1();
	cout<<"请选择你想要进行的操作:";
	cin>>choice;
	while(cin.fail())
	choice=checkcin(choice);
	 switch(choice)
	{
	  case 1:system("cls");a.liulan();system("cls");break;
	  case 2:system("cls");a.chaxun();system("cls");break;
	  case 3:system("cls");a.numpaixu();system("cls");break;
	  case 4:system("cls");a.monpaixu();system("cls");break;
	  case 5:system("cls");main();system;system("cls");break; 
	  case 0:system("cls"); h.exit1();break;
	  default:if(choice>4)cout<<"没有你想进行的操作!"<<endl;system("pause");break; 
	}
   }
  } 
  else
  {
  	cout<<"输入错误,请重新输入"<<endl;
  	continue;
	 
  }
}
}	

 
发布了37 篇原创文章 · 获赞 52 · 访问量 1845

猜你喜欢

转载自blog.csdn.net/qq_45737068/article/details/103531105