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

课程设计目的和要求

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

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

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

系统主要功能包括:

(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");
			}
	   }
	
}
//=========================================================&
  • 9
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
添加用户流程图 用户输入有效用户名和密码后,单击确定,就可完成用户的添加,当用户名存在是,系统自动提示用"对不起,用户名已经存在,请重新输入用户名!"。 按钮核心代码为: } if (m_userpsw == "") { MessageBox("请输入密码"); //如果密码为空,则提示用户输入密码 return; } if (m_userpsw != m_userpsw2) { MessageBox("两次输入的密码不一样,请重新输入!"); //如果两次输入的密码不一致,则提示用户重新输入 return; } CString str,strSQL; strSQL="insert into userinf(username,userpassword) \ values(''" + m_username + "'',''" + m_userpsw + "'')"; db.ExecuteSQL(strSQL); // 执行SQL语句,将用户名和密码添加到userinf表中 6.1.2 用户修改窗体的建立 单击“用户管理/用户修改”菜单时,可弹出用户修改窗体,如图13所示: 图13 用户修改图 用户输入有效用户名和密码后,单击确定,就可完成用户的更新。 按钮核心代码为: …… ; db.ExecuteSQL(strSQL); // 执行SQL语句,修改userinf表中的该用户信息 6.1.3 用户删除窗体的建立 单击“用户管理/用户删除”菜单时,可弹出用户删除窗体,如图14所示: 图14 用户删除图 删除用户流程图如图15所示: 用户输入有效用户名和密码后,单击确定,就可完成用户的删除。如果用户名不存在,系统会弹出"对不起,用户信息输入有误,请重新输入用户名!"提示框。 图15 删除用户流程图 按钮核心代码为: sql.Format("select * from userinf where username=''%s''and userpassword=''%s'' ",m_username,m_userpsw); 图16 员工查询图 系统员工查询系统流程如图17所示: 图17 员工查询流程图 当输入有效的员工号,单击确定按钮,在列表中就显示出该员工各种信息,当输入的员工号不存在时,系统会提示“没有符合的信息记录!”。 按钮核心的代码为: …… Workerinf.m_strFilter = "workerid = ''"+m_workerid+"''"; //过滤字符串即查询条件 Workerinf.Open(); //获得有效的记录集 m_Listctr.DeleteAllItems(); } [10] ... >> 工资管理系统设计(论文+流程图+源代码+下载) 6.1.4 员工统计窗体的建立 单击“员工管理/员工统计”菜单,可弹出员工统计窗体,如图18所示: 图18 员工统计图 系统员工统计系统流程如图19所示: 图19 员工统计流程图 当输入有效的部门名,单击确定按钮,在列表中就显示出该该部门所有员工的各种信息。 按钮核心的代码为: …… Workerinf.m_strFilter = "departname = ''"+m_departname+"''"; //过滤字符串即查询条件 Workerinf.Open(); //获得有效的记录集 m_Listctr.DeleteAllItems(); Workerinf.Requery(); //开始查询 …… 6.1.5 员工更新窗体的建立 单击“员工管理/员工更新”菜单,可弹出员工更新窗体,如图20所示: 当输入有效的员工号,单击确定按钮,在列表中就显示该员工的各种信息。用户各种新的信息输入完成,单击修改按钮,完成员工信息的输入。 图20 员工更新图 员工信息更新系统流程如图21所示: 图21 员工更新流程图 按钮核心的代码为: …… MessageBox("对不起,该员工号不存在,请重新输入员工号!"); //弹出提示对话框 …… CString strSQL; strSQL="update workerinf set\ workerid=''" + m_id …… + "'' where workerid=''"

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值