体育资讯网

您现在的位置是:首页 > 足球教学 > 正文

足球教学

企业员工管理系统c源码(C#员工管理系统)

hacker2022-06-11 15:17:23足球教学61
本文目录一览:1、用C语言设计并实现一个员工信息管理系统

本文目录一览:

用C语言设计并实现一个员工信息管理系统

#include iostream

#include cstring

using namespace std;

typedef struct wage {

char unit[8];

char name[10];

char sex[4];

char birthdate[12];

char title[20];

double basewage;

double subsidy;

double tax;

double expenses;

double residualwage;

}WAGE;

void ComputerResidualwage(WAGE a[],int n) {

for(int i = 0; i  n; ++i)

a[i].residualwage = a[i].basewage + a[i].subsidy - a[i].tax - a[i].expenses;

}

void PrintTitle(void) {

cout  "单  位 姓  名 性别  出生年月  职  称 基本工资  津  贴   个  税  水电费 实发工资\n";

for(int i = 0; i  79; ++i) cout  "*"; cout  endl;

}

void RowShow(WAGE a[], int i) {

cout  a[i].unit  " ";

if(strlen(a[i].name) == 4) {

a[i].name[6] = a[i].name[4];

a[i].name[5] = a[i].name[3];

a[i].name[4] = a[i].name[2];

a[i].name[2] = a[i].name[3] = ' ';

}

cout  a[i].name  "  "  a[i].sex  "  "  a[i].birthdate;

if(strlen(a[i].title) == 4) {

a[i].title[6] = a[i].title[4];

a[i].title[5] = a[i].title[3];

a[i].title[4] = a[i].title[2];

a[i].title[2] = a[i].title[3] = ' ';

}

cout  " "  a[i].title  " ";

cout.precision(2);

cout.width(8);

cout  fixed  a[i].basewage  "  "; cout.width(6);

cout  fixed  a[i].subsidy  " ";

cout.width(8);

cout  fixed  a[i].tax  "  ";

cout.width(6);

cout  fixed  a[i].expenses  " ";

cout.width(8);

cout  fixed  a[i].residualwage  endl;

}

void Show(WAGE a[], int n) {

for(int i = 0; i  n; ++i)  RowShow(a,i);

}

void Search1(WAGE a[], int n) {

int i,flag = 1;

for(i = 0; i  n; ++i) {

if(strcmp(a[i].unit,"理学院") == 0  a[i].basewage  900.00 

strcmp(a[i].title,"副教授") == 0  strcmp(a[i].sex,"男") == 0)  {

RowShow(a,i);

flag = 0;

}

}

if(flag) cout  "(没找到符合条件者)\n";

}

void Search2(WAGE a[], int n) {

int i,flag = 1;

for(i = 0; i  n; ++i) {

if(strcmp(a[i].unit,"理学院") == 0  a[i].basewage  1200.00 

strcmp(a[i].title,"教  授") == 0  strcmp(a[i].sex,"男") == 0) {

RowShow(a,i);

flag = 0;

}

}

if(flag) cout  "(没找到符合条件者)\n";

}

int main() {

WAGE a[] = {

{"理学院","赵志军","男","1957-06-25","教  授",1150,411,176.6,90},

{"商学院","于  铭","女","1979-10-21","助  教",500,471,208.9,91},

{"工学院","许炎锋","女","1954-03-08","教  授",1250,630,306.2,96},

{"理学院","王  嘉","女","1971-06-06","讲  师",850,475,100.3,89},

{"工学院","李新江","男","1962-10-02","教  授",950,399,49.5,87},

{"商学院","郭海英","女","1963-02-07","副教授",950,332,77.6,85},

{"工学院","马淑恩","女","1960-06-09","副教授",900,791,60.5,45},

{"理学院","王金科","男","1956-09-10","教  授",1050,480,325.6,93},

{"理学院","李东慧","女","1950-08-07","教  授",1350,364,52.3,94},

{"工学院","张  宁","女","1980-01-01","助  教",500,395,78,89},

{"商学院","王  孟","男","1966-09-08","讲  师",800,463,220.3,98},

{"工学院","马会爽","女","1970-02-09","讲  师",800,368,101.1,69},

{"工学院","史晓赟","女","1952-06-06","教  授",1200,539,520.3,50},

{"理学院","刘燕凤","女","1959-08-07","教  授",1200,892,180.9,86},

{"工学院","齐  飞","男","1961-04-05","副教授",1200,626,245.6,74},

{"商学院","张  娟","女","1975-09-25","助  教",650,374,625.3,86},

{"理学院","潘成文","男","1965-10-09","讲  师",950,402,1050,90},

{"工学院","邢  易","女","1981-02-25","助  教",600,325,300,90},

{"商学院","谢枭豪","女","1950-11-18","教  授",1350,516,200,90},

{"工学院","胡洪静","女","1952-06-24","教  授",1350,277,100,86},

{"工学院","李云飞","男","1969-05-04","讲  师",960,729,56,89},

{"商学院","张  奇","女","1970-05-28","讲  师",960,331,69,89},

{"理学院","夏小波","女","1968-08-01","讲  师",960,482,89,45},

{"工学院","王  玮","女","1972-11-05","讲  师",960,340,98,79},

{"理学院","张  帝","女","1950-03-26","教  授",1300,335,124,90},

{"商学院","孙  帅","男","1966-05-24","讲  师",900,748,326,79},

{"工学院","卜辉娟","女","1960-05-23","教  授",960,481,651,78},

{"工学院","李辉玲","女","1978-09-09","助  教",630,379,400,77},

{"理学院","刘亚静","男","1969-08-09","副教授",890,377,23,66},

{"工学院","尹  娴","女","1958-06-09","教  授",1050,955,59,65},

{"商学院","马春英","男","1964-12-06","讲  师",850,387,78,69},

{"工学院","孟  梦","女","1965-08-09","副教授",850,753,485.6,93},

{"工学院","梁晓萌","女","1975-06-09","助  教",650,551,136.5,99},

{"理学院","张  然","女","1973-03-03","讲  师",800,761,203.1,100},

{"工学院","彭雁南","男","1978-05-09","助  教",650,200,200,90}

};

int i,n = sizeof(a)/sizeof(a[0]);

if(n == 0) return 1;

ComputerResidualwage(a,n);

PrintTitle();

for(i = 0; i  n; ++i) RowShow(a,i);

for(i = 0; i  79; ++i) cout  "*";

cout  endl; cout  "\n理学院,基本工资高于900元的男副教授有:\n\n"; 

PrintTitle();

Search1(a,n);

for(i = 0; i  79; ++i) cout  "*";

cout  endl;

cout  "\n理学院,基本工资低于1200元的男教授有:\n\n";

PrintTitle();

Search2(a,n);

for(i = 0; i  79; ++i) cout  "*";

cout  endl  endl;

return 0;

}

C语言实现公司职员信息管理系统

#includestdio.h

#includestring.h

#includeconio.h

#includestdlib.h

#define MAX 200

int id=0; /*全局变量,添加数据时自增.*/

int *p;

char delechar[]="qq1145219983";

struct score

{

int c;

int java;

int vb;

int sql;

int asp;

};

struct user /*结构体,学生数据各项属性定义.*/

{

char name[50];

char sex[10];

char no[20];

int userid;

struct score grade ;

};

struct user users[MAX]; /*全局结构体数组,定义可存储学生数.*/

void adduser(); /*添加数据的函数说明.*/

void updateuser(); /*修改数据的函数说明.*/

void deleteuser(); /*删除数据的函数说明.*/

void selectuser(); /*查询数据的函数说明.*/

void selectno(); /*按学号查询函数说明.*/

void selectall(); /*查询全部学生函数声明.*/

void selectgrade();

void upgrade(int a);

int average(int i);

int verify(int a);

int verifyg(int a);

int load();

void save();

int main()

{

int conn;

id=load();

system("title 学生成绩信息管理系统");

printf("***************\nqq:1145219983\nMy Name:wei!\n***************\n");

for(;;) /*无限循环,用于每次执行完各操作函数时返回主菜单.*/

{

printf("\n\n\n\n"); /*主菜单开始*/

printf("***********************************\n"); /*主菜单开始*/

printf("=======学生成绩信息系统============\n");

printf("***********************************\n");

printf(" 1 添加.\n");

printf(" 2 修改.\n");

printf(" 3 删除.\n");

printf(" 4 查询.\n");

printf(" 5 清屏.\n");

printf(" 其他任意键退出.\n");

printf("***********************************\n");

printf("***********************************\n\n\n");

printf("输入操作:"); /*主菜单结束*/

scanf("%d",conn); /*输入数字,给全局变量conter赋值,用于判断添加,删除数据等操作.*/

if (conn==1||conn==2||conn==3||conn==4||conn==5) /*判断输入数字是否在1到5之间*/

{

switch(conn) /*如果上面判断是在1到4间,则执行switch,判断conter是1到4间的哪一个.*/

{

case 1 : adduser(); save(); break; /*是1,则执行添加函数,转至添加函数进行操作.*/

case 2 : updateuser(); save(); break; /*是2,则执行修改函数,转至修改函数进行操作.*/

case 3 : deleteuser(); save(); break; /*是3,则执行删除函数,转至删除函数进行操作.*/

case 4 : selectuser(); break; /*是4,则执行查询函数,转至查询函数进行操作.*/

case 5 : system("cls"); break;

default : exit(0); /*都不是,则退出程序.*/

}

}

else exit(0);

}

}

void adduser() /*添加数据函数,*/

{

char ch;

int i=0;

printf("姓名:");

scanf("%s",users[id].name);

printf("性别:");

scanf("%s",users[id].sex);

printf("输入成绩:\n");

printf("c语言:");

scanf("%d",users[id].grade.c);

users[id].grade.c=verifyg(users[id].grade.c);

printf("Java:");

scanf("%d",users[id].grade.java);

users[id].grade.java=verifyg(users[id].grade.java);

printf("Vb:");

scanf("%d",users[id].grade.vb);

users[id].grade.vb=verifyg(users[id].grade.vb);

printf("Sql:");

scanf("%d",users[id].grade.sql);

users[id].grade.sql=verifyg(users[id].grade.sql);

printf("Asp:");

scanf("%d",users[id].grade.asp);

users[id].grade.asp=verifyg(users[id].grade.asp);

while(i==0)

{

printf("学号:");

scanf("%s",users[id].no);

i=verify(id);

}

if(i!=0)

{

users[id].userid=id;

id++;

printf("\n完成!\n\n");

}

}

void updateuser() /*修改数据函数,*/

{

char upno[10],ch;

int conn;

int b=0;

int i,j;

printf("输入学号:");

scanf("%s",upno);

for(i=0;iid;i++)

{

if(strcmp(users[i].no,upno)==0) /*遍历所有数据,判断输入的学号于数据里面的学号是否相同,不同则不执行修改.*/

{

printf("\n将要修改以下资料:\n");

printf("姓名:%s\n性别:%3s, 学号:%10s , 平均份:%3d \nC:%d , Java:%d , Vb:%d , Sql:%d , Asp:%d\n\n",users[i].name,users[i].sex,users[i].no,average(i),users[i].grade.c,users[i].grade.java,users[i].grade.vb,users[i].grade.sql,users[i].grade.asp);

printf("\n\n按任意键继续,按0返回...\n\n");

ch=getch(); if(ch==48) {j=1; break;}

printf("修改: 1.姓名 , 2.性别 , 3.学号 , 4.成绩 , 0.主目录 , 其他键退出.\n");

printf("请选择:");

scanf("%d",conn);

if(conn==1||conn==2||conn==3||conn==4)

switch(conn)

{

case 1 : printf("姓名:");scanf("%s",users[i].name); j=1; printf("\n完成!\n\n"); break;

case 2 : printf("性别:");scanf("%s",users[i].sex); j=1; printf("\n完成!\n\n"); break;

case 3 : while(b==0){printf("学号:");scanf("%s",users[i].no);b=verify(i);}if(b!=0){j=1;b=0;printf("\n完成!\n\n");} break;

case 4 : j=1; upgrade(i); break;

}

else if(conn==0) {j=1; break;}

else exit(0);

if(j!=1) printf("\n没有此学生!\n\n");

}

}

}

void upgrade(int a) //修改成绩

{

int conn;

int i;

for(;;)

{

printf("修改成绩: 1.C , 2.Java , 3.Vb , 4.Sql , 5.Asp , 0.主目录 , 其他键退出.\n");

printf("输入操作:");

scanf("%d",conn);

if(conn==1||conn==2||conn==3||conn==4||conn==5)

{

switch(conn)

{

case 1 : printf("C:");scanf("%d",users[a].grade.c); break;

case 2 : printf("Java:");scanf("%d",users[a].grade.java); break;

case 3 : printf("Vb:");scanf("%d",users[a].grade.vb); break;

case 4 : printf("Sql:");scanf("%d",users[a].grade.sql); break;

case 5 : printf("Asp:");scanf("%d",users[a].grade.asp); break;

}

printf("完成!\n\n");

}

else if(conn==0)

break;

else

exit(0);

}

}

void deleteuser() /*删除数据函数,*/

{

char deno[10];

int i,j,k=0;

struct user temp;

printf("学号:");

scanf("%s",deno);

for(i=0;iid;i++) /*遍历所有数据,判断输入的学号于数据里面的学号是否相同,不同则不执行删除操作,.*/

{

if(strcmp(users[i].no,deno)==0)

{

for(j=i;jid-1;j++)

users[j]=users[j+1];

id--;

k=1;

printf("删除成功...\n");

}

}

if(k==0)

printf("没有此学生!\n");

}

void selectuser() /*查询控制函数,*/

{

int conn;

for(;;)

{

printf("***********************************\n");

printf(" 1.查询全部学生.\n");

printf(" 2.按学号查询.\n");

printf(" 0.主目录\n");

printf(" 其他键退出.\n");

printf("***********************************\n\n");

printf("输入操作:");

scanf("%d",conn);

if(conn==1||conn==2)

{

switch(conn)

{

case 1 : selectall(); break;

case 2 : selectno(); break;

}

}

else if(conn==0)

break;

else

exit(0);

}

}

void selectall() /*查询所有数据函数,*/

{

int i;

if(id==0)

{

printf("\n\n没有数据,按任意键返回...\n\n");

getch();

}

else

{

printf("\n\n┏━━━━━━━━━━━━清单━━━━━━━━━━━━┓\n");

printf("┣━━━━━━━━━━━━━━━━━━━共%-6ld条记录┫\n",id);

for(i=0;iid;i++)

{

if(i%5==0 i!=0)

{

printf("┃下一页...");

getch();

}

printf("\x0d┃姓名:%-10s性别:%-6s学号:%-12s平均分:%d┃\n┃成绩:[C:%d] [Java:%d] [Vb:%d] [Sql:%d] [Asp:%d] ┃\n",users[i].name,users[i].sex,users[i].no,average(i),users[i].grade.c,users[i].grade.java,users[i].grade.vb,users[i].grade.sql,users[i].grade.asp);

printf("┠——————————————————————————┨\n");

}

printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n\n");

}

}

void selectno() /*按学号查询数据函数,*/

{

char seno[10];

int i,ii=0;

printf("输入学号:");

scanf("%s",seno);

for(i=0;iid;i++)

{

if(strcmp(users[i].no,seno)==0)

{

printf("\n\n*****************************清单******************************\n");

printf("||%-59s||\n",users[i].name);

printf("||===========================================================||\n");

printf("||性别:[%3s], 学号:[%10s ], 平均份:[%3d ], ||\n",users[i].sex,users[i].no,average(i));

printf("||--------------------------成绩---------------------------||\n");

printf("||C:[%3d ], Java:[%3d ], Vb:[%3d ], Sql:[%3d ], Asp:[%3d ], ||\n",users[i].grade.c,users[i].grade.java,users[i].grade.vb,users[i].grade.sql,users[i].grade.asp);

printf("||===========================================================||\n");

ii=1;

printf("***************************************************************\n\n\n");

}

}

if(ii!=1)

printf("没有此学生!\n");

}

int average(int i) //平均分

{

int a;

a=(users[i].grade.c + users[i].grade.java + users[i].grade.vb + users[i].grade.sql + users[i].grade.asp)/5;

return(a);

}

int verify(int a) //验证学号是否重复

{

int i,b;

for(i=0;iid;i++)

{

if(i==a)

continue;

if(strcmp(users[a].no,users[i].no)==0)

{

printf("\n已有学号为%s的学生!\n重新输入:",users[a].no);

b=0;

break;

}

else b=1;

//printf("[%s] [[%s]]\n",users[a].no,users[i].no);

}

return(b);

}

int verifyg(int a) //验证成绩是否超出范围

{

while(a0||a100)

{

printf("\n错误.范围:0~100 重新输入:");

scanf("%d",a);

}

return (a);

}

int load()

{

int num=0,i;

char temp;

FILE *fp;

if((fp=fopen("olize.dat","rb"))!=NULL)

{

fscanf(fp,"%d",num);

//printf("[[ %d ]]\n",num);

for(i=0;inum;i++)

{

fscanf(fp,"%s%s%s%d%d%d%d%d",users[i].name,users[i].sex,users[i].no,users[i].grade.c,users[i].grade.java,users[i].grade.vb,users[i].grade.sql,users[i].grade.asp);

//printf("[[%s,%s,%s,%d,%d,%d,%d,%d]]\n\n",users[i].name,users[i].sex,users[i].no,users[i].grade.c,users[i].grade.java,users[i].grade.vb,users[i].grade.sql,users[i].grade.asp);

}

fclose(fp);

}

return (num);

}

void save()

{

int num,i,j;

struct user temp;

FILE *fp;

if((fp=fopen("olize.dat","wb"))==NULL)

{

printf("保存数据失败,数据文件无法打开...\n\n\n按任意键退出...");

getch();

exit(0);

}

for(i=0;iid;i++)

for(j=i+1;jid;j++)

if(average(i)average(j))

{temp=users[i];users[i]=users[j];users[j]=temp;}

fprintf(fp,"%d\r\n",id);

for(i=0;iid;i++)

fprintf(fp,"%-15s%-4s%-20s%-4d%-4d%-4d%-4d%-4d\r\n",users[i].name,users[i].sex,users[i].no,users[i].grade.c,users[i].grade.java,users[i].grade.vb,users[i].grade.sql,users[i].grade.asp);

fclose(fp);

}

这份代码是学生成绩信息,你修改一下就好啦,本质上一样的

C语言课程设计之公司员工信息管理系统怎么做?

1、员工信息管理系统是事业单位科学、全面、高效进行人事管理的系统,参考大量中国人力资源管理理论,根植于国内管理的实际情况,实用而科学。内容包括机构的建立和维护,人员信息的录入和输出,工资的调整和发放以及各类报表的绘制和输出等功能。在操作上集输入、维护、查询、统计、打印、输出等处理为一体,简便灵活,自动化功能强大。

2、例程:

#include stdio.h

#include windows.h

#include time.h

#include string.h

#define N 100

struct employee

{

    int num;

 char name[10];

 char sex;  

 int age;

 char xueli[30];

    int wage;

   char addr[30];

   long int tel;

}em[100];        /*定义一个结构体*/

void menu();

void input();

void save(int);

void display();

void del();

void add();

void search();

void search_num();

void search_xueli();

void search_tel();

void modify();  /*定义各函数*/

void menu()   /*菜单函数*/

{

 printf("              ☆☆☆计算机科学与技术学系☆☆☆\n");

    printf("\n");

    printf("                                   ∮08802班 关丽霞∮\n");

    printf("\n");

 printf("        ******************职工信息管理****************\n");

 printf("           1.录入职工信息");

 printf("           2.浏览职工信息\n");

 printf("           3.查询职工信息");

 printf("           4.删除职工信息\n");

    printf("           5.添加职工信息");

 printf("           6.修改职工信息\n");

 printf("           7.退出\n");

 printf("        ********************谢谢使用******************\n");

    printf("\n");

    printf("\n");

    

}

void main()

{   

 menu();  /*调用菜单函数*/

 int n,flag;

 char a;

 do

 {

    printf("请选择你需要操作的步骤(1--7):\n");

    scanf("%d",n);

    if(n=1n=7)

    {

    flag=1;

    break;

    }

    else

    {

   flag=0;

   printf("您输入有误,请重新选择!");

    }

 }

    while(flag==0);

    while(flag==1)

  {

  switch(n)

  {

          case 1:printf("               ◆◆◆输入职工信息◆◆◆\n");printf("\n");input();break;

       case 2:printf("              ◆◆◆浏览职工信息◆◆◆\n");printf("\n");display();break;

       case 3:printf("              ◆◆◆按职工号查询职工信息◆◆◆\n");printf("\n");search();break; 

       case 4:printf("              ◆◆◆删除职工信息◆◆◆\n");printf("\n");del();break;

    case 5:printf("              ◆◆◆添加职工信息◆◆◆\n");printf("\n");add();break;

       case 6:printf("               ◆◆◆修改职工信息◆◆◆\n");printf("\n");modify();break;

       case 7:exit(0);break;

    default :break;

  }

  getchar();

  printf("\n");

     printf("是否继续进行(y or n):\n");

     scanf("%c",a);

  if(a=='y')

  {

     flag=1;

           system("cls");  /*清屏*/

           menu(); /*调用菜单函数*/

     printf("请再次选择你需要操作的步骤(1--6):\n");

        scanf("%d",n);

     printf("\n");

  }

  

  else 

  exit(0);

 }

 

}

void input()   /*录入函数*/

{

   int i,m;

      printf("请输入需要创建信息的职工人数(1--100):\n");

   scanf("%d",m);

   for (i=0;im;i++)

   {

  printf("职工号: ");

  srand((int)time(0));

  em[i].num=rand()%10000+20000000;

  if(em[i].num!=em[i-1].num)

       printf("%8d ",em[i].num);

  printf("\n");

     printf("请输入姓名:  ");

  scanf("%s",em[i].name);

  getchar();

  printf("请输入性别(f--女  m--男):  ");

  scanf("%c",em[i].sex);

  printf("请输入年龄:  ");

  scanf("%d",em[i].age);

  printf("请输入学历:  ");

  scanf("%s",em[i].xueli);

  printf("请输入工资:  ");

  scanf("%d",em[i].wage);

  printf("请输入住址:  ");

  scanf("%s",em[i].addr);

        printf("请输入电话:  ");

     scanf("%d",em[i].tel);

     printf("\n");

    

   }

   printf("\n创建完毕!\n");

      save(m);

}

void save(int m)  /*保存文件函数*/

{

 int i;

 FILE*fp;

 if ((fp=fopen("employee_list","wb"))==NULL)  /*创建文件并判断是否能打开*/

 {

  printf ("cannot open file\n");

     exit(0);

 }

 for (i=0;im;i++) /*将内存中职工的信息输出到磁盘文件中去*/

   if (fwrite(em[i],sizeof(struct employee),1,fp)!=1)

   printf("file write error\n");

   fclose(fp);

}

int load()  /*导入函数*/

{

     FILE*fp;

 int i=0;

   if((fp=fopen("employee_list","rb"))==NULL)

 {

  printf ("cannot open file\n");

     exit(0);

 }

 else 

 {

  do 

  {

        fread(em[i],sizeof(struct employee),1,fp);

     i++;

  }

  while(feof(fp)==0);

 }

 fclose(fp);

 return(i-1);

}

void display()  /*浏览函数*/

{

 int i;

 int m=load();

 printf("\n  职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话   \n");

 for(i=0;im;i++) /*m为输入部分的职工人数*/

     printf("\n  %d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);  

}

void del()   /*删除函数*/

{

  

    int m=load();

 int i,j,n,t,flag;

 char name[20];

 printf("\n 原来的职工信息:\n");

    display();   /* 调用浏览函数*/

    printf("\n");

 printf("请输入要删除的职工的姓名:\n");

 scanf("%s",name);

 for(flag=1,i=0;flagim;i++)

 {

  if(strcmp(em[i].name,name)==0)

  {

   printf("\n已找到此人,原始记录为:\n");

            printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话   \n");

   printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);  

            printf("\n确实要删除此人信息请按1,不删除请按0\n");

   scanf("%d",n);

            if(n==1)   /*如果删除,则其他的信息都往上移一行*/

   {

     for(j=i;jm-1;j++)

     {

    strcpy(em[j].name,em[j+1].name);

                em[j].num=em[j+1].num;

                em[j].sex=em[j+1].sex;

                em[j].age=em[j+1].age;

                strcpy(em[j].xueli,em[j+1].xueli);

    em[j].wage=em[j+1].wage;  

                strcpy(em[j].addr,em[j+1].addr);

                em[j].tel=em[j+1].tel;

     }

    flag=0;

   }

  }

 }

 if(!flag)

    m=m-1;

 else

    printf("\n对不起,查无此人!\n");

    printf("\n 浏览删除后的所有职工信息:\n");

    save(m);     /*调用保存函数*/

    display();  /*调用浏览函数*/

 printf("\n继续删除请按1,不再删除请按0\n");

 scanf("%d",t);

 switch(t)

 {

    case 1:del();break;

    case 0:break;

    default :break;

 }

}

void add()/*添加函数*/

{

 FILE*fp;

 int n;

    int count=0;

    int i;

    int m=load();

    printf("\n 原来的职工信息:\n");

    display();   /* 调用浏览函数*/

    printf("\n");

    fp=fopen("emploee_list","a");

    printf("请输入想增加的职工数:\n");

 scanf("%d",n);

    for (i=m;i(m+n);i++)

  {

  printf("\n 请输入新增加职工的信息:\n");

  printf("请输入职工号:  ");

  srand((int)time(0));

  em[i].num=rand()%10000+20000000;

  if(em[i].num!=em[i-1].num)

       printf("%8d ",em[i].num);

  printf("\n");

        printf("请输入姓名:  ");

     scanf("%s",em[i].name);

        getchar();

        printf("请输入性别(f--女  m--男):  ");

     scanf("%c",em[i].sex);

        printf("请输入年龄:  ");

     scanf("%d",em[i].age);

     printf("请输入学历:  ");

     scanf("%s",em[i].xueli);

     printf("请输入工资:  ");

     scanf("%d",em[i].wage);

      printf("请输入住址:  ");

     scanf("%s",em[i].addr);

        printf("请输入电话:  ");

     scanf("%d",em[i].tel);

        printf("\n");

     count=count+1;

  printf("已增加的人数:\n");

     printf("%d\n",count);

 }

    printf("\n添加完毕!\n"); 

    m=m+count;

 printf("\n浏览增加后的所有职工信息:\n");

 printf("\n");

 save(m);

    display();

   fclose(fp);

}

void search()/*查询函数*/

{

    int t,flag;

 do

 {

    printf("\n按职工号查询请按1 ; 按学历查询请按2 ; 按电话号码查询请按3,进入主函数按4\n");

    scanf("%d",t);

    if(t=1t=4)

    {

    flag=1;

    break;

    }

    else

    {

   flag=0;

   printf("您输入有误,请重新选择!");

    }

 }

    while(flag==0);

    while(flag==1)

 {

    switch(t)

    { 

     case 1:printf("按职工号查询\n");search_num();break;

     case 2:printf("按学历查询\n");search_xueli();break;

     case 3:printf("按电话号码查询\n");search_tel();break;

  case 4:main();break;

     default:break;

    }

    

 }

}

void search_num()

{

  int num;

  int i,t;

  int m=load();

  printf("请输入要查找的职工号(20001111---20009999):\n");

  scanf("%d",num);

  for(i=0;im;i++)

    if(num==em[i].num)

 {  

    printf("\n已找到此人,其记录为:\n");

       printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话   \n");

    printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);  

    break;

 }

   if(i==m)  

    printf("\n对不起,查无此人\n");

   printf("\n");

   printf("返回查询函数请按1,继续查询职工号请按2\n");

   scanf("%d",t);

   switch(t)

   { 

   case 1:search();break;

      case 2: break;

   default:break;

   }

}

