本文作者:qiaoqingyi

企业员工管理系统源码(工资管理系统源码)

qiaoqingyi 2023-01-22 642

今天给各位分享企业员工管理系统源码的知识,其中也会对工资管理系统源码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

课程设计,工资管理系统完整源代码

#include stdio.h

#include string.h

#include ctype.h

#include stdlib.h

#define MONTH_NUM 5 /* 最多的月份 */

struct worker

{

int number; /* 每个工人的工号 */

char name[15]; /* 每个工人的姓名 */

int salary[MONTH_NUM]; /* 每个工人M月的工资 */

int sum; /* 每个工人的总工资 */

float average; /* 每个工人的平均工资 */

struct worker *next;

};

typedef struct worker STU;

char Menu(void);

int Ascending(int a, int b);

int Descending(int a, int b);

void IntSwap(int *pt1, int *pt2);

void CharSwap(char *pt1, char *pt2);

void FloatSwap(float *pt1, float *pt2);

STU *AppendNode(STU *head, const int m);

STU *DeleteNode(STU *head, int nodeNum);

STU *ModifyNode(STU *head, int nodeNum, const int m);

STU *SearchNode(STU *head, int nodeNum);

STU *Appendsalary(STU *head, const int m);

void Totalsalary(STU *head, const int m);

void Printsalary(STU *head, const int m);

STU *Deletesalary(STU *head, const int m);

void Modifysalary(STU *head, const int m);

void Sortsalary(STU *head, const int m, int (*compare)(int a, int b));

void Searchsalary(STU *head, const int m);

void DeleteMemory(STU *head);

main()

{

char ch;

int m;

STU *head = NULL;

printf("输入要记录的月份(m10):");

scanf("%d", m);

while (1)

{

ch = Menu();

switch (ch)

{

case'1':head = Appendsalary(head, m);

Totalsalary(head, m);

break;

case'2':Printsalary(head, m);

break;

case'3':head = Deletesalary(head, m);

printf("\nAfter deleted\n");

Printsalary(head, m);

break;

case'4':Modifysalary(head, m);

Totalsalary(head, m);

printf("\nAfter modified\n");

Printsalary(head, m);

break;

case'5':Searchsalary(head, m);

break;

case'6':Sortsalary(head, m, Descending);

printf("\nsorted in descending order by sum\n");

Printsalary(head, m);

break;

case'7':Sortsalary(head, m, Ascending);

printf("\nsorted in ascending order by sum\n");

Printsalary(head, m);

break;

case'0':exit(0);

DeleteMemory(head);

printf("End of program!");

break;

default:printf("Input error!");

break;

}

}

}

char Menu(void)

{

char ch;

printf("\n管理工人的工资\n");

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

printf(" 2.列出记录\n");

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

printf(" 4.修改记录\n");

printf(" 5.查找记录\n");

printf(" 6.降序排列\n");

printf(" 7.升序排列\n");

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

printf("请输入你的选择:");

scanf(" %c", ch); /*在%c前面加一个空格,将存于缓冲区中的回车符读入*/

return ch;

}

STU *Appendsalary(STU *head, const int m)

