课程设计---企业职工工资管理系统

本文档介绍了课程设计中的企业职工工资管理系统,系统涵盖了职工人事基本信息和工资信息的管理,包括创建、增加、删除、修改和查询等功能。计算公式涉及职务工资、补贴等,并提供了按条件统计的功能,如按职称、姓名、实发工资等进行查询和统计分析。
摘要由CSDN通过智能技术生成

课程设计目的和要求

工资管理要和人事管理相联系,生成企业每个职工的实际发放工资。

企业职工人事基本信息包括:职工编号、姓名、性别、出生日期、职称(助工、工程师、高级工程师)和任职年限。

企业职工工资信息包括:职工编号、姓名、职务工资、职务补贴、住房补贴、应发工资、个人所得税、养老保险、住房公积金和实发工资。

系统主要功能包括:

(1)      创建职工人事基本信息文件,根据提示输入职工的各项信息,按职工编号对职工信息进行排序,并将排序后的职工信息存储到一个文件中。

(2)      创建职工的工资信息文件(每个月创建一个文件),其中职工编号和姓名从人事信息文件中复制,其他工资组成项目按下面方法计算。

             职务工资:助工=1270*(1+任职年限*2%)

                       工程师=2360*(1+任职年限*3%)

                       高级工程师=3450*(1+任职年限*5%)

             职务补贴:=职务工资*25%

             住房补贴=(职务工资+职务补贴)*15%

             应发工资=职务工资+职务补贴+住房补贴

             个人所得税=(应发工资-3000)*5%

             养老保险=(职务工资+职务补贴)*10%

             住房公积金=应发工资*5%

             实发工资=应发工资-个人所得税-养老保险-住房公积金

(3)      增加职工人事基本信息,在原有职工人事基本信息文件的基础上增加新有的职工信息。

(4)      删除职工人事基本信息,提示用户输入要删除的职工编号,如果在文件有该信息存在,则将其信息输出到屏幕上,用户确认后将该信息删除,并将删除后的结果保存至原文件。最后提示用户是否继续进行删除操作。

(5)      修改职工人事基本信息,提示用户输入要删除的职工编号,如果在文件有该信息存在,则将其信息输出到屏幕上,然后提示用户要修改的选项(职称、任职年限),并将修改后的结果保存至原文件。最后提示用户是否继续进行修改操作。

(6)      按不同条件进行查询操作,输出满足条件的职工工资信息。

①      按职工编号查询,输入一个编号,输出对应职工工资信息。

②     按姓名查询,包括精确查询,模糊查询。

③      按职称查询,输入职称名称,输出相应职称工资信息。

(7)      按不同条件对职工工资信息进行统计工作。

①      统计个职称岗位的职工人数是多少,计算高级工程师比例。

②      计算企业职工的平均实发工资,并输出。

③     统计职工工资低于平均工资人数,并输出他们的姓名和实发工资。


#include<stdafx.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<time.h>



typedef struct date
{
	short year;
    short month;
	short day;
}st3;
typedef struct gerenxinxi
{
	char num[30];
 char name[30];
 char sex[30];
 st3 chushengriqi;
 char zhicheng[20];
 int nianxian;
}st;
typedef struct gerengongzi
{
     char num[20];
     char name[12];
     double zhiwugongzi;
     double zhiwubutie;
     double zhufangbutie;
     double yingfagongzi;
     double gerensuodeshui;
     double yanglaobaoxian;
     double zhufanggongjijin;
     double shifagongzi;
}st1;
#define st3_len sizeof(st3)
#define st_len sizeof(st)
#define st1_len sizeof(st1)
#define gerenxinxinum 1000
#define gerengongzinum 1000
st gerenxinxi[gerenxinxinum]={0};
st1 gerengongzi[gerengongzinum]={0};

int loadgerenxinxi(void);//将文件中的信息读取
int originalgerenxinxi(void);//个人信息初始化
void getonegerenxinxi(int i);//输ru一个职工的个人信息
void allgerenxinxi(int bn);//保存所有信息
void xggerenxinxi(int bn);//修改个人信息
void saveonegerenxinxi(int i);//保存个人信息
int addgerenxinxi(int bn);//增加个人信息
int delgerenxinxi(int bn);  //删除个人信息
void putonegerenxinxi(int i);//输出一个个人信息
void sort(int bn);//排序
void shengchenggongzi(int bn);//生成工资
void putonegerengongzi(int i);//输出一个人的工资信息
void cxgerenxinxi(int bn);//查询
void cxzhicheng(int bn);//职称查询
void cxname(int bn);//姓名查询
void cxnum(int bn);//编号查询
void tongjigongzixinxi(int bn);//统计工资信息
float avegongzi(int bn);//平均工资
void lowgongzi(int bn);//低于平均工资
void  gangweirenshu(int bn);//职工人数





void main()
{    int select,bn;
     bn=loadgerenxinxi();
	 if(bn==0)
      printf("职工信息为零:");

	   while(1)
       {
	        printf("\n    企业职工工资管理系统     \n");
            printf("\n-----------------------------\n");
			printf("\n   请输入要进行操作前的序号  \n");
	        printf("\n      1.输入职工信息         \n");
	        printf("\n      2.修改职工信息         \n");
	        printf("\n      3.增加职工信息         \n");
	        printf("\n      4.删除职工信息         \n");
            printf("\n      5.职工工资             \n");
	        printf("\n      6.统计工资信息         \n");
            printf("\n      7.查询工资信息         \n"); 
	        printf("\n      0.退出                 \n");
            printf("\n----------------------------\n");
           
            scanf("%d",&select);
            getchar();
            switch(select)
			{ case 1: originalgerenxinxi(); break;
	          case 2: xggerenxinxi(bn); break;
	          case 3: addgerenxinxi(bn); break;
	          case 4: delgerenxinxi(bn); break;
	          case 5: shengchenggongzi(bn); break;
	          case 6: tongjigongzixinxi(bn); break;
              case 7: cxgerenxinxi(bn); break;
              case 0: return;
		      default:printf("\n按键错误,请重新选择\n");
			}
	   }
	
}
//=========================================================&
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值