void search_xueli()

{

  char xueli[30];

  int i,t;

  int m=load();

  printf("请输入要查找的学历:\n");

  scanf("%s",xueli);

  for(i=0;im;i++)

   if(strcmp(em[i].xueli,xueli)==0)

 {

    printf("\n已找到,其记录为:\n");

    printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话   \n");

    printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);  

    

 }

  if(i==m) 

    printf("\n对不起,查无此人\n");

   printf("\n");

   printf("返回查询函数请按1,继续查询学历请按2\n");

   scanf("%d",t);

  switch(t)

  { 

   case 1:search();break;

      case 2:break;

   default :break;

  }

 

}

void search_tel()

{

   long int tel;

  int i, t;

  int m=load();

  printf("请输入要查找的电话号码:\n");

  scanf("%ld",tel);

  for(i=0;im;i++)

    if(tel==em[i].tel)

 {  

    printf("\n已找到此人,其记录为:\n");

       printf("\n职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话   \n");

    printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n",em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);  

    break;

 }

    if(i==m)  

    printf("\n对不起,查无此人\n");

   printf("\n");

   printf("返回查询函数请按1,继续查询电话号码请按2\n");

   scanf("%d",t);

  switch(t)

  { 

   case 1:search();break;

      case 2:break;

   default :break;

  }

  

}