{

int i = 0;

char c;

do{

head = AppendNode(head, m); /*向链表末尾添加一个节点*/

printf("你想添加一个新的记录吗(Y/N)?");

scanf(" %c",c); /*%c前面有一个空格*/

i++;

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

printf("%d new nodes have been apended!\n", i);

return head;

}

STU *Deletesalary(STU *head, const int m)

{

int i = 0, nodeNum;

char c;

do{

printf("请输入你想删除的记录编号:");

scanf("%d", nodeNum);

head = DeleteNode(head, nodeNum); /*删除工号为nodeNum的工人信息*/

Printsalary(head, m); /*显示当前链表中的各节点信息*/

printf("Do you want to delete a node(Y/N)?");

scanf(" %c",c); /*%c前面有一个空格*/

i++;

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

printf("%d nodes have been deleted!\n", i);

return head;

}

void Modifysalary(STU *head, const int m)

{

int i = 0, nodeNum;

char c;

do{

printf("请输入你想修改的记录编号:");

scanf("%d", nodeNum);

head = ModifyNode(head, nodeNum, m); /*修改工号为nodeNum的节点*/

printf("Do you want to modify a node(Y/N)?");

scanf(" %c",c); /*%c前面有一个空格*/

i++;

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

printf("%d nodes have been modified!\n", i);

}

void Totalsalary(STU *head, const int m)

{

STU *p = head;

int i;

while (p != NULL) /*若不是表尾,则循环*/

{

p-sum = 0;

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

{

p-sum += p-salary[i];

}

p-average = (float)p-sum / m;

p = p-next; /*让p指向下一个节点*/

}

}

void Sortsalary(STU *head, const int m, int (*compare)(int a, int b))

{

STU *pt;

int flag = 0, i;

do{

flag = 0 ;

pt = head;

/*若后一个节点的总工资比前一个节点的总工资高,则交换两个节点中的数据

注意只交换节点数据,而节点顺序不变,即节点next指针内容不进行交换*/

while (pt-next != NULL)

{

if ((*compare)(pt-next-sum, pt-sum))

{

IntSwap(pt-number, pt-next-number);

CharSwap(pt-name, pt-next-name);

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

{

IntSwap(pt-salary[i], pt-next-salary[i]);

}

IntSwap(pt-sum, pt-next-sum);

FloatSwap(pt-average, pt-next-average);

flag = 1;

}

pt = pt-next;

}

}while(flag);

}

/*交换两个整型数*/

void IntSwap(int *pt1, int *pt2)

{

int temp;

temp = *pt1;

*pt1 = *pt2;

*pt2 = temp;

}

/*交换两个实型数*/

void FloatSwap(float *pt1, float *pt2)

{

float temp;

temp = *pt1;

*pt1 = *pt2;

*pt2 = temp;

}

/*交换两个字符串*/

void CharSwap(char *pt1, char *pt2)

{

char temp[15];

strcpy(temp, pt1);

strcpy(pt1, pt2);

strcpy(pt2, temp);

}

/*决定数据是否按升序排序,ab为真,则按升序排序*/

int Ascending(int a, int b)

{

return a b;

}

/* 决定数据是否按降序排序,ab为真,则按降序排序 */

int Descending(int a, int b)

{

return a b;

}

void Searchsalary(STU *head, const int m)

{

int number, i;

STU *findNode;

printf("请输入你想查找的记录编号:");

scanf("%d", number);

findNode = SearchNode(head, number);

if (findNode == NULL)

{

printf("Not found!\n");

}

else

{

printf("\nNo.%3d%8s", findNode-number, findNode-name);

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

{

printf("%7d", findNode-salary[i]);

}

printf("%9d%9.2f\n", findNode-sum, findNode-average);

}

}

void Printsalary(STU *head, const int m)

{

STU *p = head;

char str[100] = {'\0'}, temp[3];

int i, j = 1;

strcat(str, "Number Name ");

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

{

strcat(str, "salary");

itoa(i,temp, 10);

strcat(str, temp);

strcat(str, " ");

}

strcat(str," sum average");

printf("%s", str); /* 打印表头 */

while (p != NULL) /*若不是表尾,则循环打印*/

{

printf("\nNo.%3d%15s", p-number, p-name);

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

{

printf("%7d", p-salary[i]);

}

printf("%9d%9.2f", p-sum, p-average);

p = p-next; /*让p指向下一个节点*/

j++;

}

printf("\n");

}

STU *AppendNode(STU *head, const int m)

{

STU *p = NULL;

STU *pr = head;

int j;

p = (STU *)malloc(sizeof(STU)); /*为新添加的节点申请内存*/

if (p == NULL) /*若申请内存失败,则打印错误信息,退出程序*/

{

printf("No enough memory to alloc");

exit(0);

}

if (head == NULL) /*若原链表为空表,则将新建节点置为首节点*/

{

head = p;

}

else /*若原链表为非空,则将新建节点添加到表尾*/

{

/*若未到表尾,则继续移动指针pr,直到pr指向表尾*/

while (pr-next != NULL)

{

pr = pr-next;

}

pr-next = p; /*将新建节点添加到链表的末尾*/

}

pr = p; /*让pr指向新建节点*/

printf("Input node data......");

printf("\nInput number:");

scanf("%d", p-number);

printf("Input name:");

scanf("%s", p-name);

for (j=0; jm; j++)

{

printf("Input salary%d:", j+1);

scanf("%d", p-salary+j);

}

pr-next = NULL; /*将新建节点置为表尾*/

return head; /*返回添加节点后的链表的头节点指针*/

}

STU *ModifyNode(STU *head, int nodeNum, const int m)

{

int j;

STU *newNode;

newNode = SearchNode(head, nodeNum);

if (newNode == NULL)

{

printf("Not found!\n");

}

else

{

printf("Input the new node data:\n");

printf("Input name:");

scanf("%s", newNode-name);

for (j=0; jm; j++)

{

printf("Input salary%d:", j+1);

scanf("%d", newNode-salary+j);

}

}

return head;

}

STU *DeleteNode(STU *head, int nodeNum)

{

STU *p = head, *pr = head;

if (head == NULL) /*链表为空,没有节点,无法删除节点*/

{

printf("No Linked Table!\n");

return(head);

}

/*若没找到节点nodeNum且未到表尾,则继续找*/

while (nodeNum != p-number p-next != NULL)

{

pr = p;

p = p-next;

}

if (nodeNum == p-number) /*若找到节点nodeNum,则删除该节点*/

{

if (p == head) /*若待删节点为首节点,则让head指向第2个节点*/

{

head = p-next;

}

else /*若待删节点非首节点,则将前一节点指针指向当前节点的下一节点*/

{

pr-next = p-next;

}

free(p); /*释放为已删除节点分配的内存*/

}

else /*没有找到待删除节点*/

{

printf("This Node has not been found!\n");

}

return head; /*返回删除节点后的链表的头节点指针*/

}

STU *SearchNode(STU *head, int nodeNum)

{

STU *p = head;

int j = 1;

while (p != NULL) /*若不是表尾,则循环*/

{

if (p-number == nodeNum) return p;

p = p-next; /*让p指向下一个节点*/

j++;

}

return NULL;

}

void DeleteMemory(STU *head)

{

STU *p = head, *pr = NULL;

while (p != NULL) /*若不是表尾,则释放节点占用的内存*/

{

pr = p; /*在pr中保存当前节点的指针*/

p = p-next; /*让p指向下一个节点*/

free(pr); /*释放pr指向的当前节点占用的内存*/

}

}

凑合着用吧,一些缺少的功能自己加上去就行了。。。

企业员工管理系统源码(工资管理系统源码)

高分求企业员工信息管理系统源代码(ASP.NET的,webfrom,vfrom的都行毕业设计用的只要源代码就行了)

企业员工信息管理系统源代码(ASP.NET的,webfrom,vfrom

如果您方便

可以合作

职工管理系统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;

}

求个JAVA 人力资源管理系统 源代码和模版界面以及需求分析,求参考

星原人力资源管理系统 结构如下,

产品说明: 人力资源规划 组织管理 招聘管理 人力测评

人事管理

培训管理

考勤管理

薪酬福利

绩效管理

行政事务

员工关系 人力分析和辅助决策

文控管理 工作流

领导查询和员工自助查询

SA8000人权验厂方案

系统概览

一、人力资源规划

◇通过企业发展阶段设置,设定适应各发展期的人力资源管理政策;

◇适应年度培训计划体系、三级培训体系、岗位培训体系、ISO管理培训体系;

◇自动生成培训到课与缺课统计,对比岗位任职与培训需求,为晋升与上岗提供依据;

◇针对ISO体系验证,为繁杂的培训记录及文档管理提供自动生成核对功能,防止漏训或资料的不一致;

◇自定义培训费用项目;

◇提供培训需求调查表,统一管理培训教材,简化教材的不致性与版本混乱;

◇可直接在系统中制作培训通知单;

◇提供培训心得报告;

◇提供培训效果调查表,统一考核管理,加强培训效果,评估成本效益;

◇能对个人、部门的培训成绩及效果进行分析,并输出各种分析报表;

◇简化培训操作;

◇培训规划可根据用户需要直接转入到培训安排中。

返回顶端

二、组织管理

1、组织机构管理

◇提供对集团公司组织管理的支持,自定义组织层级,不限组织层次;

◇对不同时期的组织职能变更进行动态管理;

◇能够导出树状和矩状的组织架构图;

◇可以进行部门合并、部门升降,并有历史记录记载。

2、岗位管理

◇可以对岗位层级关系进行管理,通过设立岗位层次、级别、职系、职类、职位进行人力分析与规划,建立组织架构与权责体系;

◇可以对不同时期的岗位职责进行管理,并有历史记录记载;

◇可以建立在职级、职务、职类体系上的工作分析、含职位工作说明、职务任职资格、

◇工作量评估、权责体系、工作流分析、工资结构与权重、薪点数等管理职能表格;并有历史记录记载;

◇可以对不同时期的岗位任职资格进行管理,并有历史记录记载;

◇可以对内容进行管理,并有历史记录记载;

◇可设计该岗位的职业发展通道,使员工在此岗位上有很好的前景展望;

◇可设计该岗位的不同时期的绩效考评指标(KPI),并有历史记录记载;

◇可以进行岗位的升迁、降级处理,并有历史记录记载;

◇对不同岗位市场成本调查,按岗位制度公司薪酬体系,对各岗位的评估上限与下限值,根据任职资格与个人资料评估薪酬;

◇通过岗位职责分类,控制直接与间接人员数量与成本比例,使管理成本更合理。

3、年度编制计划与编制管理

◇可对各年度各部门岗位进行人员编制管理;

◇与人力资源规划、招聘模块关联,自动产生招聘申请需求及招聘标准;

◇按既定编制招聘人手,判断是否超编。

◇支持各种计划性、临时性、租赁、外包等多种用工招聘模式;

◇按人力资源规划确定各组织人员需求层次,按岗位分析与任职要求制定测评指标;

◇参照人力资源规划需求、组织架构与岗位编制制定出相应的招聘计划;

◇制定对内招聘与晋升计划,激发员工学习与工作能力;

◇按组织规划确认面试者薪酬结构与标准;

◇参照组织管理中岗位规划属性,结合当前人事档案的年龄、藉贯、性别、学历等统计分析报表,确定招聘申请人员标准;

◇记录招聘渠道信息,及相关广告、费用等;

◇招聘关键环节的申报审批功能;

◇从招聘计划开始对每个关键环节详细跟踪,实现动态信息记载;

◇对应聘人员从填写应聘简历到面试、测评录用进行全程跟踪记载;

◇把应聘人员转入到人事档案中并设置此人的状态,很好的与人事档案结合到一起;

◇内部储备人才和外部储备人才进行分别管理;

◇对一段时间内各部门人员需求单的分类统计;

◇对已审批的部门需求单直接转入到招聘安排中;

◇面试通知单可直接在系统中通过邮件的形式发送给面试者;

◇提供通用的报表形式,如录用通知单,招聘通知单等;

◇可直接从系统中生成招聘发布信息,也可直接把招聘需求发送给人才市场;

◇对招聘渠道、招聘成功率、留任率、人均成本等招聘结果进行综合全面的分析;

◇对未审批的招聘计划、已审批的招聘计划、未审批的人员需求单、已审批的人力需求单及时提醒用户;

◇可与人力测评结合使用,对应聘人员的各方面素质进行测试记载。

返回顶端

三、招聘管理

◇支持各种计划性、临时性、租赁、外包等多种用工招聘模式;

◇按人力资源规划确定各组织人员需求层次,按岗位分析与任职要求制定测评指标;

◇参照人力资源规划需求、组织架构与岗位编制制定出相应的招聘计划;

◇制定对内招聘与晋升计划,激发员工学习与工作能力;

◇按组织规划确认面试者薪酬结构与标准;

◇参照组织管理中岗位规划属性,结合当前人事档案的年龄、藉贯、性别、学历等统计分析报表,确定招聘申请人员标准;

◇记录招聘渠道信息,及相关广告、费用等;

◇招聘关键环节的申报审批功能;

◇从招聘计划开始对每个关键环节详细跟踪,实现动态信息记载;

◇对应聘人员从填写应聘简历到面试、测评录用进行全程跟踪记载;

◇把应聘人员转入到人事档案中并设置此人的状态,很好的与人事档案结合到一起;

◇内部储备人才和外部储备人才进行分别管理;

◇对一段时间内各部门人员需求单的分类统计;

◇对已审批的部门需求单直接转入到招聘安排中;

◇面试通知单可直接在系统中通过邮件的形式发送给面试者;

◇提供通用的报表形式,如录用通知单,招聘通知单等;

◇可直接从系统中生成招聘发布信息,也可直接把招聘需求发送给人才市场;

◇对招聘渠道、招聘成功率、留任率、人均成本等招聘结果进行综合全面的分析;

◇对未审批的招聘计划、已审批的招聘计划、未审批的人员需求单、已审批的人力需求单及时提醒用户;

◇可与人力测评结合使用,对应聘人员的各方面素质进行测试记载。

返回顶端

四、人力评测

◇系统支持各种测试模式,自定义测评类别与试题,例如通过导入一般职业适合性测验、心理测试、领导测评类测评试题或工具,对任职指标、智力、语言能力、算术、书写知觉、空间判断能力、形状知觉、协同动作、运动速度、手指灵活度、手灵活度、领导类型、能力、职业兴趣、个性,LPC领导有效性测评、领导与部属关系测量、工作结构测量、职位权力测量等各项指标进行测评;

◇可按测评职位、标准任职资格指标库等自动推荐测评方案、项目、权重等;

◇ 提供测评方式维护;

◇可利用电脑进行人力在线测评,方便控制时间与测评效果;

◇人力测评登记;

◇人力测评查询;

◇ 岗位匹配性分析;

◇情景测试:公文处理测试等;

◇对应各测试类别的测试的方法与题目:所有试题给出总分值、测试目标与功能,合格分、胜任分、优秀分值及否决项;

◇测评项目与职位指标相对应部份自动对比,计算匹配度;

◇ 按各测试项的测试目标、总分值、实得分值,自动分析出各项优秀、合格、不合格层次及总层次;

◇测评结果可以用不同方式查询与设计报表。

返回顶端

五、人事管理

◇提供身份证识别设备供验证身份证真伪,同时将身份证相片及姓名、号码、住址等自动读入系统,减少输入错误、提高效率,自动判断年龄等合法性;

◇预先统计时间点在职、离职等各种人员状态,为生产计划、招聘计划提供依据;

◇提供员工状态管理,了解各类员工比例;

◇通过各种统计报表了解人员各种比例,分析可能存在的同籍贯风险、年龄或学历不合理等,为招聘与调配提供依据;

◇通过统计流失率及离职原因分析,查找人员流失率主因,为行政工作决策提供依据;

◇对个人档案管理增加了对个人的技能档案管理、计生档案管理、岗位职责查询;

◇自动统计员工学习、工作、培训、考核、异动、加薪履历,对比组织管理岗位规划,作为晋升、调动、加薪等依据;

◇个人职业生涯规划;

◇个人离职记录查询,对有多次离职记录人员进行记载跟踪;

◇人事档案中人事动态跟踪,用户可自定义人员状态,并记载各状态下的发生信息。比如可定义离职申请状态、离职已审批状态、已离职状态;

◇人事黑名单管理,对在公司犯有重大错误的人纳入到黑名单中,系统提醒是否录用。

返回顶端

六、培训管理

◇适应年度培训计划体系、三级培训体系、岗位培训体系、ISO管理培训体系;

◇自动生成培训到课与缺课统计,对比岗位任职与培训需求,为晋升与上岗提供依据;

◇针对ISO体系验证,为繁杂的培训记录及文档管理提供自动生成核对功能,防止漏训或资料的不一致;

◇自定义培训费用项目;

◇提供培训需求调查表,统一管理培训教材,简化教材的不致性与版本混乱;

◇可直接在系统中制作培训通知单;

◇提供培训心得报告;

◇提供培训效果调查表,统一考核管理,加强培训效果,评估成本效益;

◇能对个人、部门的培训成绩及效果进行分析,并输出各种分析报表;

◇简化培训操作;

◇培训规划可根据用户需要直接转入到培训安排中。

返回顶端

七、考勤管理

◇丰富的参数设置,适应不同企业班制特殊性;

◇提供了与多种型号IC卡、条码、指纹考勤机数据接口;

◇能处理频繁倒班、调班、停工待料、中途请假等灵活的出勤管理;

◇能处理临时加班,周末加班、节假日加班、班前、班中、班后加班以及通宵加班等各种加班的管理;可根据最大加班管控指标预警,并通过各种加班报表分析加班的必要性,以控制加班成本;与门禁系统结合可规范员工行为,培养员工良好的工作习惯与优秀的公司文化;

◇能处理跨72小时连班作业(跨两天);

◇可根据各项加班最大加班管控指标预警,并通过各种加班报表显示;

◇分析加班的必要性,以控制加班成本与防范违反法规,分析产值加班负荷率;

◇自定义各种假期,如事假、病假、工伤假、调休、年假、累计假等有薪、无薪、半薪假的管理可处理存假自动与请假抵消,各种复杂的调休等;

◇能输出各种请假单、加班单、排班表、班制作休时间;

◇能输出并查询年、月、日及任意时间段任意部门人的出勤情况报表、异常出勤表并进行各种汇总分析;

◇运用了自动找班和多种灵活排班技术,极大地减轻了考勤人员工作量;

◇运用了先进的考勤算法,处理5000人一个月的考勤报表只需3-5分钟,提高了考勤管理的时效性及管理效率,高度开放的二次开发平台,可最大程度调整考勤项目与计算方法;

◇系统支持多用户和网络,通过严格的权限控制技术、使得考勤日常管理(分散和集中)做到随心所欲,实时控制;

◇自定义各类迟到、早退、旷工、加班超时等异常查询逻辑显示颜色,一目了然、处理快捷

◇自定义签卡控制次数,签卡显示以颜色区分;

◇可定义入职或离职当天是否计出勤;

◇提供海量数据处理机制,解决大型企业历史数据累积导致系统性能下降问题;

◇考勤与门禁系统结合分析上班期间外出情况,可规范员工出勤行为;

◇考勤与消费系统结合,使上班时间与就餐时间对应,公司可以视情况确定是否补贴与是否允许就餐;

◇提醒机制:系统提供默认迟到、早退、旷工、超时加班等提醒功能,同时提供自定义提醒项目需求;

◇安全机制:提供加班、请假、签卡、调休、考勤结果审核功能,防止生效后结果被人为更改或因制度改变重算影响历史数据;

◇考勤项目直接汇入工资计算,考勤、工资、消费数据整合;

◇自定义各种考勤明细、汇总报表,加班、缺勤、异常等报表;

◇支持集团性多套帐或验厂用到的多帐套算法。

返回顶端

八、薪酬福利管理

◇可对薪资项目进行分类管理,如:岗位工资、福利、奖金,实现用户自定义设定和自定义计算,适应各种薪资体系与工资计算方式经常变动;

◇解决了一个月多次调薪的计算难题;

◇可按薪资等级或薪点数根据岗位进行设置,并可设定多个调薪方案;

◇支持多个薪酬体系,不同组织、岗位、职级不同的薪资方案的计算方法,可根据岗位设计标准成本与实际薪资对比,部门预算与实际薪资对比;

◇每个月可计算多个帐套;

◇各帐套可支持不同财务周期算法;

◇支持非自然月为财务周期的工资计算方式,财务周期起止日期可支持自定义;

◇帐套间可共用每月录入数据及接口数据;

◇薪资计算可从考勤、绩效导入数据;

◇支持银行报盘,所得税计算与申报;

◇丰富的薪酬福利报表;

◇支持借款扣除;

◇支持自离或旷工多日自动薪资冻结,也支持手动冻结与解冻;

◇对于其客观存在系统的数据完全共享,如计件工资、考勤、考评、奖惩、水电费、就餐资产等数据与本系统实现了无缝联接,实时调用,只要一次录入,不用重复录入或转换。

返回顶端

九、绩效管理

◇系统支持自定义考核模型或工具:排名表、面谈表、组织考核表、KPI、MBO、360度;

◇绩效参数设置:包括绩效指标库管理,绩效指标可以根据职位绩效指标引入绩效考评指标,并可在此基础上进行自定义其它指标库;

◇绩效层次设置:每个绩效层次有相应的绩效变量及职位;

◇在支持量化指标考核同时,也支持关键工作事项等不能量化的考核项目考核与跟踪;

◇绩效考评级别管理,根据绩效考评级别可以进行多层次、多方位的考评,可以更准确的了解考评者的绩效状况,考评级别依赖于考评分类,每个考评级别所需要的考评级别及每个级别所占的比重是不一样的;

◇绩效考评模板管理,个人绩效考评表及组织绩效考评表可在绩效考评模板基础上生成;

◇组织绩效考评包括引入组织、定义考评分类及考评要点、制作考评表,查看考核信息;

◇个人绩效考评根据个人所在的考评层次及考评周期设置考评分类及考评要点,并根据每个考评级别制作考评表,最后根据每个考评级别及考评周期生成综合考评信息;

◇系统支持自定义考评工具及相关考评表格式;

◇按考评分值与权重自动统计考核结果,自动比对标杆;

◇自动提醒针对考核不合格的培训项目;

◇自动对比各期考核结果,跟踪考核项目改善状况;

◇支持对考核者直接评分;

◇支持领导多级点评、修正、审核;

◇考核结果自动应用于晋升、调职、薪资计算、培训等相关功能模块,起到预警提醒作用;

◇考核结果查询支持:绝对分值比较、相对标准比较、客观标准比较;

◇支持排序法,代表人物法、强制正态分布法(预先设定优良中及格差比例)统计方法;

◇支持绩效考核结果申诉,设定提交、受理、处理、结案周期;

◇考核结果可以通过自定义算法,直接应用于薪酬,异动等子系统。

返回顶端

十、行政事务管理

1、会议管理

系统通过对会议室及物品配套、会议室安排排程、会议参会人员与时间核算会议成本。通过会议申请,提前规范会议内容以 提高会议效率,避免管理中的文山会海;同时,提高会议记录管理,对会议决议跟踪,避免会议流于形式,每次会议决议、跟进责任人、进度、结案做自动跟踪,管 理者通过系统查询,跟进工作,保证决议得以执行。

通过会议管理系统,避免诸多企业会而不议、议而不决、决而不行、行而不果的会议怪圈与高昂的会议成本。

2、工伤管理

工伤管理,通过对工伤等级划分,确认各级别对应处理预案。对单个工伤案例每一个社保步骤进度跟踪记录,同时保持对应的文件。可随时产生所有工伤案例进度表,员工离职是可避免工伤未结案带来的风险。

3、宿舍管理

◇对宿舍基本资料、床位床号的设置;

◇可随时查询各宿舍的入住情况及空床位;可自定义按部门,班组等自动建议床位分配;

◇对各宿舍进行物品配置及管理;

◇对住宿安排、变更、退宿进行全面管理;

◇对外宿人员的登记管理;

◇对宿舍水电费价格的设定,水电表的登记、水电费用等的登记、计算;

◇水电等费用的分摊;相关费用与薪资系统的链接,并可直接从工资中扣除;

◇宿舍日常的维修维护、物品租赁的登记管理等。

4、图书管理

用于企业内部文化室(或图书馆)的计算机化管理。可对所有图书、报刊、杂志、传记、专业资料书籍等进行分类登记;对内部员工的借阅、归还进行跟踪管理;对破损、遗失、赔偿等进行登记跟踪管理。

5、资产管理

对人力资源部门通常管理的办公用品、工衣等物品进行分类编码;对办公用品的购进、 分发、领用、归还、赔偿等进行登记跟踪管理;对库存物品可进行盘点操作;对所有数据的分类分析等。与员工离职相关联,保证先退保管资产,后办离职发工资的 手续。在规定时间内重复领用系统自动提示。可核算人均办公费用等管理指标。

6、保险管理

管理企业内部的各类福利保险;自定义保险险种、员工、企业的缴费记录、明细分摊;处理员工参保,停保操作,与系统的工资等其它功能模块相关联进行汇总和查询分析。

7、医疗管理

记录员工入职时及各次体检记录,对在企业内部药品的分发、使用、回收、医药费进行管理;对医疗服务的过程进行跟踪记录;对医疗服务的类型、费用等进行分类、分析等。

8、车辆管理

规范企业的公务用车管理。从申请、批复等环节对公务用车进行有效的管控;对外出路线、逗留时间、维修保养、路桥费、油费等进行有效有据的跟踪记录,从而达到降低费用,提高效用的目的。

返回顶端

十一、员工关系

◇对相关法律法规条款重要性与内容案例解读,可能风险性预估;

◇明确公司规章各项条款与对应措施,量化必要的指标,更好贯彻各项规章;

◇公司公告的发布、公示与保管等,协助达到制度、公告的最大公示性;

◇法律法规、公司规章、公司公告明确责任到相关执行与保管人员,量化必要数据,保留原始凭据体系,以降低公司人力资源风险;

◇需求调查与处理、员工建议、文娱管理,结合公司理念,协助公司文化建设,提高员工满意度,加强公司员工凝聚力;

◇职代会管理、工会管理:建立公司各种会议架构,明确职责。并对公司相关制度决议讨论,对接国家对企业工会、职代会制度要求,有利公司和谐经营,从文化上降低经营风险与推行企业文化理念;

◇员工跟踪:对员工计划事项进行跟进,防止工作漏失;

◇离职员工访谈与跟踪,针对离职原因切实改善管理;

◇合同管理:可对新员工自动产生合同,进行分类型管理,明确各类合同法定事项,保存各类相关原始文本与变更记录,合同外约定附件等;

◇提供合同批次管理可按签订日期分合同批次,避免每日续签合同,也防止漏签或迟签;

◇工伤管理:提供各工伤案的原始文件,处理步骤流程与进度维护。对各种工种鉴定级别做相应的理培事项;

◇证件管理:对各种证件的有无与有效期管理,自动提醒;

◇体检管理:关注员工健康,对各工种员工按法规或公司制度进行体检管理。按周期要求自动提醒需求;

◇文娱管理:对公司文娱计划与执行,相关经费预算与实际应用进行管理;

◇◇对企业内部公告、通知、新闻消息等的登记、发布、跟踪、反馈等进行分类管理与分析;

◇总经理信箱:在公司内部架设一个上下级之间可以快速、直接的沟通渠道。可对信息进行分类管理,并有保密措施。

返回顶端

十二、人力分析和辅助决策

◇包括人力成本分析、组织绩效分析、合理化建议分析、薪资实验分析、薪资分布分析;

◇自定义和输出多种报表和图表,灵活生成和输出各种多维统计报表,分析人力资源的组成、成本和效益,发掘和预测人力资源的发展趋势;

◇系统内置分析型数据仓库,提供在线实时(OLAP)数据统计分析功能;

◇人员供给分析(根据生产情况及现有人员分析);

◇劳动生产率分析。

返回顶端

十三、文档办工流管理

◇支持文档柜管理,保证电子文档与纸质文档保管台帐对应,方便查找;

◇支持文件多级审批与会签;

◇支持文件分类管理,内置常用法律法规、公司制度、通知通告等类别;

◇支持其它子系统调用相关文件;

◇可制定各类别文件对应不同审批流程、管控流程;

◇支持文件号、文件多版本管理;

◇通过文档收发记录,实时查询文件起草、审批、公布、收发、保管履历;

◇支持文件集中备份。

返回顶端

十四、工作流

◇支持针对不同单据而不同职位自定义工作流程;

◇支持自动提醒当前各类需要审批工作流单据;

◇支持工作流程权限公式定义,例如每个职位可审批的请假天数;

◇支持多人会签;

◇支持前后审批人员审批意见是否可见;

◇支持离岗期间指定职位替代,替代时可以按流程指定多人替代,是否可查看本人以前单据审批记录

返回顶端

十五、领导查询和员工自助查询

◇XY-WEB星原人力资源查询系统,采用完全的B/S结构,提高软件的可维护性和可扩充性;

◇提供使用户进行二次开发的通用模块,用户可以方便地扩展软件的功能;

◇提供统一友好的操作界面和丰富的数据管理分析功能;

◇为企业的信息发布交流提供人性化的操作平台,使企业的规章制度、新闻简报、技术交流、公告事项等及时传播,使企业员工能及时了解企业发展动态;

◇改变传统的集中办公方式,扩大办公区域,企业用户可在家中、城市各地甚至世界各个角落通过网络连接随时办公;

◇系统地利用企业积累的信息资源,改进企业的创新能力和快速响应能力,以提高效率;

◇对客户端机器的硬件要求较低,可以在保留原有的软件和硬件的基础上运行新的应用系统,不影响原有资源;

◇基于WEB方式的办公系统只需在服务器上作配置和维护,大大降低了用户用于软件系统维护和升级的难度及费用,使系统更加容易实施。

返回顶端

十六、SA8000人权验厂方案

人权验厂主要是政府部门、欧美客户检查企业执行劳动法的情况,主要表现在员工是否有超时加班和符合当地最低工资标准以及保险福利、安全保护情况。其核心就是人事、考勤和薪酬福利部分。

主持验厂的对象及特点:

◇政府部门(劳动、税务、海关)查厂:除了考勤和工资部门要调整外,人数、身份证和保险也应为关注调整重点。企业与政府保持良好的关系也是重要因素; ◇欧美客户直接验厂:由于不熟悉大陆情况比较容易应对;

◇客户委托第三方验厂:专业从事验厂工作,对我国情况了如指掌,最难应对,既要符合标准,又要处理好关系。

验厂的应对方式:

普遍采用的是针对不同的验厂对象设立多套账和多套制度,不同的方式,费用和效果差别很大。传统手工和纸卡考勤方式 工作量大、费用高主要表现在处理考勤和工资项目以及对员工培训的项目上。为了避免在处理人事考勤工资多套账时耗用大量的人力和物力,我公司结合近千家工厂 一卡通验厂实施经验,总结了多套一卡通验厂实施方案。

企业员工管理系统源码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于工资管理系统源码、企业员工管理系统源码的信息别忘了在本站进行查找喔。

阅读
分享