员工工资管理系统

news/2024/11/6 11:37:13/

 在接受字符时,依旧使用的是scanf,但又因为scanf可以接收  回车  和  空格  ,所以用getchar来接收上述字符

//-------------------------------------------员工工资管理系统---------------------------------------------
#include<stdio.h>
#include<string.h>
//定义结构体数据类型
int loop=1;//控制是否退出菜单
char key;
int customernum=10;//统计客户的数量
struct Customer {int id;int year;char gh[20];int month;char name[20];char bm[20];int gz;int jx;int bt;int bx;int qt;
};
//客户结构体数组
struct Customer customers[50]={{01,2021,"DF001",10,"包宏伟","管理",40600,500,0,0,230},
{02,2021,"DF002",10,"陈万地","管理",3500,1200,0,0,352},
{03,2021,"DF003",10,"张惠","行政",12450,500,0,0,0},
{04,2021,"DF004",10,"闫朝霞","人事",6050,0,0,0,130},
{05,2021,"DF005",10,"吉祥","研发",6150,0,0,0,0},
{01,2021,"DF001",11,"包宏伟","管理",40600,500,2600,120,0},
{02,2021,"DF002",11,"陈万地","管理",3500,1200,2000,160,0},
{03,2021,"DF003",11,"张惠","行政",12450,500,2600,200,0},
{04,2021,"DF004",11,"闫朝霞","人事",6050,0,2000,200,130},
{05,2021,"DF005",11,"吉祥","研发",6150,0,2600,200,0}};//显示一个customer变量的信息p->
void Customer(struct Customer *customer){printf("\n%d\t%d\t%s\t\t%s\t\t%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%.2f\t\t%d\t\t%d\t\t%.2f",(*customer).year,(*customer).month,(*customer).gh,(*customer).name,(*customer).bm,(*customer).gz,(*customer).jx,(*customer).bt,(*customer).gz+(*customer).jx+(*customer).bt,(*customer).gz*0.05,(*customer).bx,(*customer).qt,(*customer).gz+(*customer).jx+(*customer).bt-(*customer).gz*0.05-(*customer).bx-(*customer).qt);
}//显示客户信息
void list(){int i;printf("\n         员工工资信息列表        ");printf("\n年份\t月份\t员工工号\t姓名\t\t部门\t\t岗位工资\t绩效工资\t取暖补贴\t应发合计\t公积金\t\t保险\t\t其他扣除\t实发工资");for(i=0;i<customernum;i++){Customer(&customers[i]);}getchar();
}//添加客户信息
void add(){printf("\n\t\t\t添加员工工资信息");printf("\n年份:");scanf("%d",&(customers[customernum].year));getchar();printf("\n月份:");scanf("%d",&(customers[customernum].month));getchar();printf("\n员工工号:");scanf("%s",customers[customernum].gh);getchar();printf("\n姓名:");scanf("%s",customers[customernum].name);getchar();printf("\n部门:");scanf("%s",customers[customernum].bm);getchar();printf("\n岗位工资:");scanf("%d",&(customers[customernum].gz));getchar();printf("\n绩效工资:");scanf("%d",&(customers[customernum].jx));getchar();printf("\n取暖补贴:");scanf("%d",&(customers[customernum].bt));getchar();printf("\n保险:");scanf("%d",&(customers[customernum].bx));getchar();printf("\n其他扣除:");scanf("%d",&(customers[customernum].qt));getchar();printf("\n添加已经完成");customernum++;}//删除信息
void Find(){ char i[20];int n,j;int a;int target = 1;a=customernum;printf("请输入你要删除的工号:");scanf("%s",i);getchar();for(n=0;n<customernum;n++){if(0 == strcmp(customers[n].gh,i)){target =0;for(j=n;j<customernum;j++) customers[j]=customers[j+1];}}if(target == 1){printf("没有此人信息");}else{customernum=customernum-2;}
}//修改客户信息
void revise(){char i[20];int n;int l=1;int a;char b;printf("请输入你要修改信息的工号:");scanf("%s",i);getchar();for(n=0;n<50;n++)if(0 == strcmp(customers[n].gh,i)){	a=n;printf("\n以下是将要被修改的信息:\n");printf("1.年份:%d\n",customers[n].year);printf("2.月份:%d\n",customers[n].month);printf("3.员工工号:%s\n",customers[n].gh);printf("4.姓名:%s\n",customers[n].name);printf("5.部门:%s\n",customers[n].bm);printf("6.岗位工资:%d\n",customers[n].gz);printf("7.绩效工资:%d\n",customers[n].jx);printf("8.取暖补贴:%d\n",customers[n].bt);printf("9.保险:%d\n",customers[n].bx);printf("0.其他扣除:%d\n",customers[n].qt);/*getchar();*/do{printf("请你输入修改数字:");scanf("%c",&b);switch(b){case'1':printf("\n年份:");scanf("%d",&(customers[a].year));getchar();break;case'2':printf("\n月份:");scanf("%d",&(customers[a].month));getchar();break;case'3':printf("\n员工工号:");scanf("%s",customers[a].gh);getchar();break;case'4':printf("\n姓名:");scanf("%s",customers[a].name);getchar();break;case'5':printf("\n部门:");scanf("%s",customers[a].bm);getchar();break;case'6':printf("\n岗位工资:");scanf("%d",&(customers[a].gz));getchar();break;case'7':printf("\n绩效工资:");scanf("%d",&(customers[a].jx));getchar();break;case'8':printf("\n取暖补贴:");scanf("%d",&(customers[a].bt));getchar();break;case'9':printf("\n保险:");scanf("%d",&(customers[a].bx));getchar();break;case'0':printf("\n其他扣除:");scanf("%d",&(customers[a].qt));getchar();break;}l=0;}while(l);}getchar();
}
//查找员工信息
void seek(){char ly_i[20];//姓名char ly_j[20];//工号int ly_n;int ly_b;int ly_a=0;int ly_c=1;printf("\n---------------请你选择查找方式---------------\n");printf("               1.员工工号\n");printf("               2.姓    名\n");scanf("%d",&ly_a);printf("请你输入:");if(ly_a==1){while(ly_c){printf("请输入你要查找的工号:");scanf("%s",ly_j);getchar();printf("\n年份\t月份\t员工工号\t姓名\t\t部门\t\t岗位工资\t绩效工资\t取暖补贴\t应发合计\t公积金\t\t保险\t\t其他扣除\t实发工资");for(ly_b=0;ly_b<customernum;ly_b++)if(0 == strcmp(customers[ly_b].gh,ly_j))//比较{Customer(&customers[ly_b]);//调用函数ly_c=0;}if(ly_c==1)printf("你输入的信息有误,请重新输入:\n");}}else//姓名{while(ly_c){printf("请输入你要查找的名字:");scanf("%s",ly_i);getchar();for(ly_n=0;ly_n<customernum;ly_n++)if(0 == strcmp(customers[ly_n].name,ly_i)){Customer(&customers[ly_n]);ly_c=0;}if(ly_c==1)printf("你输入的信息有误,请重新输入:\n");}}
}//对信息进行排序
void paixu()
{int n;int i;int j;int index;struct Customer ms;printf("\t\t\t请选择排序方式\n");printf("\t\t\t1.岗位工资\n");printf("\t\t\t2.绩效工资\n");printf("请你输入:");scanf("%d",&n);if(n==1){printf("\n年份\t月份\t员工工号\t姓名\t\t部门\t\t岗位工资\t绩效工资\t取暖补贴\t应发合计\t公积金\t\t保险\t\t其他扣除\t实发工资");for(i=0;i<customernum-1;i++){for(j=0;j<customernum-i-1;j++)if(customers[j].gz<=customers[j+1].gz){ms=customers[j];customers[j]=customers[j+1];customers[j+1]=ms;}}for(i=0;i<customernum;i++)Customer(&customers[i]);}else{if(n==2){printf("\n年份\t月份\t员工工号\t姓名\t\t部门\t\t岗位工资\t绩效工资\t取暖补贴\t应发合计\t公积金\t\t保险\t\t其他扣除\t实发工资");for(i=0;i<customernum-1;i++)for(j=0;j<customernum-i-1;j++)if(customers[j].jx<=customers[j+1].jx){ms=customers[j];customers[j]=customers[j+1];customers[j+1]=ms;}for(i=0;i<customernum;i++)Customer(&customers[i]);}elseprintf("输入有误,按任意键返回菜单");}  getchar();getchar();
}
//显示主菜单
void mainMenu()
{do{printf("\n\n\n              员工端");printf("\n                 1.添加员工信息");printf("\n                 2.显示员工列表");printf("\n                 3.查找员工信息");printf("\n                 4.退        出");printf("\n请选择1--4:");scanf("%c",&key);switch(key){case'1':add();break;case'2':list();break;case'3':seek();break;case'4':loop=0; break;default:printf("你输入的信息有误,请重新输入\n\n");}}while(loop);
}void mainmenu()
{do{printf("\n\n\n                管理员端");printf("\n                 1.添加员工信息");printf("\n                 2.修改员工信息");printf("\n                 3.删除员工信息");printf("\n                 4.显示员工列表");printf("\n                 5.查找员工信息");printf("\n                 6.员工信息排序");printf("\n                 7.退        出");printf("\n请选择1--7:");scanf("%c",&key);switch(key){case'1':add();break;case'2':revise();break;case'3':Find();break;case'4':list();break;case'5':seek();break;case'6':paixu();break;case'7':loop=0; break;default:printf("你输入的信息有误,请重新输入\n\n");}}while(loop);}//主函数
void main(){//选择用户int i;printf("--------------------------------------------------------");printf("\n\t\t     欢迎来到员工工资管理系统\n");printf("--------------------------------------------------------");printf("\n\t\t     1.管理员模式\n");printf("\t\t     2.员工模式\n");printf("\t\t     3.退出系统\n");printf("请选择:");scanf("%d",&i);getchar();do{switch(i){case 1:mainmenu();break;case 2:mainMenu();break;case 3:loop=0;break;default:printf ("你输入的信息有误,请重新输入\n\n");}}while(loop);printf("你退出了系统");getchar();
}