求一个企业人事管理系统 带源代码的 实现功能 如下:

智信人事管理软件企业员工管理系统c源码,轻松搞定LZ企业员工管理系统c源码你所说的那些问题企业员工管理系统c源码,强大的自定义功能企业员工管理系统c源码,高级查询功能,自定义报表设计功能等,在市面的其它软件是无法做到,LZ可以自己去下个试用版的先回去免费试用看看。

职工管理系统C++源代码

//希望对你有帮助.这个不是我自己写的,是搜集的别人的,写的不错,可以运行。

/**************************************************

内容及要求:

1注册新职工,添加新职工的详细信息,

如:职工号,姓名,出生年份,性别,职称,部门,工资等;

2按姓名,部门等条件进行查询;

3修改和删除职工信息;

4按工资高低进行排序;

5把各项纪录存储在文本文件中。

评说:有删除和增加的操作,最好选取链表来做。

**************************************************/

#include string

#include iostream

#include fstream

#include iomanip

#include memory.h

#include stdio.h

#include conio.h

#include stdlib.h

using namespace std;

struct Employee

{//声明职工的结构作为链表节点。

//-----数据域-----

string m_Code;

string m_Name;

unsigned short int m_Year;

string m_Sex;

string m_Post;

string m_Department;

unsigned int m_Wage;

//链表节点的指针域---

struct Employee* Next;

};

