精华内容
下载资源
问答
  • C语言员工信息管理系统源代码

    千次阅读 2020-12-23 16:05:39
    分享:C语言学生成绩管理系统设计《C语言程序设计》实训报告 扫描下方公众号,发送成绩系统4个字,获取下载实训源码。 ... ...回复系统大全,即可获得关于...今天分享:C语言员工信息管理系统源代码 /************...

    最近咨询这方面源码的朋友比较多,所以扒一扒以前的网盘,发现了好多之前攒的源码,分享给大家。

    扫描上方二维码,回复 999 直接获取作者之前收藏的学习资源,谢谢网友们的分享。

    更多管理系统更新中,请注意关注!

    今天分享: C语言员工信息管理系统源代码

    /*******************************************************************************
    *   文件名:UI.Cpp															   *
    *                                                                              *
    *   文件功能: 该文件主要是定义(实现)和用户操作有关的一些函数,之所以把和用户 *
    *   操作有关的函数单独放到ui.c中,是为了使程序结构更加清晰,源代码更           *
    *	容易管理,这也是遵循结构化程序设计的要求(模块化、层次化)				   *
    *																			   *
    *   作者:                                                                      *
    *                                                                              *
    *******************************************************************************/
    
    #include  <stdio.h>
    #include	<stdlib.h>
    #include  <string.h>
    #include "ui.h"
    
    
    //选择身份
    void UserOperateChoose(ListType  L)
    {
    	int  option = 0;
    	
    
    	
    	do
    	{
    		
    		//提示用户操作选择
    		PrintOptionChoose( );
    		scanf("%d", &option );
    		
    		//根据用户选择调用相关函数完成指定的操作
    		switch(option )
    		{
    			//添加一个员工
    	/*	case 1:   
    			 
    			UserOperateOne(L);
    			break;*/
    			
    			//删除员工
    	/*	case 2:
    			DelStu(L);
    			break;
    			
    			//修改员工
    	 	case 3:
    			ModifyStu(L);
    			break;         */
    			
    			//查询某个员工
    		case 1:
    			UserOperatemanager(L);
    
    			break;
    			
    			
    		
    			
    			//排序
    	/*	case 3:
    			UserOperateThree(L);
    			break;*/
    			//打印所有员工信息
    		case 2:
    			UserOperateVisitor(L);
    			
    			break;
    			
    		default: break;
    		}
    	}while(option );
    	
    	//程序退出时,显示BYEBYE
    	PrintHello( );
    }
    
    //该函数根据管理员的选择,完成指定的操作
    void UserOperateVisitor(ListType  L)
    {
    	int  option = 0;
    	
    	  //显示欢迎信息
    
    
    	
    	do
    	{
    		//提示用户操作选择
    		PrintOptionVisitor( );
    		scanf("%d", &option );
    		
    		//根据用户选择调用相关函数完成指定的操作
    		switch(option )
    		{
    			//添加一个员工
    	/*	case 1:   
    			 
    			UserOperateOne(L);
    			break;*/
    			
    			//删除员工
    	/*	case 2:
    			DelStu(L);
    			break;
    			
    			//修改员工
    	 	case 3:
    			ModifyStu(L);
    			break;         */
    			
    			//查询某个员工
    		case 1:
    			UserOperateTwo(L);
    
    			break;
    			
    			
    		
    			
    			//排序
    	/*	case 3:
    			UserOperateThree(L);
    			break;*/
    			//打印所有员工信息
    		case 2:
    			PrntAll(L);
    			
    			break;
    			
    		default: break;
    		}
    	}while(option );
    	
    	//程序退出时,显示BYEBYE
    	
    }
    
    
    //该函数根据管理员的选择,完成指定的操作
    void UserOperatemanager(ListType  L)
    {
    	int  option = 0;
    	
    	 
    		//用密码进入系统
    	 password();
    
    	
    	do
    	{
    		//提示用户操作选择
    		PrintOption( );
    		scanf("%d", &option );
    		
    		//根据用户选择调用相关函数完成指定的操作
    		switch(option )
    		{
    			//添加一个员工
    		case 1:   
    			 
    			UserOperateOne(L);
    			break;
    			
    			//删除员工
    	/*	case 2:
    			DelStu(L);
    			break;
    			
    			//修改员工
    	 	case 3:
    			ModifyStu(L);
    			break;         */
    			
    			//查询某个员工
    		case 2:
    			UserOperateTwo(L);
    
    			break;
    			
    			
    		
    			
    			//排序
    		case 3:
    			UserOperateThree(L);
    			break;
    			//打印所有员工信息
    		case 4:
    			PrntAll(L);
    			
    			break;
    		 
    			
    		default: break;
    		}
    	}while(option );
    	
    	//程序退出时,显示BYEBYE
    	 
    }
    
    
    //该函数为基本操作的二级菜单,完成指定的操作
    void UserOperateOne(ListType  L)
    {
    	int  option = 0;
    	
    	
    	do
    	{
    		//提示用户操作选择
    		PrintOptionOne( );
    		scanf("%d", &option );
    		
    		//根据用户选择调用相关函数完成指定的操作
    		switch(option )
    		{
    			//添加一个员工
    		case 1:   
    			AddStu(L);
    			break;
    			
    			//删除员工
    		case 2:
    			DelStu(L);
    			break;
    			
    			//修改员工
    		case 3:
    			ModifyStu(L);
    			break;
    			
    			//返回上级菜单
    		case 0:
    			return;
    			break;
    			
    	/*		//查询某个员工
    		case 5:
    			chkStuname(L);
    			break;
    			
    			
    			//打印所有员工信息
    		case 6:
    			PrntAll(L);
    			break;
    			
    			//按ID号排序
    		case 7:
    			sortbyID(L);
    			
    			break;
    		case 8:
    			//按姓名排序
    			sortbyname(L);
    			break;
    		case 9:
    			//按部门分类显示信息
    			sortbyoffice(L);
    			break;*/
    			
    		default: break;
    		}
    	}while(option );
    	
    	//程序退出时,显示BYEBYE
    	//PrintHello( );
    }
    
    
    //该函数为基本操作的第二个二级菜单,完成指定的操作
    void UserOperateTwo(ListType  L)
    {
    	int  option = 0;
    	
    	
    	do
    	{
    		//提示用户操作选择
    		PrintOptionTwo( );
    		scanf("%d", &option );
    		
    		//根据用户选择调用相关函数完成指定的操作
    		switch(option )
    		{
    			//查询某个员工
    		case 1:
    			chkStu(L);
    			break;
    			
    			//查询某个员工
    		case 2:
    			chkStuname(L);
    
    			break;
    			
    			//返回上级菜单
    		case 0:
    			return;
    			break;
    			
    	/*		//查询某个员工
    		case 5:
    			chkStuname(L);
    			break;
    			
    			
    			//打印所有员工信息
    		case 6:
    			PrntAll(L);
    			break;
    			
    			//按ID号排序
    		case 7:
    			sortbyID(L);
    			
    			break;
    		case 8:
    			//按姓名排序
    			sortbyname(L);
    			break;
    		case 9:
    			//按部门分类显示信息
    			sortbyoffice(L);
    			break;*/
    			
    		default: break;
    		}
    	}while(option );
    	
    	//程序退出时,显示BYEBYE
    	//PrintHello( );
    }
    
    //该函数为基本操作的第三个二级菜单,完成指定的操作
    void UserOperateThree(ListType  L)
    {
    	int  option = 0;
    	
    	
    	do
    	{
    		//提示用户操作选择
    		PrintOptionThree( );
    		scanf("%d", &option );
    		
    		//根据用户选择调用相关函数完成指定的操作
    		switch(option )
    		{
    				//按ID号排序
    		case 1:
    			sortbyID(L);
    			
    			break;
    		case 2:
    			//按姓名排序
    			sortbyname(L);
    			break;
    		case 3:
    			//按部门分类显示信息
    			sortbyoffice(L);
    			break;
    			
    			//按性别排序显示信息
    		case 4:
    
    			sortbysex(L);
    			break;
    			
    		//按年龄排序显示信息
    		case 5:
    			sortbyage(L);
    			break;
    
           //按电话排序显示信息 
    
    		case 6:
    			sortbyphone( L);
    			break;
            //按地址排序显示信息
    		case 7:
    			sortbyaddress( L);
    			break;
    
    
    		//按工资排序显示信息   
    		case 8:
    			sortbypay( L);
    			break;
    
    		//按电子邮件排序显示信息
    		case 9:
    
    			sortbyemil( L);
    			break;
    			
    			//返回上级菜单
    		case 0:
    			return;
    			break;
    			
    	/*		//查询某个员工
    		case 5:
    			chkStuname(L);
    			break;
    			
    			
    			//打印所有员工信息
    		case 6:
    			PrntAll(L);
    			break;
    			
    			//按ID号排序
    		case 7:
    			sortbyID(L);
    			
    			break;
    		case 8:
    			//按姓名排序
    			sortbyname(L);
    			break;
    		case 9:
    			//按部门分类显示信息
    			sortbyoffice(L);
    			break;*/
    			
    		default: break;
    		}
    	}while(option );
    	
    	//程序退出时,显示BYEBYE
    	//PrintHello( );
    }
    
    
    
    /* 用户操作界面启动时,在显示器上显示一些欢迎信息 */
    void PrintWelcome( )
    {
    	puts(" ");
    	puts("********************************************************************" );
    	puts("                       欢迎使用员工管理系统!" );
    	puts("********************************************************************" );
     	puts("	            若有有问题请在留言区交流");
     	puts("********************************************************************" );
    	
    }
    
    
    
    
    
    
    /* 在显示器上显示用户可以进行的操作,以及操作的方法 */
    void PrintOption( )
    {
    	puts(" ");
    	puts("请选择操作:" );
    	puts("0:返回 " );
    	puts("1:进入基本操作菜单");
    	puts("2:进入员工查询系统");
    	puts("3:进入信息排序系统");
    	puts("4:打印员工信息");
    	
    }
    
    
    //选择身份
    void PrintOptionChoose( )
    
    {
    	puts(" ");
    	puts("请选择身份:" );
    	puts("0:退出系统 " );
    	puts("1:以管理员身份进入 " );
    	puts("2:以游客身份进入 " );
    
    }
    
    //显示第一个二级的提示信息
    void PrintOptionOne( )
    {
    	puts(" ");
    	puts("请选择操作:" );
    	puts("0:返回 " );
    	puts("1:添加员工                2:删除员工               3:修改员工信息" );
    	
    }
    //显示第二个二级的提示信息
    void PrintOptionTwo( )
    {
    	puts(" ");
    	puts("请选择操作:" );
    	puts("0:返回 " );
    	puts("1:按员工ID号查询           2:按员工姓名查询" );
    	
    }
    
    //显示第三个二级的提示信息
    void PrintOptionThree( )
    {
    	puts(" ");
    	puts("请选择操作:" );
    	puts("0:返回 " );
    	puts("1:按ID号排序显示信息	 2:按姓名排序显示信息	    3:按部门分类显示信息");
    	puts("4:按性别排序显示信息    5:按年龄排序显示信息      6:按电话排序显示信息");
    	puts("7:按地址排序显示信息    8:按工资排序显示信息      9:按电子邮件排序显示信息");
    	
    }
    
    //显示游客查询系统
    void PrintOptionVisitor( )
    {
    	puts(" ");
    	puts("请选择操作:" );
    	puts("0:返回 " );
     
    	puts("1:进入员工查询系统");
     
    	puts("2:打印员工信息");
    }
    
    
    
    
    /* 程序退出时,在显示器上显示一些感谢语言,以给使用者一个好印象 */
    void PrintHello( )
    {
    	
    	puts("********************************************************************" );
    	puts("                   谢谢使用员工管理系统,再见!" );
    	puts("********************************************************************" );
    	puts(" ");
    	
    }
    
    
    
    //比较两个员工信息的学号是否相等
    //若相等则返回TRUE,否则返回FALSE
    //当调用线性表操作函数int LocateElem(ListType L, ElemType e, STATUS (*compare)(ElemType e1, ElemType e2) 
    //的时候,将该函数名作为第三个参数传递给compare
    STATUS IsEqual(ElemType e1, ElemType e2 )
    {
    	if( strcmp(e1.ID, e2.ID)==0 )
    		return TRUE;
    	
    	return FALSE;
    }
    STATUS IsEqual2(ElemType e1, ElemType e2 )
    {
    	if( strcmp(e1.name, e2.name)==0 )
    		return TRUE;
    	
    	return FALSE;
    }
    
    
    
    //往线性表中添加一个员工
    void AddStu(ListType  L)
    {
    	ElemType  stu;
    	
    	printf("请输入员工的ID号(不超过15位):" );
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	gets(stu.ID );
    	printf("请输入员工的姓名(不超过15位):" );
    	gets(stu.name );
    	printf("请输入员工的性别(输入M/W):" );
    	stu.sex=getchar();
    	printf("请输入员工的年龄:" );
    	scanf("%d",&stu.age);
    	printf("请输入员工的电话(不超过20位):" );
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	gets(stu.phone);
    	printf("请输入员工的地址(不超过100位):" );
    	gets(stu.address);
    	printf("请输入员工的电子邮件(不超过50位):" );
    	gets(stu.email);
    	printf("请输入员工的工资(不超过10位):" );
    	gets(stu.pay);
    	printf("请输入员工的工龄:" );
    	scanf("%d",&stu.workingyears);
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	printf("请输入员工的所在部门(不超过100位):" );
    	gets(stu.office);
    	
    	
    	//判断线性表中是否已经存在该ID号的员工,如果已经存在,则放弃插入操作
    	if( LocateElem(L, stu, IsEqual) )
    	{
    		puts("操作失败,该员工已经存在" );
    		return ;
    	}
    	
    	//将该学生放入线性表中
    	//为简单起见,我们把新添加的结点放到线性表的前面
    	if( ListInsert(L, 1, stu ) )
    		puts("操作成功" );
    	else
    		puts("操作失败" );
    }
    
    
    
    
    
    
    //从线性表中删除一个员工,根据员工的ID号决定删除哪个员工
    void DelStu(ListType  L)
    {
    	ElemType stu;
    	int pos;
    	
    	printf("请输入员工的ID号(不超过15位):" );
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	gets(stu.ID );
    	pos = LocateElem(L, stu, IsEqual );  //如果存在该ID号的V,则返回其在线性表中的位序,如果不存在返回0
    	if(pos )   
    	{
    		if(ListDelete(L, pos, stu) )
    		{
    			puts("操作成功");
    			return;
    		}
    	}
    	
    	puts("操作失败" );
    }
    
    
    
    //修改员工成绩,根据ID号决定修改哪个员工的成绩
    void ModifyStu(ListType  L)
    {
    	int pos;
    	ElemType stu;
    	
    	printf("请输入员工的ID号(不超过15位):" );
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	gets(stu.ID );
    	printf("请输入员工的姓名(不超过15位):" );
    	gets(stu.name );
    	printf("请输入员工的性别(输入M/W):" );
    	scanf("%c",&stu.sex);
    	printf("请输入员工的年龄:" );
    	scanf("%d",&stu.age);
    	printf("请输入员工的电话(不超过20位):" );
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	gets(stu.phone);
    	printf("请输入员工的地址(不超过100位):" );
    	gets(stu.address);
    	printf("请输入员工的电子邮件(不超过50位):" );
    	gets(stu.email);
    	printf("请输入员工的工资(不超过10位):" );
    	gets(stu.pay);
    	printf("请输入员工的工龄:" );
    	scanf("%d",&stu.workingyears);
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	printf("请输入员工的所在部门:" );
    	gets(stu.office);
    	
    	pos = LocateElem(L, stu, IsEqual );
    	if(pos > 0 )
    	{
    		ListModify(L, pos, stu );
    		puts("操作成功" );
    	}
    	else
    	{
    		puts("操作失败" );
    	}
    	
    	
    }
    
    
    
    
    
    
    //根据学号查询某个员工的成绩
    void chkStu(ListType  L)
    {
    	int pos;
    	ElemType stu;
    	
    	printf("请输入员工的ID号(不超过15位):" );
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	gets(stu.ID );
    	
    	if(pos = LocateElem(L, stu, IsEqual) )
    	{
    		GetElem(L, pos, stu );
    		PrntOneStu(stu );
    	}
    	else
    	{
    		puts("操作失败" );
    	}
    	
    }
    
    
    
    //根据姓氏查询某个员工的成绩
    void chkStuname(ListType  L)
    {
    	int pos;
    	ElemType stu;
    	
    	printf("请输入员工的姓氏(不超过15位):" );
    	getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错
    	gets(stu.name);
    	
    	if(pos = LocateElem(L, stu, IsEqual2) )
    	{
    		GetElem(L, pos, stu );
    		PrntOneStu(stu );
    	}
    	else
    	{
    		puts("操作失败" );
    	}
    	
    }
    
    
    //成绩统计,统计全体员工的平均成绩
    /*void StateScore(ListType  L)
    {
    float  total[2] = {0.0, 0.0};
    int num = 0;
    ElemType  e;
    
      while(GetElem(L, num+1, e ) )  //GetElem(...)返回值为FALSE时说明没有位序为num+1的数据
      {
    		num++;
    		total[0] += e.score[0];
    		total[1] += e.score[1];
    		}
    		
    		  if(num > 0 )
    		  {
    		  printf("平均成绩分别为:%.2f, %.2f\n", total[0]/num, total[1]/num );
    		  }
    		  else
    		  {
    		  puts("没有数据信息" );
    		  }
    		  
    			
    }*/
    
    
    
    //打印一个员工的信息
    //调用ListTraverse()函数的时候,将该函数的名字作为第二个参数传递给visit
    STATUS  PrntOneStu(ElemType  stu )
    {
    	printf("ID号:%s 姓名:%s 性别:%c 年龄:%d 电话:%s 地址:%s 电子邮件:%s 工资:%s 工龄:%d 所在部门:%s\n", stu.ID, stu.name, stu.sex,stu.age,stu.phone,stu.address,
    		stu.email,stu.pay, stu.workingyears ,stu.office);
    	
    	return OK;
    }
    
    
    
    
    
    //打印所有学生信息
    void PrntAll(ListType  L)
    {
    	
    	ListTraverse(L, PrntOneStu );
    	
    }
    
    //用于做新的链表 
    
    //按ID排序
    void sortbyID(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (strcmp(p1->data.ID,p2->data.ID)==-1)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        printf("降序排序成功\n");
    	PrntAll(head);
    		  
    }
    
    
    //按姓名排序
    void sortbyname(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (strcmp(p1->data.name,p2->data.name)==-1)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        printf("降序排序成功\n");
    	PrntAll(head);
    		  
    }
    
    //按性别分类显示信息
    void sortbysex(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (p1->data.sex>p2->data.sex)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        PrntAll(head);
    		  
    }
    
    
    //按年龄分类显示信息
    void sortbyage(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (p1->data.age>p2->data.age)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        PrntAll(head);
    		  
    }
    
    
    //按电话分类显示信息
    void sortbyphone(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (strcmp(p1->data.phone,p2->data.phone)==-1)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        PrntAll(head);
    		  
    }
    
    
    //按地址分类显示信息
    void sortbyaddress(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (strcmp(p1->data.address,p2->data.address)==-1)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        PrntAll(head);
    		  
    }
    
    
    //按工资分类显示信息
    void sortbypay(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (strcmp(p1->data.pay,p2->data.pay)==-1)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        PrntAll(head);
    		  
    }
    //按邮件地址分类显示信息
    void sortbyemil(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (strcmp(p1->data.email,p2->data.email)==-1)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        PrntAll(head);
    		  
    }
    
    //按部门分类显示信息
    void sortbyoffice(struct lnode *head)
    {
    	struct lnode *p1,*p2,*l;
    	
    	l=(struct lnode *)malloc(sizeof(struct lnode));                  
    	l->next=NULL;
    	
    	for (p1=head;p1->next!=NULL;p1=p1->next)
    	{
    		for (p2=p1->next;p2!=NULL;p2=p2->next)
    		{
    			if (strcmp(p1->data.office,p2->data.office)==-1)
    			{
    				l->data=p1->data;
    				p1->data=p2->data;
    				
    				p2->data=l->data;
    				
    				
    			}
    		}
    	}
        PrntAll(head);
    		  
    }
    
    //按密码进入系统
    void password()
    {
    	char password[7]="123456"; 
    
    	int choice; 
    	char s[7]; 
    	int flag=0; 
    	int n=3; 
    	do 
    	{ 
    		printf("请你输入密码:\n"); 
    		scanf("%s",s); 
    		if(strcmp(s,password)==0)//若密码正确 
    		{ 
    			printf("恭喜你成功登陆了\n\n\n"); 
    			flag=1; 
    			
    			break; 
    		} 
    		else 
    		{ 
    			printf("输入有错误请重新输入:\n"); 
    			n--; 
    		} 
    	}while(n>0); 
    	
    	if(!flag) 
    	{ 
    		printf("哈哈,O(∩_∩)O哈!,想暴力破解是行不通的\n"); 
    		puts("若有有问题留言区交流");
    		exit(0); 
    
    	}
    }

    做报告课程设计也是在网上找到了很多好的资源,感谢原作者的分享,现在也记不清名字啦,不过也学习网友们的无私奉献精神,把资料分享给大家,帮助更多的朋友吧

    相关文章推荐:

    1、 C语言学生成绩管理系统源代码 ★★★★★

    2、 C语言学籍管理系统源代码 ★★

    3、C语言学生成绩管理系统设计 《C语言程序设计》实训报告 ★★★

    4、C语言学生信息管理系统源代码 ★★★

    感谢阅读!

    展开全文
  • 员工信息管理系统(含附源代码)西安郵電學院 目: 员 工 信 息 管 理 系 统系部名称:电信系专业名称:电子科学与技术班 级:科技0701班内序号:33学生姓名 :贾 春 阳指导教师:黄茹时间:2008年6月10日 至2008年6月...

    员工信息管理系统(含附源代码)

    西安郵電學院 目: 员 工 信 息 管 理 系 统

    系部名称:电信系专业名称:电子科学与技术班 级:科技0701班内序号:33学生姓名 :贾 春 阳指导教师:黄茹时间:2008年6月10日 至2008年6月20日

    实验题目:员工信息管理系统

    实验目的

    熟悉c语言的编译连接和运行过程。

    掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。

    掌握if语句及switch语句的运用方法及嵌套应用方法。

    掌握实现循环结构的三种语句while、 do-while.、for 的使用。

    掌握函数的定义方法和调用方法。

    能够采用模块化思想调试程序。

    二.实验内容

    编写程序并进行调试运行。

    输入员工资料,并保存于文件。每个员工包含信息如:号码、姓名、性别、部门,工龄,出生日期,工资,奖金,籍贯等。

    对已存入的员工信息进行更新操作,包括添加一个员工信息、删除某个员工信息和修改某个员工信息。

    通过输入姓名、号码的方式查询与员工信息。

    可以按照工资,奖金等信息对员工进行排序。

    最后输出员工信息,供需要时打印。

    需求分析

    该程序可用于对员工情况基本信息的存储、更新、查询、输出等操作,以实现对员工信息的管理。

    其中更新功能包括:添加信息、删除信息、修改信息,也可对个别员工信息进行适当的删除或修改。以便随时更新员工信息。

    程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据不同的方法查询:按号码查询和按姓名查询等。以满足不同的需要。

    四、概要设计

    1、方案设计

    对系统进行分析,给出结构图

    分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计

    结构图如下:

    2.模块功能说明

    对各个模块进行功能的描述

    (1).输入模块:

    录入需要管理的员工信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。

    (2).添加模块:

    可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。

    (3).删除模块:

    可对退休或离休的员工信息做删除处理。

    (4).修改模块:

    可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。

    (5).查询模块:

    可对已建立的员工信息进行查询,并且可根据需要选择按姓名查询或按号码查询。

    (6).保存模块:

    用于对信息进行保存。

    (7).输出模块:

    将所有员工信息或想要查询的员工信息显示于屏幕,用于打印员工信息或查找某些员工信息。

    (8).退出系统:

    选择该项,自动退出该系统。

    五、详细设计及运行结果

    流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。

    六. 调试情况及运行结果

    对自己设计进行评价,指出合理和不足之处,提出改进的方案。

    此次实践课编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而且各模块也出现了一些小问题,在同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。可着毕竟是第一次独立完成这样的大程序,结果还不是太理想。

    由于时间很短,在选题报告中设想到的好多功能都没有实现。已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。如:在录入数据后,进行排序如果两个值相等没有提示,,这就给运用上带来一些不便。

    2、在设计过程中的感受。

    本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。

    本次实习中遇到了很多以前没有遇到过的问题,也曾想过要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学的帮助下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。

    七.参考文献

    《C语言程序设计》 王曙燕 曹锰 科学出版社 2005年2月

    《C语言程序设计》 谭浩强 清华大学出版社 1999年12月

    八。附录:

    #define MAX 1

    #include

    #inclu

    展开全文
  • 员工管理系统源码

    2021-07-27 10:13:34
    员工管理系统源码是一款: 基于ThinkPHP框架开发的员工管理/员工信息记录系统,有增删改查功能,源码全开源,方便二次开发,搭建和使用都很简单 安装教程: 环境:Linux + mysql5.6 + php7.2 安装步骤: 1.新建...

    简介:

    员工管理系统源码是一款:
    基于ThinkPHP框架开发的员工管理/员工信息记录系统,有增删改查功能,源码全开源,方便二次开发,搭建和使用都很简单


    安装教程:

    环境:Linux + mysql5.6 + php7.2


    安装步骤:

    1.新建站点–》上传–》解压
    2.导入数据库文件
    3.修改/数据库  \Application\Home\Conf\config.php
    4.后台地址/home/login/index
    账号密码 admin    www.ohbbs.cn
    5.伪静态
    location / {
    if (!-e $request_filename){

    }
    }


    网盘下载地址:

    http://kekewangLuo.cc/RMb4a6QW9pf0


    图片:




    展开全文
  • printf("@@@@ 欢迎使用员工工资管理系统 @@@@\n"); printf("@@@@ 制作人:刘爽 @@@@\n"); printf("@@@@在使用中产生的任何问题,欢迎进行批评指正@@@@\n"); printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...

    #include

    #include

    typedef struct

    {

    int basic;//基本工资

    int position;//岗位工资

    int subsidy;//津贴

    int wages;//奖金

    int sum;//总工资

    }money;

    typedef struct

    {

    char num[20];//职工号

    char name[20];//姓名

    int age;//年龄

    char sex[20];//性别

    money salary;//工资

    }employee;

    int Print_jinru();//账号密码输入

    void Fscan_information();//“职工信息.txt”文件写入

    void Print_staff();//全体员工

    void Print_empl1(char x[51]);//按职工号查询

    void Print_empl2(char s[51]);//按姓名查询

    void Print_MainInterface();//主界面

    void Print_Interface_1();//职工信息录入界面

    void Print_Interface_2();//职工信息查询界面

    void Print_Interface_3();//职工工资排序界面

    void Print_Interface_4();//职工总工资

    void Print_Interface_5();//文件读出

    void qsort(int l,int r);//快速排序

    void Print_delete(int t);//删除职工信息

    void Print_Interface_2_1(int t);//职工信息修改界面

    int fyanzheng(char s1[],char s2[]);//密码验证函数

    employee st[500];//记录职工信息的函数

    int n;//职工总数

    void main()

    {

    int x;

    employee em;

    printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");

    printf("@@@@ 欢迎使用员工工资管理系统 @@@@\n");

    printf("@@@@ 制作人:刘爽 @@@@\n");

    printf("@@@@在使用中产生的任何问题,欢迎进行批评指正@@@@\n");

    printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");

    printf("\n");

    printf("\n");

    printf("\n");

    if (Print_jinru())

    {

    Fscan_information();

    Print_MainInterface();

    }

    else return;

    }

    void Fscan_information()

    {

    FILE *fp;

    int i;

    if ((fp=fopen("职工信息.txt","r"))==NULL)

    {

    printf("cannot open this file\n");

    return ;

    }

    fscanf(fp,"%d",&n);

    for (i=1;i<=n;i++)

    {

    fscanf(fp,"%s%s%d%s%d%d%d",st[i].num,st[i].name,&st[i].age,st[i].sex,&st[i].salary.basic,&st[i].salary.subsidy,&st[i].salary.wages);

    st[i].salary.sum=st[i].salary.basic+st[i].salary.subsidy+st[i].salary.wages;

    }

    fclose(fp);

    }

    int fyanzheng(char s1[],char s2[])

    {

    FILE *fp1,*fp2;

    char str1[40]="",str2[40]="",st;

    int t;

    if ((fp1=fopen("账号验证.in","r"))==NULL)

    {

    printf("cannot open this file\n");

    return 0;

    }

    t=0;

    st=fgetc(fp1);

    while (st!='#')

    {

    str1[t]=st;

    t++;

    st=fgetc(fp1);

    }

    if ((fp2=fopen("密

    展开全文
  • 《完整版)职工信息管理系统java源代码》由会员分享,可在线阅读,更多相关《完整版)职工信息管理系统java源代码(10页珍藏版)》请在人人文库网上搜索。1、package exercise;import java.io.*;class stafflnfo / 职工...
  • java ssm员工信息管理系统源码分享】 技术要点: 1 此系统采用了目前最流行的ssm框架,其中的spingMVC框架相对于struts2框架更灵活,更安全。 2 本项目springMVC框架采用了注解映射器,使用了RESTful风格的url...
  • 《C++员工工资管理系统源代码》由会员分享,可在线阅读,更多相关《C++员工工资管理系统源代码(17页珍藏版)》请在人人文库网上搜索。1、include #include #include #include #include #include using namespace std;...
  • 职工信息管理系统代码(精)1、定义职工类:public class Employee implements java.io.SerializableString number,name,discipling,grade,borth,sex;public Employee(public void setNumber(String numberthis.number...
  • 基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的企业员工信息管理系统, 该项目可用各类java课程设计大作业中, 企业员工信息管理系统的系统架构分为前后台两部分, 最终实现在线上进行企业员工信息管理系统各项...
  • 员工管理系统JAVA源码(源码大小8M)本站提供几百套大型商业源码,平均一元一套,火爆下载中......QQ:283072、283672 EMAIL:web@hur.cn、jhwjeffrey@163.com TEL:见下面页面一、员工登陆通过员工号和密码才可...
  • 《javaweb企业员工信息管理系统》该项目采用技术jsp、servlet、jdbc、tomcat服务器、mysql数据库 开发工具eclipse,项目含有源码、论文、配套开发软件、软件安装教程、项目发布教程 javaweb企业员工信息管理系统...
  • 本项目是一套基于SSM实现的员工管理系统 或 企业员工信息管理系统 或 员工考勤管理系统 或 员工工资管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 详细介绍了该系统的具体...
  • 目: 员 工 信 息 管 理 系 统系部名称:电信系专业名称:电子科学与技术班 级:科技0701班内序号:33学生姓名:贾 春 阳指导教师:黄茹时间:2008年6月10实验题目:员工信息管理系统实验目的熟悉c语言的编译连接和...
  •  /*清屏*/ puts("\t\t\t\t 员工管理系统!\n\n"); puts("\t\t*********************MENU*********************\n\n"); puts("\t\t\t\t1.Enter new data"); puts("\t\t\t\t2.Browse all"); puts("\t\t\t\t3....
  • javaweb课程设计之员工信息管理系统

    千次阅读 2021-03-25 09:33:48
    主要技术java+tomact8.0+servlet+filter+session会话+三层架构+数据库+layui前端框架+myBatis后台框架+jsp项目说明主要实现员工信息管理系统,实现增删改查功能用户:登录注册 进入系统前台查询信息管理员:对员工的...
  • 企业员工信息管理系统 设计与实现 c语言资料 (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.90 积分西安工业大学北方信息工程学院数据结构课程设计 1 《《算法与...
  • 职工信息管理系统C++代码

    千次阅读 2020-12-28 15:35:34
    相关文章推荐: 1、C语言学生成绩管理系统源代码★★★★★ 2、C语言学籍管理系统源代码★★...大学实训课学习到的一段源代码,职工信息管理系统 c++项目源代码。 #include <string> #include <iostre...
  • } } class ways //方法类,主要实现职工信息的建立,显示,查找,删除,信息的保存与读取;这个类是整个程序的操作类。 { public String recordkey; public int i=0;//i用来存放职工的人数 public String filename=...
  • 一、写在前面 ...所以今天就使用SpringBoot整合MyBatis来做一个完整的员工管理系统。实现登录验证、国家化、CRUD等操作。带大家熟悉一下SpringBoot的操作流程,以及整合MyBatis的具体步骤。整个项目你将会学到
  • 他们希望有一个适合自己的管理系统,能够实现员工信息管理,部门管理,请假管理,考勤管理等功能。通过此系统,管理者可以对员工的信息做出及时的修改,通过电脑的数字化管理,方便的管理员工信息,这.
  • JavaWeb员工管理系统__基于JSP-Servlet-Mysql数据库-JSTL 系统功能 项目技术 运行环境 系统目录架构 数据库表 功能演示 有问题可与我联系 源码地址: 系统功能 功能列表: 登录模块:管理员...
  • 《C员工工资管理系统源代码.doc》由会员分享,可在线阅读,更多相关《C员工工资管理系统源代码.doc(17页珍藏版)》请在皮匠网上搜索。1、烈际癸幌儒渠免摘度裹距指沽有背街糟阻奔考瞻悦链戏囊晾澈年痞孵臻燎竣抽汰瞅...
  • printf(" 职工信息管理系统 "); printf("********************************************************************* *********\n"); printf(" 1.录入职工信息\n"); printf(" 2.浏览职工信息\n"); printf(" 3.查询...
  • 基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的人事员工管理系统, 该项目可用各类java课程设计大作业中, 人事员工管理系统的系统架构分为前后台两部分, 最终实现在线上进行人事员工管理系统各项功能,实现了...
  • jsp+servlet+mysql员工管理系统项目截图注册页面登录页面添加员工编辑员工员工列表数据库建表语句/*Navicat MySQL Data TransferSource Server : localhostSource Server Version : 50509Source Host : localhost:...
  • 1:实现员工请假管理的的信息管理2:实现员工请假管理的基础要求3:具有查询功能4:具有报表及打印功能5: 多用户操作【实例截图】【核心代码】Emis└── Emis├── data│ └── Employeemanage.mdb├── ...
  • 《javaweb企业员工信息管理系统》该项目采用技术jsp、servlet、jdbc、tomcat服务器、mysql数据库 开发工具eclipse,项目含有源码、论文、配套开发软件、软件安装教程、项目发布教程 javaweb企业员工信息管理系统...
  • ThinkPHP内核简单员工管理系统源码 开发环境:PHP+MYSQL 基于ThinkPHP框架搭建员工管理系统,有增删改查功能,登录拦截,分页功能,index.php为入口文件加/home/login/index后缀即可访问 本文章转载自:...
  • 大家好,今天给大家演示一款由Java swing mysql实现的简单的人事管理系统,功能非常简单,实现了基本人事的增删改查,采用了mvc的分层设计模式,结构非常清晰,是Java初学者参考的非常好的资料,下面我们来看下如何...
  • 企业员工信息管理系统主要用于实现公司的员工相关信息管理,基本功能包括:密码修改、员工管理、部门管理、出勤管理、工资管理、请假审核、我的请假、我的工资等。本系统结构如下: (1)管理员端 密码修改:修改...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,698
精华内容 15,479
关键字:

员工信息管理系统源码