http://www.ppmy.cn/news/389253.html

相关文章

基于Java web的员工工资管理系统(人事管理系统)

运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。IDE环境&#xff1a; Eclipse,Myeclipse,IDEA都可以tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可硬件环境&#xff1a; windows 7/8/10 2G内存以上&#xff08;推荐4G&#xff…

[含论文+源码等]S2SH人力资源管理系统|人事薪资招聘oa人力请假考勤工资

下载&#xff1a;https://download.csdn.net/download/qq_23619577/85271528 项目介绍: 《S2SH人力资源管理系统》 系统说明: 该项目采用技术jsp、strust2、Spring、hibernate、tomcat服务器、mysql数据库 开发工具eclipse&#xff0c;项目含有源码、论文、配套开发软件、软件…

人事工资管理系统

人事工资管理系统是一款界面美观,绿色的通用人事工资管理软件,软件体积小,功能强大,执行速度快,操作方便。适合于各行业,企事业单位使用。主要功能特点如下&#xff1a; 整个系统用VC开发,功能强大,体积超小,是款优秀的绿色软件。人事管理系统,界面美观&#xff0c;图形导航界…

人事管理系统实现(一)

学习C#和Microsoft SQL Server以来&#xff0c;作为一个初学者的我&#xff0c;第一次有了一个较为完整的小案例的实现&#xff0c;想通过这个案例的实现过程与各位前辈进行交流&#xff0c;如有不足恳请各位前辈指正&#xff0c;希望我们共同进步&#xff1a; 人事管理系统在网…

人力资源管理系统

人力资源管理(Human Resource Management,简称HRM) 人力资源管理系统, 通过提高内部员工的满意度、忠诚度,从而提高员工贡献度,即绩效,帮助管理者通过有效组织管理降低成本和加速增长来创造价值链利润。人力资源综合管理解决方案从人力资源管理的角度出发,用集中的数据…

企业工资管理系统

大学计算机专业毕业设计

职工管理系统

文章目录 一、管理系统概述二、功能简述三、代码实现 一、管理系统概述 职工管理系统可以用来管理公司内所有员工的信息 本节主要利用C来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板&#xff0c;显示信息时&#xff0c;需要显示职工编号、职工…

java基于ssm框架的企业人事管理系统企业工资考勤系统

简介 Java基于ssm开发的企业人事考勤工资系统&#xff0c;员工可以打卡、请假。系统根据员工的打卡情况自动计算工资&#xff08;全勤、请假、旷工、加班、迟到、早退等计算出最终实发工资&#xff09;&#xff0c;员工还可以查看自己的考勤记录工资具体组成等。升级版加了部长…