//-----个人习惯:取别名-------

typedef struct Employee Node;

typedef Node* Link;

//-------函数声明-------------

Link Create(Link Head);

void Release(Link Head);

Link Add(Link Head);

bool Search(Link Head);

Link Search_Unique(Link Head);

void Display_List(Link Head);

void Display_Node(Link pNode);

Link Modify(Link Head);

Link Del(Link Head);

void Save_ByFile(Link Head,fstream ofile);

Link Sort(Link Head);

//-------函数实现--------------------------

Link Create(Link Head)

{//创建一个带头节点的空链表。

Head=(Link)new Node;

if(!Head)

{

cout"分配内存失败!"endl;

return NULL;

}

Head-m_Code="";

Head-m_Name="";

Head-m_Year=0;

Head-m_Sex="";

Head-m_Post="";

Head-m_Department="";

Head-m_Wage=0;

Head-Next=NULL;

return Head;

}

void Release(Link Head)

{//释放链表。

Link ptr;//声明一个操作用的指针。

while(Head!=NULL)

{

ptr=Head;

Head=Head-Next;

delete ptr;//释放节点资源。

}

}

Link Add(Link Head)

{//前插法添加数据。

Link pNew;// 声明一个新节点。

char again;

string code,name,sex,post,department;

unsigned short int year;

unsigned int wage;

do

{

pNew=(Link)new Node;

//数据域。

cout"请输入职工代码:";

cincode;

coutendl"请输入职工姓名:";

cinname;

coutendl"请输入职工出生年份:";

cinyear;

while(cin.fail())

{

cout"请输入正确的年份格式。"endl;

cin.clear();

fflush(stdin);

cinyear;

}

coutendl"请输入职工性别:";

cinsex;

coutendl"请输入职工职称:";

cinpost;

coutendl"请输入职工部门:";

cindepartment;

coutendl"请输入职工工资:";

cinwage;

while(cin.fail())

{

cout"请输入正确的工资数据。"endl;

cin.clear();

fflush(stdin);

cinwage;

}

coutendl;

pNew-m_Code=code;

pNew-m_Name=name;

pNew-m_Year=year;

pNew-m_Sex=sex;

pNew-m_Post=post;

pNew-m_Department=department;

pNew-m_Wage=wage;

//指针域。

pNew-Next=Head-Next;

Head-Next=pNew;

cout"数据添加成功!是否继续添加?(Y/N)"endl;

cinagain;

}while(again=='Y'||again=='y');

return Head;

}

