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

扫描上方二维码,回复 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 );//程序退出时,显示BYEBYEPrintHello( );
}//该函数根据管理员的选择,完成指定的操作
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("操作成功" );elseputs("操作失败" );
}//从线性表中删除一个员工,根据员工的ID号决定删除哪个员工
void DelStu(ListType  L)
{ElemType stu;int pos;printf("请输入员工的ID号(不超过15位):" );getchar();  //吃掉前面的回车键,否则后面的字符串输入时会出错gets(stu.ID );pos = LocateElem(L, stu, IsEqual );  //如果存在该ID号的V,则返回其在线性表中的位序,如果不存在返回0if(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语言学生信息管理系统源代码 ★★★

感谢阅读!

C语言员工信息管理系统源代码相关推荐

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

    分享:C语言学生成绩管理系统设计 <C语言程序设计>实训报告 点击查看 ----> C语言学生成绩管理系统(课程设计报告书) 扫描下方公众号,发送 成绩系统 4个字,获取下载源码. ...

  2. 职员信息管理系统php,员工信息管理系统(含附源代码).doc

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

  3. 企业员工信息管理系统(C语言编程)

    C语言课综合实验 #include<stdlib.h> #include<stdio.h> #include <windows.h> #include<str ...

  4. 快递信息管理系统源代码c++_学生信息管理系统C语言版

    C语言学生信息管理系统包括以下功能: 1.学生信息的整体注册 2.学生信息的修改 3.学生成绩信息的录入 4.学生信息的添加 5.恢复误删的学生信息 6.学生信息的删除 7.密码修改保存函数 8.学生 ...

  5. java计算机毕业设计人口普查信息管理系统源代码+数据库+系统+lw文档

    java计算机毕业设计人口普查信息管理系统源代码+数据库+系统+lw文档 java计算机毕业设计人口普查信息管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  6. java计算机毕业设计旅游信息管理系统源代码+数据库+系统+lw文档

    java计算机毕业设计旅游信息管理系统源代码+数据库+系统+lw文档 java计算机毕业设计旅游信息管理系统源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  7. java ee 员工管理系统,fb3492 javaEE_原生Servlet_MySql企业员工信息管理系统的设计与实现,java源码含论文与答辩PPT...

    fb3492 javaEE_原生Servlet_MySql企业员工信息管理系统的设计与实现,java源码含论文与答辩PPT 存储:百度网盘 --/资源热下载站/VIP源码/Java源码/fb3492 ...

  8. Linux多线程编程之员工信息管理系统

    员工信息管理系统是基于Linux 多线程并发服务器编程,由服务器端和客户端构成,客户端可以运行在多个不同的主机上连接服务器,服务器对员工信息的操作结果通过"员工信息文件"来保存,即 ...

  9. 【java毕业设计】基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码)——企业员工信息管理系统

    基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的企业员工信息管理系统设计 ...

  10. Javaweb实现员工信息管理系统

    员工信息管理系统 一.项目介绍 1.项目用到的技术栈 开发工具:idea 语言:java.js.html+ajax 数据库:MySQL 服务器:Tomcat 框架:mybatis.jQuery.lay ...

最新文章

  1. 从比尔·盖茨说起,中国AI到底能否超过美国?
  2. Docker中的“公开”和“发布”有什么区别?
  3. MySQL设置某一字段默认为0,但是插入数据化却显示为null
  4. Python3 使用推导式统计字符出现次数
  5. rest和rest ful_还有更多REST技巧
  6. python 文字识别 之 pytesseract
  7. 6 个步骤,搞定 AI 车牌识别器!(附详细分析)
  8. 【论文串烧】基于特定实体的文本情感分类总结(PART I)
  9. 利用quietHDD解决硬盘C1增长以及异响问题
  10. 【好玩的代码雨(附源代码
  11. sqlserver企业版秘钥_SQLserver 2012下载 (附密钥)
  12. 要不要相信你的调研问卷
  13. JDK安全模块JCE核心Cipher使用详解
  14. Tagtraum.Industries.beaTunes.v3.5.7.Incl.Keygen-NOY
  15. 13,12_基本运算,add/minus/multiply/divide,矩阵相乘mm,matmul,pow/sqrt/rsqrt,exp/log近似值,统计属性,mean,sum,min,max
  16. C++ string常用截取字符串方法
  17. 广电优点家庭服务器怎么无线桥接,简单的无线桥接技术,能让wifi覆盖家庭每个角落!...
  18. 把握好每一个属于自己的清晨
  19. [论文+辩论PPT+源码等]精品微信小程序springboot居家养老服务+后台管理前后分离
  20. 我在北京和深圳的不同感受

热门文章

  1. Java实现获取汉字的拼音(首拼)
  2. H264视频编码原理
  3. python字体类型arial_python 更改字体_更改字体名称而不更改默认字体python
  4. Excel函数实战技巧精粹(一)函数前瞻
  5. 基于OpenCV的简单人流量统计
  6. commons-pool.jar 和commons-dbcp.jar 下载地址
  7. java scjp 试题_JAVA认证历年真题:SCJP考试真题和解析[1]
  8. Nero 9 Lite
  9. 万字长文详解JavaScript(JavaScript从入门到精通)(持续更新)
  10. 一个基于verilog的FPGA 的LCD 1602 显示程序