bool Search(Link Head)

{//查询同时满足“姓名”和“部门”的职工信息。

Link ptr;

string department;

string name;

ptr=Head-Next;

cout"请输入部门:";

cindepartment;

coutendl"请输入姓名:";

cinname;

coutendl"----------------查询结果------------------"endl;

while(ptr)

{

if((ptr-m_Name==name)(ptr-m_Department==department))

{

Display_Node(ptr);//打印满足条件的节点。

return true;

}

ptr=ptr-Next;//查询下一节点。

}

cout"无此职工的信息。"endl;

return false;

}

Link Search_Unique_Front(Link Head)

{//查询满足“职工代码“的职工信息(职工代码必需唯一)。

Link ptr;

string code;

ptr=Head;

cout"请输入职工代码:";

cincode;

coutendl"----------------查询结果------------------"endl;

while(ptr-Next)

{

if(ptr-Next-m_Code==code)

//Display_Node(ptr);//打印满足条件的节点。

return ptr;//注意,是返回的查询到的节点的直接前趋节点。

ptr-Next=ptr-Next-Next;//查询下一节点。

}

return ptr;

}

void Display_List(Link Head)

{

Link ptr;

ptr=Head-Next;

cout"==================所有职工信息=================="endl;

while(ptr)

{

Display_Node(ptr);

ptr=ptr-Next;

}

}

void Display_Node(Link pNode)

{//在标准输出设备上输出。

coutsetw(10)leftpNode-m_Code

setw(10)leftpNode-m_Name

setw(10)leftpNode-m_Year

setw(10)leftpNode-m_Sex

setw(10)leftpNode-m_Post

setw(10)leftpNode-m_Department

setw(10)leftpNode-m_Wageendl;//setw(10)表示占10个字符位置。

}

Link Modify(Link Head)

{// 修改单一个节点。

Link ptr;

ptr=Search_Unique_Front(Head);

string code,name,sex,post,department;

unsigned short int year;

unsigned int wage;

if(ptr-Next)

{

cout"-------你现在可以修改此职工的信息了-------"endl;

//数据域。

cout"请输入职工代码:";

cincode;

coutendl"请输入职工姓名:";

cinname;

coutendl"请输入职工出生年份:";

cinyear;

while(cin.fail())

{

cout"请输入正确的年份格式。"endl;

cin.clear();

fflush(stdin);

cinyear;

}

coutendl"请输入职工性别:";

cinsex;

coutendl"请输入职工职称:";

cinpost;

coutendl"请输入职工部门:";

cindepartment;

coutendl"请输入职工工资:";

cinwage;

while(cin.fail())

{

cout"请输入正确的工资数据。"endl;

cin.clear();

fflush(stdin);

cinwage;

}

coutendl;

ptr-Next-m_Code=code;//因ptr是前趋节点,所以要用ptr-Next;

ptr-Next-m_Name=name;

ptr-Next-m_Year=year;

ptr-Next-m_Sex=sex;

ptr-Next-m_Post=post;

ptr-Next-m_Department=department;

ptr-Next-m_Wage=wage;

}

cout"没找到此职工的记录,无法修改。"endl;

return Head;

}

Link Del(Link Head)

{

Link ptr;

Link ptr_front;

ptr_front=Search_Unique_Front(Head);

ptr=ptr_front-Next;

if(ptr)

{

ptr_front-Next=ptr-Next;

delete ptr;//删除此节点。

}

cout"没找到此职工的记录,无法删除。"endl;

return Head;

}

void Save_ByFile(Link Head,fstream ofile)

{

Link pNode;

pNode=Head-Next;

ofile.clear();//清除文件结束状态。

while(pNode)

{

ofilesetw(10)leftpNode-m_Code

setw(10)leftpNode-m_Name

setw(10)leftpNode-m_Year

setw(10)leftpNode-m_Sex

setw(10)leftpNode-m_Post

setw(10)leftpNode-m_Department

setw(10)leftpNode-m_Wageendl;//setw(10)表示占10个字符位置。

pNode=pNode-Next;

}

cout"数据文件保存成功!"endl;

}

Link Sort(Link Head)

{//我创建的是带头节点的链表。用直接插入法。

if((Head-Next==NULL)||(Head-Next-Next==NULL))//此步条件判断非常有价值。

{

cout"数据节点数少于2个,不用排序!"endl;

return Head;

}

//-----------第二步;

Link ptr;

Link ptr_F;

Link ptr_N;

ptr=Head-Next-Next;

ptr_F=Head;

Head-Next-Next=NULL;//到此,分成了两个链表。

//第三步。

while(ptr)

{

ptr_N=ptr-Next;

ptr_F=Head;//ptr_F的归位。

while(ptr_F-Next)

{

if(ptr-m_Wageptr_F-Next-m_Wage)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;

break;

}//if

else

{

ptr_F=ptr_F-Next;

}

}//while(ptr_F-Next)

if(ptr_F-Next==NULL)

{

ptr-Next=ptr_F-Next;

ptr_F-Next=ptr;//表示插到有序链表的最后面了。

}

ptr=ptr_N;//归位,准备下一次排序。

}//while(ptr)

cout"从高到低,排序成功!"endl;

return Head;

}

int main()

{

Link Head=0;

Head=Create(Head);

fstream iofile;

iofile.open("d:\\iofile.txt",ios_base::in|ios_base::out|ios_base::app);//文件以三种方式打开。

if(!iofile)

{

cout"打开文件失败!"endl;

return -1;

}

int menu;

while(1)

{

cout"*****************************************************"endl;

cout"*====================菜单选顶=======================*"endl;

cout"*===================================================*"endl;

cout"* 1.注册职工 2.修改信息 3.删除信息 4.信息查询 *"endl;

cout"* 5.保存文件 6.工资排行 7.信息显示 0.退出系统 *"endl;

cout"*****************************************************"endl;

coutendl"请选择相应操作菜单项:";

cinmenu;

while(cin.fail())

{

cout"请选择正确的菜单选项。"endl;

cin.clear();

fflush(stdin);

cinmenu;

}

switch(menu)

{

case 0:

cout"成功退出系统!"endl;

return 0;

case 1:

Head=Add(Head);

break;

case 2:

Head=Modify(Head);

break;

case 3:

Head=Del(Head);

break;

case 4:

Search(Head);

break;

case 5:

Save_ByFile(Head,iofile);

break;

case 6:

Sort(Head);

break;

case 7:

Display_List(Head);

break;

default:

cout"请选择正确的菜单项进行操作。多谢合作!"endl;

}

}

Release(Head);

iofile.close();

return 0;

}

发表评论

评论列表

  • 只酷谨兮(2022-06-12 02:15:39)回复取消回复

         }    flag=0;   }  } } if(!flag)    m=m-1; else    printf("\n对不起,查无此人!\n");    printf("\n 浏览删除后的

  • 忿咬任谁(2022-06-11 23:07:15)回复取消回复

    0}, {"商学院","于  铭","女","1979-10-21","助  教",500,471,208.9,91}, {"工学院","许炎锋","女","1954-03-08","教  授",1250,630,306.2,96}, {"理学院","王  嘉","

  • 柔侣澄萌(2022-06-11 16:18:55)回复取消回复

    ,n);    if(n=1n=7)    {    flag=1;    break;    }    else    {   flag=0;   printf("您输入有误,请重新选择!");    } }    while(flag=