当前位置:文档之家› 职工工资报表

职工工资报表

职工工资报表
职工工资报表

C语言大作业

组员|:邵国琴王陈桥谢强

题目:职工工资报表

本题主函数通过调用create() 函数建立一个职工链表,每个结点的数据包括职工号和工资。链表建立后主函数又调用list() 函数打印输出链表的全部结点的职工号和工资

代码:

#include "stdio.h" /*I/O函数*/

# include "bios.h" /*ROM基本输入输出函数*/

#include "dos.h" /*dos接口函数*/

#include "conio.h" /*屏幕操作函数*/

#include "stdlib.h" /*其它说明*/

#include "string.h" /*字符串函数*/

#include "mem.h" /*内存操作函数*/

#include "ctype.h" /*字符操作函数*/

#include "alloc.h" /*动态地址分配函数*/

/****变量定义*******/

typedef struct z1 /*定义数据结构*/

{

char no[11]; /*编号*/

char name[15]; /*姓名*/

float jbgz; /*基本工资*/

float koukuan; /*扣款*/

float yfgz; /*应发工资*/

float shuijin; /*税金*/

float sfgz; /*实发工资*/

struct z1 *prior;/*前驱指针*/

struct z1 *next;/*后继指针*/

}SALARY; /*结构体类型名*/

struct z1 *First; /*双链表头指针*/

struct z1 *Last; /*双链表尾指针*/

/******函数原型*********/

void init(); /*初始化*/

void create(); /*创建链表*/

void calc(); /*计算应发工资*/

void delete(); /*删除*/

void search(); /*查找*/

void save(); /*保存文件*/

void load(); /*读取文件*/

void computer(); /*计算所需各种票面张数*/

void insert(); /*插入*/

void append(); /*追加*/

void copy(); /*复制文件*/

void sort(); /*排序*/

void index(); /*索引*/

void total(); /*分类合计*/

void list(); /*显示所有数据*/

void print(SALARY *p); /*输出单条记录*/

void display(); /*随意逐条显示*/

float fax(float x); /*计算税金*/

int menu_select(); /*主菜单*/

/*******主函数开始**********/

main()

{

int i;

clrscr();

for(;;)

{

switch(menu_select()) /*调用菜单函数返回一个整数值*/

{

case 0:init();break; /*初始化*/

case 1:create();break; /*输入数据创建双链表*/

case 2:list();break; /*显示所有数据*/

case 3:display();break; /*单条显示*/

case 4:calc();break; /*计算实发工资*/

case 5:search();break; /*查找职工信息数据*/

case 6:delete();break; /*删除记录*/

case 7:insert();break; /*插入记录*/

case 8:append();break; /*追加记录*/

case 9:save();break; /*保存文件*/

case 10:load(); break; /*读取文件*/

case 11:copy();break; /*复制文件*/

case 12:sort();break; /*按实发工资升序排序*/

case 13:computer();break; /*计算所需票面数*/

case 14:index();break; /*按职工号索引*/

case 15:total();break; /*按部门求合计*/

case 16:exit(0); /*退出*/

}

}

}

/*菜单函数,函数返回值为整型,代表所选的菜单项*/

menu_select()

{

char *f[]= { /*定义菜单字符串数组*/

"**************MENU*************", /*菜单的标题行*/

" 0. init list", /*初始化双链表*/

" 1. Enter list", /*输入数据,创建双链表*/

" 2. List all \n", /*显示所有记录*/

" 3. Display record by step", /*显示单条记录*/

" 4. Calc the salary", /*计算实发工资*/

" 5. Search record on name", /*查找记录*/

" 6. Delete a record", /*删除记录*/

" 7. Insert record to list", /*插入记录*/

" 8. Append record to file", /*追加记录*/

" 9. Save data to the file", /*保存文件*/

" 10. Load data from the file",/*读取文件*/

" 11. Copy the file to new file", /*复制文件*/

" 12. Sort on sfgz", /*排序*/

" 13. Computer ticket number", /*计算所需票面数*/

" 14. Index on number", /*索引*/

" 15. Total on number", /*分类合计*/

" 16. Quit" }; /*退出*/

char s[80];

int i;

int key=0; /*记录所压键值*/

int c=0;

gotoxy(1,25); /*移动光标*/

printf("press any key enter menu......\n");/*压任意键进入主菜单*/ getch();

clrscr(); /*清屏*/

textcolor(YELLOW); /*设置文本颜色为黄色*/

textbackground(BLUE); /*设置背景颜色为兰色*/

gotoxy(10,2);

putch(0xda); /*输出左上角边框┏*/

for(i=1;i<44;i++)

putch(0xc4); /*输出上边框水平线*/

putch(0xbf); /*输出右上角边框┓*/

for(i=3;i<22;i++)/*输出左右两边的垂直线*/

{

gotoxy(10,i);putch(0xb3);

gotoxy(54,i);putch(0xb3);

}

gotoxy(10,22);putch(0xc0); /*输出左上角边框┗*/

for(i=1;i<44;i++)

putch(0xc4); /*输出下边框水平线*/

putch(0xd9); /*输出右下角边框┛*/

window(11,3,53,21); /* 制作显示菜单的窗口,大小根据菜单条数设计*/

clrscr(); /*清屏*/

for(i=0;i<18;i++)

{

gotoxy(10,i+1);

cprintf("%s",f[i]); /*输出菜单项数组*/

}

i=1;

gotoxy(10,2); /*设置默认选项在第一项*/

textbackground(LIGHTGREEN);/*设置背景颜色为浅绿*/

cprintf("%s",f[1]); /*输出菜单项,表示选中*/

gotoxy(10,2); /*移动光标到菜单的第一项*/

while(key!=13) /*所压键不是回车键时*/

{

while(bioskey(1)==0); /*查询是否压下了一个键*/

key=bioskey(0); /*返回下一个在键盘压下的键*/

key=key&0xff?key&0xff:key>>8; /*对所压的键进行判断*/

gotoxy(10,i+1);

textbackground(BLUE);/*设置背景颜色为蓝色*/

cprintf("%s",f[i]); /*输出菜单项*/

if(key==72) i=i==1?17:i-1; /*如压向上光标键↑,i减1,如已到第一行再上移,则到最后一行*/

if(key==80)i=i==17?1:i+1; /*如压向下光标键↓,i加1,如已到最后一行再下移,则到第一行*/

gotoxy(10,i+1); /*光标移动i的下一项*/

textbackground(LIGHTGREEN); /*将背景颜色设为浅绿*/

cprintf("%s",f[i]); /*输出菜单项*/

c=i-1; /*给代表菜单选项的整数赋值*/

}

textbackground(BLACK); /*设置背景颜色为黑色*/

window(1,1,80,25); /*恢复原窗口大小*/

return c; /*返回代表菜单选项的整数值*/

}

/*初始化函数*/

void init()

{

First=NULL;

Last=NULL;

}

/*输入数据,创建双链表*/

void create()

{

int x; /*记录行坐标*/

int i; /*记录输入记录数*/

int flag=0; /*做结束标记*/

float temp; /*定义临时变量*/

SALARY *info,*p; /*定义临时变量*/

if(First!=NULL)

init();/*如果头指针为空,调用初始化函数*/

p=First; /*从头指针开始*/

for(;;)

{

if(flag==1)

break; /*如果flag=1,结束输入*/

i=0;

x=0; /*确定移动的行坐标*/

clrscr(); /*清屏*/

gotoxy(1,3);

printf("*************gongziguanli*************");/*输出标题*/

gotoxy(1,4);

printf(" --Enter @ end--");/*提示输入@结束*/

gotoxy(1,5);

printf("|------------------------------------|");/*输出表格的起始线*/

gotoxy(1,6);

printf("| no | name | jbgz |");/*输出字段标题,注意空格数*/ for(;;)

{

gotoxy(1,7+x);

printf("|----------|----------------|--------|");/*输出表格的水平线*/

info=(SALARY *)malloc(sizeof(SALARY));/*申请一个记录空间*/

if(!info)

{

printf("\nout of memory");/*如没有得到空间,输出内存溢出信息*/

exit(0);/*退出程序*/

}

info->next=NULL;/*新结点的后继为空*/

info->prior=NULL;/*新结点的前驱为空*/

gotoxy(1,8+x);printf("|"); /*输出数据间的分割线*/

gotoxy(12,8+x);printf("|");

gotoxy(29,8+x);printf("|");

gotoxy(38,8+x);printf("|");

gotoxy(2,8+x);/*光标到输入编号位置*/

inputs(info->no,10);/*输入编号,并验证长度不超过10*/

if(info->no[0]=='@')

{

flag=1;

break;

} /*编号首字符为@结束输入*/

gotoxy(13,8+x); /*光标到输入姓名位置*/

inputs(info->name,14); /*输入姓名,并验证长度不超过14*/

gotoxy(30,8+x); /*光标到输入基本工资位置*/

scanf("%f",&temp); /*输入基本工资到临时变量*/

info->jbgz=temp; /*基本工资赋值*/

info->koukuan=0; /*初始扣款为0,待计算工资时输入*/

info->sfgz=0; /*初始实发工资为0,待计算工资时计算*/

info->shuijin=0; /*初始税金为0,待计算工资时计算*/

info->yfgz=0; /*初始应发工资为0,待计算工资时计算*/

if(p==NULL)/*如果p为空,说明输入的是第一个结点*/

{

First=Last=info;/*头指针和尾指针*/

First->prior=NULL; /*头指针的前驱是空*/

Last->next=NULL; /*尾指针的后继是空*/

}

else /*插入的结点不是第一结点,则插入在头结点之前*/

{

info->next=p;/*新结点的后继指向原来的头结点*/

info->prior=p->prior;/*新结点的前驱指向原来的头结点的前驱*/

p->prior=info;/*原来结点的前驱指向新结点*/

}

p=info; /*新结点变为p结点,暂时的头结点*/

First=info; /*新结点变为头结点*/

x+=2; /*因为水平线,将光标下移两行*/

gotoxy(1,8+x);

i++; /*输入记录数加1*/

if(i%9==0)

break; /*输入9个记录,换一页输入*/

}

gotoxy(1,8+x);

}

printf("|----------|----------------|--------|");/*输出结尾水平线*/

}

/*字符串输入和验证函数*/

inputs(char *s, int count)

{

char p[255];

do{

scanf("%s",p);/*输入字符串*/

if(strlen(p)>count)printf("\n too long! \n");/*进行长度校验,超过count值重输入*/ }while(strlen(p)>count);

strcpy(s,p); /*将输入的字符串拷贝到字符串s中*/

}

/*显示链表*/

void list()

{

int i=0,n; /*记录输出行数*/

SALARY *p; /*定义移动指针*/

clrscr(); /*清屏*/

p=First; /*从头指针开始*/

while(i%10==0&&p!=NULL) /*外循环控制换页*/

{

i=0; /*记录一页的输出行数*/

clrscr(); /*清屏*/

printf("\n\n\n"); /*换行三次*/

printf("*************************************SALARY**************************** *******\n"); /*输出大标题*/

printf("|nO | name | jbgz | koukuan | yfgz | shuijin | sfgz |\n"); /*输出字段标题*/

printf("|----------|---------------|---------|---------|---------|---------|---------|\n"); /*输出水平线*/

while(p!=NULL) /*当p不为空时*/

{

printf("|%-10s|%-15s|%9.2f|%9.2f|%9.2f|%9.2f|%9.2f|\n",

p->no,p->name,p->jbgz,p->koukuan,p->yfgz,p->shuijin,p->sfgz);

p=p->next; /*指针后移*/

i++; /*输出行数加1 */

if(i%10==0)

break; /*如果满10行,跳出内循环*/

}

printf("****************************************end****************************** *****\n"); /*输出本页的结束行*/

printf("Press any key congtinue...\n");

getch(); /*输出一页暂停一下,压任意键继续*/

} /*返回到外循环,准备下一页的输出*/

}

/*单条显示记录*/

void display()

{

int ch; /*菜单选项字符*/

SALARY *p; /*定义临时指针*/

clrscr(); /*清屏*/

p=First; /*从头指针开始*/

if(p==NULL) /*指针为空,即链表为空,返回主函数*/

{

printf("record is empty!\n");

return;

}

else

{

print(p); /*调用输出函数显示头结点信息*/

for(;;) /*循环开始*/

{

printf("\n\n0. Quit 1. Prior 2. Next 3. First https://www.doczj.com/doc/5011968996.html,st \n\n");

/*菜单项Quit退出Prior前驱Next后继First第一条Last最后一条*/

printf("\nplease select 0~4:"); /*提示输入菜单选项0~4*/

scanf("%d",&ch); /*输入菜单选项0~4*/

if(ch==0) break; /*如果选项为0,退出*/

switch(ch) /*开关语句根据选项字符判断*/

{

case 1:p=p->prior;if(p==NULL)p=First;break; /*指向前驱,没有前驱指向第一个*/

case 2:p=p->next;if(p==NULL) p=Last;break; /*指向后继,没有后继指向最后一个*/

case 3:p=First;break; /*指向第一个结点*/

case 4:p=Last;break; /*指向最后一个结点*/

}

print(p); /*调用输出函数显示指针所指结点信息*/

}

}

}

/*输出指针所指结点信息*/

void print(SALARY *p)

{

if(p) /*如果指针不为空,则显示信息*/

{

clrscr(); /*清屏*/

printf("\n\n\n"); /*换行*/

printf("************************************SALARY***************************** *******\n"); /*输出标题信息*/

printf("|no | name | jbgz | koukuan| yfgz | shuijin | sfgz |\n"); /*输出字段标题*/

printf("|----------|---------------|---------|---------|---------|---------|---------|\n"); /*输出分割线*/ printf("|%-10s|%-15s|%9.2f|%9.2f|%9.2f|%9.2f|%9.2f|\n", p->no,p->name,

p->jbgz,p->koukuan,p->yfgz,p->shuijin,p->sfgz);/*输出结点信息*/

printf("***************************************end***************************** *******\n"); /*输出结束标记*/

}

}

/*计算实发工资*/

void calc()

{

int x; /*行坐标*/

int i=0; /*记录数*/

float temp; /*临时变量扣款*/

SALARY *p; /*移动指针*/

clrscr(); /*清屏*/

p=First; /*从头指针开始*/

while(p!=NULL) /*当p不为空时,也就是有记录时,外循环控制换页*/

{

x=0;

clrscr();

gotoxy(1,3);

printf("***************************gongziguanli*********************************** *"); /*输出标题*/

gotoxy(1,5);

printf("|--------------------------------------------------------------------------|");

gotoxy(1,6);/*下面输出字段标题*/

printf("| no | name | jbgz | koukuan | yfgz |shuijin | sfgz |");

while(p!=NULL) /*当p不为空时,也就是有记录时,内循环控制处理9条*/

{

gotoxy(1,7+x);

printf("|----------|----------------|--------|----------|--------|--------|--------|");

gotoxy(1,8+x);printf("|");

gotoxy(12,8+x);printf("|");

gotoxy(29,8+x);printf("|");

gotoxy(38,8+x);printf("|");

gotoxy(49,8+x);printf("|");

gotoxy(58,8+x);printf("|");

gotoxy(67,8+x);printf("|");

gotoxy(76,8+x);printf("|");

gotoxy(2,8+x);

printf("%-10s",p->no); /*输出编号*/

gotoxy(13,8+x);

printf("%-15s",p->name); /*输出姓名*/

gotoxy(30,8+x);

printf("%.2f",p->jbgz); /*输出基本工资*/

gotoxy(39,8+x);

scanf("%f",&temp); /*输入扣款*/

p->koukuan=temp; /*扣款字段赋值*/

p->yfgz=p->jbgz-p->koukuan; /*计算应发工资=基本工资-扣款*/

gotoxy(50,8+x);

printf("%.2f",p->yfgz); /*输出应发工资*/

gotoxy(59,8+x);

p->shuijin=(p->yfgz-1000)*fax(p->yfgz); /*否则按税率计算税金*/

printf("%.2f",p->shuijin); /*输出税金*/

gotoxy(68,8+x);

p->sfgz=p->yfgz-p->shuijin; /*计算实发工资*/

printf("%-8.2f",p->sfgz); /*输出实发工资*/

x+=2; /*行坐标下移两行*/

i++; /*记录数加1*/

if(i%9==0)break; /*记录数超过9条,跳出内循环*/

p=p->next; /*指针后移,处理下一条*/

}

gotoxy(1,7+x);

printf("|----------|----------------|--------|----------|--------|--------|--------|\n"); /*输出结束行*/ printf("Press any key congtinue...\n");

getch();

}

}

/*根据应发工资,计算税率*/

float fax(float x)

{

float f1;

if(x<1000)

return 0; /*小于1000,返回0*/

switch((int)(x/1000))

{

case 1:f1=0.05;break; /*1000~1999,返回0.05*/

case 2:f1=0.1;break; /*2000~2999,返回0.1*/

case 3:f1=0.15;break; /*3000~3999,返回0.15*/

case 4:f1=0.2;break; /*4000~4999,返回0.2*/

default:f1=0.3;break; /*5000以上,返回0.3*/

}

return f1;

}

/*计算票面张数*/

void computer()

{

SALARY *p;

int i=0,a[7]={0},t100,t50,t20,t10,t5,t2,t1;/*设置数组和临时变量保存票面张数*/

float t; /*过渡变量,保存当前剩余工资*/

p=First; /*移动指针从头指针开始*/

while(p!=NULL) /*当p不为空时*/

{

t100=(int)p->sfgz/100; /*计算100元张数*/

a[0]=a[0]+t100; /*累加保存*/

t=p->sfgz-t100*100; /*剩余工资*/

t50=(int)(t/50); /*计算50元张数*/

a[1]=a[1]+t50; /*累加保存*/

t=t-t50*50; /*剩余工资*/

t20=(int)(t/20); /*计算20元张数*/

a[2]=a[2]+t20; /*累加保存*/

t=t-t20*20; /*剩余工资*/

t10=(int)(t/10); /*计算10元张数*/

a[3]=a[3]+t10; /*累加保存*/

t=t-t10*10; /*剩余工资*/

t5=(int)(t/5); /*计算5元张数*/

a[4]=a[4]+t5; /*累加保存*/

t=t-t5*5; /*剩余工资*/

t2=(int)(t/2); /*计算2元张数*/

a[5]=a[5]+t2; /*累加保存*/

t=t-t2*2; /*剩余工资*/

t1=(int)(t); /*计算1元张数*/

a[6]=a[6]+t1; /*累加保存*/

p=p->next; /*指针后移,处理下一条记录*/

}

clrscr(); /*清屏*/

printf("\n\n\n***********ticket number***************\n"); /*输出标题*/ printf("--100-----50------20-----10-----5------2------1------\n");

/*输出张数标题*/

for(i=0;i<7;i++)

printf("%5d ",a[i]);/*输出所需的张数*/

printf("\n");/*换行*/

}

/*按编号查找记录*/

SALARY *find(char *no)

{

SALARY *p; /*定义移动指针*/

p=First; /*从头指针开始*/

while(p) /*当p不为空时*/

{

if(!strcmp(no,p->no))

return p; /*比较相等,查找成功,返回指针*/

p=p->next; /*不相等指针后移*/

}

printf("not found\n"); /*没有找到*/

return NULL; /*返回为空指针*/

}

/*删除结点*/

void delete()

{

SALARY *p; /*定义临时变量,p指向要删除的结点p*/

char s[11]; /*要删除结点的编号*/

clrscr(); /*清屏*/

printf("please deleted no\n"); /*提示输入信息*/

scanf("%s",s); /*输入要删除的职工编号*/

if((p=find(s))!=NULL) /*调用查找函数,如果找到做下面的处理*/

{

if(First==p) /*如果是第一个结点*/

{

First=p->next; /*将头指针指向其后继结点*/

if(First) /*如头指针不为空*/

First->prior=NULL; /*将头结点的前驱设为空*/

else

Last=NULL; /*否则头为空,尾也为空*/

}

else /*删除的不是第一个结点*/

{

p->prior->next=p->next; /*p的前驱的后继指向p原来的后继*/

if(p!=Last) /*如果p不是最后个结点*/

p->next->prior=p->prior; /*p后继的前驱指向p原来的前驱*/ else

Last=p->prior;/*如p是最后一个结点,修改尾指针为p的前驱*/ }

free(p); /*删除结点后,不要忘记释放空间*/

printf("\n have deleted %s SALARY\n",s);

printf("Don't forget save\n");

}

}

/*按姓名查找结点*/

void search()

{

SALARY *p; /*移动指针*/

char s[15]; /*保存姓名*/

clrscr(); /*清屏*/

printf("please enter name for search\n"); /*提示输入*/

scanf("%s",s); /*输入要查找人的姓名*/

p=First; /*移动指针从头指针开始*/

while(strcmp(p->name,s)&&p!=NULL) /*做比较判断*/

p=p->next; /*没找到,指针后移继续查找*/

if(p==NULL) /*指针为空,说明没有找到*/

printf("\nlist no %s SALARY\n",s); /*显示没找到信息*/ else

{

printf("\n\n"); /*换行*/

print(p); /*查找成功,调用输出函数输出指针p所指记录*/ }

}

/*插入结点*/

void insert()

{

SALARY *p,*info; /* info为新结点,p为新结点的后继*/

char s[11]; /*保存查找的姓名*/

float temp; /*临时变量*/

clrscr(); /*清屏*/

printf("please enter location before the no\n"); /*提示输入在哪个结点之前插入*/ scanf("%s",s); /*输入指定结点的编号*/

printf("\nplease new record\n"); /*提示输入记录*/

clrscr();/*清屏*/

gotoxy(1,3); /*定位光标,按表格形式输入新结点信息*/

printf("**************gongziguanli************");

gotoxy(1,5);

printf("|------------------------------------|");

gotoxy(1,6);

printf("| no | name | jbgz | ");

gotoxy(1,7);

printf("|----------|----------------|--------|");

info=(SALARY *)malloc(sizeof(SALARY)); /*申请空间*/

if(!info)

{

printf("\nout of memory"); /*如没有得到空间,内存溢出*/

exit(0); /*退出程序*/

}

info->next=NULL; /*新结点的后继为空*/

info->prior=NULL; /*新结点的前驱为空*/

gotoxy(1,8);printf("|");

gotoxy(12,8);printf("|");

gotoxy(29,8);printf("|");

gotoxy(38,8);printf("|");

gotoxy(2,8);

inputs(info->no,10); /*输入新结点的编号,并校验*/

gotoxy(13,8);

inputs(info->name,14); /*输入新结点的姓名,并校验*/

gotoxy(30,8);

scanf("%f",&temp); /*输入基本工资*/

info->jbgz=temp; /*给基本工资字段赋值*/

info->koukuan=0; /*扣款初始为0*/

info->yfgz=0; /*应发工资初始为0*/

info->shuijin=0; /*税金初始为0*/

info->sfgz=0; /*实发工资初始为0*/

printf("|----------|----------------|--------|");

p=First; /*移动指针从头指针开始*/

while(strcmp(p->no,s)&&p!=NULL) /*查找结点确定插入位置*/

p=p->next; /*指针后移,继续查找*/

if(p==NULL) /*如p为空*/

if(p==First) /*如p为头指针,说明链表为空*/

{

First=info; /*新结点为头指针*/

First->prior=NULL; /*头结点的前驱为空*/

Last=First; /*唯一结点,尾指针等于头指针*/

}

else /*新结点插在尾部*/

{

Last->next=info;

info->prior=Last;

Last=info; /*尾指针指向新结点*/

}

else

if(p==First) /*p不为空,但p为头指针,新结点插在第一个结点位置*/ {

info->prior=NULL; /*新结点的前驱为空*/

info->next=p; /*新结点的后继为p*/

p->prior=info; /*p的前驱是新结点*/

First=info; /*修改头指针指向新结点*/

}

else /*新结点插入在中间某一个位置p之前*/

{

info->next=p; /*新结点的后继是p*/

info->prior= p->prior; /*新结点的前驱是p的前驱*/

p->prior->next=info; /*p的前驱的后继是新结点*/

p->prior=info; /*p的前驱是新结点*/

}

printf("\n\n\n ----have inserted %s SALARY----\n",info->name);

printf("\n---Don't forget save---\n"); /*提醒调用保存文件存盘*/

}

/*保存文件*/

void save()

{

FILE *fp; /*定义指向文件的指针*/

SALARY *p; /*定义移动指针*/

char outfile[10]; /*保存输出文件名*/

clrscr();/*清屏*/

printf("Enter outfile name,for example c:\\f1\\te.txt:\n");/*提示输入文件名格式信息*/ scanf("%s",outfile);

if((fp=fopen(outfile,"wb"))==NULL) /*为输出打开一个二进制文件*/

{

printf("can not open file\n");

return; /*返回*/

}

printf("\nSaving file......\n");

p=First; /*移动指针从头指针开始*/

while(p!=NULL) /*如p不为空*/

{

fwrite(p,sizeof(SALARY),1,fp); /*写入一条记录*/

p=p->next; /*指针后移,处理下一条记录*/

}

fclose(fp); /*关闭文件*/

printf("-----save success!!-----\n");/*显示保存成功*/

}

/*读文件*/

void load()

{

SALARY *p,*q=NULL; /*定义记录指针变量*/

FILE *fp; /* 定义指向文件的指针*/

char infile[10]; /*保存文件名*/

clrscr();/*清屏*/

printf("Enter infile name,for example c:\\f1\\te.txt:\n");/*输入文件名格式*/

scanf("%s",infile); /*输入文件名*/

if((fp=fopen(infile,"rb"))==NULL) /*打开一个二进制文件,为读方式*/

{

printf("can not open file\n"); /*如不能打开,则结束程序*/

return; /*返回*/

}

while(First) /*当表不为空时,清空链表*/

{

p=First; /*从头指针开始*/

First=First->next; /*删除头结点*/

free(p); /*释放空间*/

}

printf("\n -----Loading file!-----\n"); /*显示正在读文件*/

First=(SALARY *)malloc(sizeof(SALARY)); /*为头指针申请空间*/

if(!First) /*如果没有得到空间显示内存溢出*/

{

printf("out of memory!\n");

return; /*返回*/

}

p=First; /*将头指针赋值给p*/

while(!feof(fp)) /*当文件不空时*/

{

if(1!=fread(p,sizeof(SALARY),1,fp))break; /*将记录读到p所指的结点*/

p->next=(SALARY *)malloc(sizeof(SALARY));/*为p的后继申请空间*/

if(!p->next) /*如果没有得到空间显示内存溢出*/

{

printf("out of memory!\n");

return; /*返回*/

}

p->prior=q; /*得到空间,则链接指针关系p的前驱为q*/

q=p; /*保存p做为新的p结点的前驱*/

p=p->next; /*p指针后移*/

}

q->next=NULL; /*q的后继为空*/

Last=q; /*尾指针为q*/

First->prior=NULL; /*头指针的前驱为空*/

fclose(fp); /*关闭文件*/

printf("---You have success read data from file!!!---\n"); /*显示成功读入记录*/ }

/*追加记录*/

void append()

{

FILE *fp; /*定义指向文件的指针*/

SALARY *info; /*指向追加信息的指针*/

char infile[10]; /*保存文件名*/

float temp; /*临时变量*/

clrscr(); /*清屏*/

gotoxy(1,3);

printf("**************gongziguanli************");

gotoxy(1,5);

printf("|------------------------------------|");

gotoxy(1,6);

printf("| no | name | jbgz | ");

gotoxy(1,7);

printf("|----------|----------------|--------|");

info=(SALARY *)malloc(sizeof(SALARY)); /*申请追加信息的空间*/

if(!info)

{

printf("\nout of memory"); /*没有空间,内存溢出*/

exit(0); /*结束程序*/

}

info->next=NULL; /*新信息的后继为空*/

info->prior=NULL; /*新信息的前驱为空*/

gotoxy(1,8);printf("|");

gotoxy(12,8);printf("|");

gotoxy(29,8);printf("|");

gotoxy(38,8);printf("|");

gotoxy(2,8);

inputs(info->no,10); /*输入编号并校验*/

gotoxy(13,8);

inputs(info->name,14); /*输入姓名并校验*/

gotoxy(30,8);

scanf("%f",&temp); /*输入基本工资*/

info->jbgz=temp;

info->koukuan=0; /*扣款为0*/

info->yfgz=0; /*应发工资为0*/

info->shuijin=0; /*税金为0*/

info->sfgz=0; /*实发工资为0*/

printf("|----------|----------------|--------|");

printf("\n\n\nEnter infile name,for example c:\\f1\\te.txt:\n"); /*提示输入文件名*/ scanf("%s",infile);

if((fp=fopen(infile,"ab"))==NULL) /*打开文件*/

{

printf("can not open file\n");

return; /*返回*/

}

printf("\n -----Appending record!-----\n");

if(1!=fwrite(info,sizeof(SALARY),1,fp)) /*向文件中追加记录*/

{

printf("-----file write error!-----\n"); /*写函数返回值不为1,说明写入错误*/ return; /*返回*/

}

printf("-----append sucess!!----\n");/*显示追加成功*/

fclose(fp);/*关闭文件*/

}

/*文件复制*/

void copy()

{

char outfile[10],infile[10]; /*保存源文件名和目标文件名*/

FILE *sfp,*tfp; /*定义指向源文件和目标文件的指针*/

SALARY *p=NULL; /*定义临时指针,暂存读出的记录*/

clrscr();

printf("Enter infile name,for example c:\\f1\\te.txt:\n");

scanf("%s",infile); /*输入源文件名*/

if((sfp=fopen(infile,"rb"))==NULL) /*二进制读方式打开源文件*/

{

printf("can not open input file\n"); /*显示不能打开文件信息*/

return; /*返回*/

}

printf("Enter outfile name,for example c:\\f1\\te.txt:\n"); /*提示输入目标文件名*/ scanf("%s",outfile); /*输入目标文件名*/

if((tfp=fopen(outfile,"wb"))==NULL) /*二进制写方式打开目标文件*/

{

printf("can not open output file \n");

return;

}

while(!feof(sfp)) /*读文件直到文件尾*/

{

if(1!=fread(p,sizeof(SALARY),1,sfp))

break;/*块读*/

fwrite(p,sizeof(SALARY),1,tfp); /*块写*/

}

fclose(sfp); /*关闭源文件*/

fclose(tfp); /*关闭目标文件*/

printf("you have success copy file!!!\n");/*显示成功拷贝*/

}

/*排序*/

void sort()

{

SALARY *p0,*p00,*p1,*p11,*p2; /*定义临时指针*/

int i=1; /*统计当前排第几个结点*/

clrscr(); /*清屏*/

printf("\n\n start sort....\n"); /*开始排序*/

p1=p11=p2=First;

while(p1!=NULL) /*当p1不为空时*/

{

p0=p1; /*待比较结点从p1开始*/

p2=p1; /*p2从当前待排序位置开始*/

while(p2->next!=NULL) /*p2的后继不为空时*/

{

if(p0->sfgz>p2->next->sfgz) /*找当前最小结点*/

{

p00=p2; /*找到当前最小结点记录其前驱指针*/

p0=p2->next; /*记录当前最小值结点的指针p0*/

}

p2=p2->next; /*指针后移*/

}

Last=p0; /*当前最小结点为尾结点*/

if(p1!=p0) /*判断最小结点是否是当前排序位置,不是则作指针修改*/

{

p00->next=p0->next; /*将p00的后继指向p0的后继*/

p0->next->prior=p00; /*p0的后继的前驱为p00*/

p0->next=p1; /*p0的后继指向下个排序位置p1*/

p1->prior=p0; /*p1的前驱为p0*/

if(i==1)

{

First=p0; /*作头指针*/

First->prior=NULL; /*头指针的前驱为空*/

}

else /*不是第一个结点*/

{

p11->next=p0; /*p11的后继指向p0*/

p0->prior=p11; /*p0的前驱指向p11*/

}

p11=p1=p0; /*因p0是排好序的最后一个结点,p1是下一个将要排序的位置,所以将p0赋值给p1和p11*/

}

i++; /*排好序的结点数加1*/

p1=p1->next; /*p1后移指向下一个待排序位置*/

}

printf("sort sucess!!!\n"); /*输出排序成功*/

}

/*索引*/

void index()

{

SALARY *p,*q,*t,*h1; /*定义临时指针*/

clrscr();/*清屏*/

printf("\n\n start index.....\n\n"); /*显示开始索引*/

h1=First->next; /*将原表的头指针所指的下一个结点作头指针*/

First->next=NULL; /*第一个结点为新表的头结点*/

Last=First; /*尾指针等于头指针*/

while(h1!=NULL) /*当原表不为空时,进行排序*/

{

t=h1; /*取原表的头结点*/

h1=h1->next; /*原表头结点指针后移*/

p=First; /*设定移动指针p,从头指针开始*/

q=First; /*设定移动指针q做为p的前驱,初值为头指针*/

while(strcmp(t->no,p->no)>0&&p!=NULL) /*作编号比较*/

{

q=p; /*待排序点值大,应往后插,所以新表指针后移*/

p=p->next;

}

if(p==q) /*p==q,说明待排序点值小,应排在首位*/

{

t->next=p; /*待排序点的后继为p*/

p->prior=t; /*p的前驱结点指向待排序结点*/

First=t; /*新头结点为待排序点*/

First->prior=NULL; /*头指针的前驱为空*/

}

else /*待排序点应插入在中间某个位置q和p之间,如p为空则是尾部*/ {

t->next=p; /*t的后继是p*/

t->prior=q; /*t的前驱是q*/

q->next=t; /*q的后继是t*/

if(p==NULL) /*判p是否为空*/

Last=t; /*将t赋值为尾指针*/

else

p->prior=t; /*否则将t赋值给p的前驱*/

}

}

printf("index sucess!!!\n");/*索引排序成功*/

}

/*分类合计*/

void total()

{

struct t1 /*定义结构体保存合计数据*/

{

char u[7]; /*部门*/

float s; /*合计实发工资*/

}unit[20]; /*定义一个单位部门数不超过20个*/

SALARY *p,*q; /*定义临时指针变量*/

char sno[7],qno[7],*ptr; /*保存部门号*/

float s1; /*保存合计值*/

int i,j; /*控制变量*/

p=First; /*从指针开始*/

i=0; /*统计部门数*/

clrscr();/*清屏*/

while(p!=NULL) /*当p不为空时做下面的处理*/

{

memcpy(sno,p->no,6); /*从编号中取出部门号*/

sno[6]='\0'; /*做字符串结束标记*/

q=p->next; /*将指针指向待比较的记录*/

s1=p->sfgz; /*当前部门的实发工资初值作为该部门合计值的初值*/

while(q!=NULL) /*内循环开始*/

{

memcpy(qno,q->no,6); /*读部门号*/

qno[6]='\0'; /*做字符串结束标记*/

if(strcmp(qno,sno)==0) /*比较部门号*/

职工工资制度doc

职工工资制度 (试行方案) 一、总则 1.1为规范职员工资的确定及调整办法等有关事项,特制定本制度。 1.2本制度适用于公司全体职员(即惠州本部胶驻外工作的职员)。本制度所指工资,是指每月定期发放的工资,不含奖金和津贴事项(技术系列的项目津贴除外)。 二、工资结构 2.1职员工资由固定工资、浮动工资两部门组成。 2.2固定工资包括:基本工资、技能工资、住房补贴、医疗补贴。固定工资是根据职员的职务、资历、学历、技能等因素确定的、相对固定的工作报酬。 2.3浮动工资包括:考勤工资、绩效工资、效益工资,项目开发人员还有项目津贴。浮动工资是根据员工考勤表现、工作绩效及公司经营业绩确定的、不固定的工资报酬,每月调整一次。 2.4项目津贴自研发项目经总经理批准立项后,于相关研发人员当月工资中发放。项目经理每月对相关研发人员进行考核,确定发放比例,最高为工资标准的20%。 2.5项目完成情况由公司技术战略发展委员会进行评估。项目如提前或按期完成,项目津贴自完成当月停发。在预定的截止时间,如项目完成率低60%,项目津贴自当月停发;如项目完成率高于60%,项目津贴继续发放,直至项目完成当月为止。技术战略发展委员会根据项目评估价值、完成的质量、进度情况,确定项目奖的发放。 2.6职员工资扣除项目包括:个人所得税、教育金、缺勤、扣款(含押金、借款、罚款等)、代扣社保费、代扣补充保险费、代扣住房公积金。 2.7职员工资发放如有错漏,或需退还捐款时,将在下月工资“补杂”项补发。 三、工资系列 3.1公司根据不同职务性质,分别制定行政、技术、营销三类工资系列。 3.2行政工资系列适于于从事行政、财务、生产等日常管理或事务工作的职员。 3.3技术工资系列适用于从事产品技术开发、生产技术、品质管理等专业技术工作的人员。 3.4营销工资系列适用于从事营销、推广及相关工作的职员,包括市场本部及难驻外机构所有职员。 3.5职员工资系列适用范围详见下表3-1:

(完整版)员工工资结构表

薪资结构表 一、薪资构成 月工资=基本工资+绩效工资+全勤工资+岗位工资 1、基本工资:70元/天*30天即固定金额2100元 2、绩效工资:20元/天*30天即固定金额600元 3、全勤工资:10元/天*30天即固定金额300元 4、岗位工资:(工价*当月天数)-2100-600-300 二、基本工资 员工基本薪资的标准是根据社会平均生活水平和不同职位等级设定,基本薪资按月计算,按一个季度发放。 三、绩效工资 绩效工资考核内容为施工成本、安全文明、工程进度、工程质量及年出勤率,具体考核内容及标准参见《工程部绩效考核管理办法》,员工当月考核扣款超出绩效工资时,将从基本薪资中扣除;绩效工资按年计算,年底一次性发放。 四、全勤工资 1、每月累计请假小于3天(含3天)并正常办理请假手续的给予全额全勤奖,请假大于3天的无全勤工资; 2、病假如有医院开具的《病假证明》则不影响全勤工资发放; 3、每月请假小于3天(含3天)的必须提前至少一天填写《请假申请单》经项目负责人确认签字后在下班前交予行政部; 4、每月请假大于3天的必须提前至少一周填写《请假申请单》经总经理确认签字后在下班前交予行政部; 5、每月2次(含2次)以上未提前上交《请假申请单》至行政部的全勤工资全额扣除。 五、岗位工资 1、公司根据员工的职位性质、职责范围和个人表现确定员工的岗位工资。 六、薪资发放 1、公司以货币形式支付员工的薪资,薪资直接汇入指定金融机构员工个人账户内,具体发放时间为:1.单个项目试压或试运行结束后,甲方开具验收合格单后次月25日;2.如单个项目周期过长或无法按单个项目结算的,则2016年工资按如下发放:6月发 2、 3、4月工资;9月发5、6、7月工资;12月发8、9、10月工资;2017年春节前发11、12、1月工资。 2、员工每月15日、30日可各提交一次借款申请,每次借款总金额不超过1000元,当月合计不超2000元。 六、加班、请假计算 1、加班时数以壹小时为基数,不满壹小时不计加班; 2、加班计算方式:(工价-10)÷9×加班小时;请假计算方式:(工价-10)÷9×请假小时。 七、其他 1、如员工三个月内每月绩效考核均在最后三名内,则调整薪资或解聘。 2、以上薪资结构自签订之后开始实行。 以上内容本人已阅读理解并同意!员工签字:日期:

Excel讲解及练习员工工资表

模块三Excel电子表格制作 项目一不变 项目二制作员工工资表(调整了任务和素材) 项目说明 工资是企业在一定时间内直接支付给本单位员工的劳动报酬,也是企业进行各种费用计提的基础。工资管理是企业管理的重要组成部分,是每个单位财会部门最基本的业务之一。手工进行工资核算,需要占用财务人员大量的精力和时间,并且容易出错,采用计算机进行工资核算可以有效提高工资核算的准确性和及时性。 项目分析 本项目要求建立员工工资表,计算其中的相关数据,对工资数据进行查询与汇总分析,并打印工资发放条。 2010年4月份某公司员工基本工资和出勤情况如表3-2-1所示。 表3-2-1 2010年4月份某公司员工基本工资和出勤情况表 任务1 建立员工工资表并输入基本数据 分析或说明:建立基本工资表主要是搭建工资表的框架,在工资表中列出一些有关员工工资的项目,并输入基本数据。在输入数据时为了防止出错可以进行有效性控制。 步骤:

1、启动Excel应用程序,单击“文件”→“另存为”菜单项,在弹出的“另存为”对话框中,输入文件名“工资”,文件类型为“.xls”。 2、双击工作表标签,将工作表“sheet1”重命名为“2010年4月”。 3、在工作表第一行输入如下标题:职工代码、姓名、性别、年龄、所属部门、职工类别、基本工资、岗位工资、奖金、应发合计、事假天数、事假扣款、病假天数、病假扣款、扣款合计、养老金、医疗金、公积金、应发工资、所得税、实发工资。 4、参照表3-2-1中的数据输入第一列“职工代码”和第二列“姓名”。 5、光标放在C2单元格,单击“数据”→“有效性”菜单项,打开“数据有效性”对话框,如图3-2-1所示。 6、在“允许”列表中选择“序列”,在“来源”中输入“男,女”(用英文逗号隔开),单击“确定”按钮完成设置。 7、将光标移动到C2单元格右下角,当光标变为实心的十字形时,按住鼠标左键向下拖拉,将C2单元格的有效性控制复制到C列其他单元格。 图3-2-1数据有效性对话框 8、根据表格3-2-1的数据输入“性别”、“年龄”“所属部门”和“职工类别”等数据,其中“所属部门”和“职工类别”两列数据采用有效性控制输入,最后结果如图3-2-2所示。

事业单位工作人员岗位工资标准表

事业单位工作人员岗位工资标准表 事业单位专业技术人员岗位工资标准表 单位:元/月 事业单位管理人员岗位工资标准表 单位:元/月 事业单位工人岗位工资标准表 单位:元/月

参照此表换算 类别岗位等级行政级别(专业技术职务、技能等级)备注 管理岗位五处级正职 六处级副职 省市政府可调任公务员岗 位 七科级正职 八科级副职 县级政府可调任公务员岗 位 九科员 十办事员 专业技术岗位一 高 级 正 高 (享受正县及以上待 遇) 国家专设岗位 (牛人)二 省专任岗位 (牛人)三 四 五副 高 (享受副县级待遇、可调 任公务员) 六 七 八 中级 (八九为科级待遇) 九 十

十一初级 十二 (科员待遇) 管理岗位: 四级职员副厅 三级职员正厅 二级职员副部 一级职员正部 陕西事业单位将以岗定薪: 陕西省人事厅、陕西省财政厅转发了《人事部、财政部关于印发事业单位工作人员收入分配制度改革方案的通知》,通知规定《事业单位工作人员收入分配改革方案》2006年7月1日起实施,改革的原则是以岗定薪、岗变薪变。 改革基本内容 事业单位实行岗位绩效工资制度。岗位绩效工资由岗位工资、薪级工资、绩效工资和津贴补贴四部分组成,其中岗位工资和薪级工资为基本工资。 其中,事业单位岗位分为专业技术岗位、管理岗位和工勤技能岗位。专业技术岗位设置13个等级,管理岗位设置10个等级,工勤技能岗位分为技术工岗位和普通工岗位。技术工岗位

设置5个等级,普通工岗位不分等级。不同等级的岗位对应不同的工资标准。工作人员按所聘岗位执行相应的岗位工资标准。此外,对专业技术人员和管理人员共设置65个薪级,对工人设置40个薪级,每个薪级对应一个工资标准。对不同岗位规定不同的起点薪级。工作人员根据工作表现、资历和所聘岗位等因素确定薪级,执行相应的薪级工资标准。 同时,国家对事业单位绩效工资分配进行总量调控和政策指导。事业单位在核定的绩效工资总量内,按照规范的程序和要求,自主分配。事业单位实行绩效工资后,取消现行年终一次性奖金,将一个月基本工资的额度以及艰苦边远地区津贴和特殊岗位津贴纳入绩效工资。 完善调整机制 对从事公益服务的事业单位,根据其功能、职责和资源配置等不同情况,实行工资分类管理。基本工资执行国家统一的政策和标准,绩效工资根据单位类型实行不同的管理办法。在年度考核的基础上,对考核合格及以上等次的工作人员每年正常增加一级薪级工资。 工作人员岗位变动后,按新聘岗位执行相应的工资标准,国家根据经济发展、财政状况、企业相关人员工资水平和物价变动等因素,适当调整工作人员基本工资标准。 监督领导收入 加大对高层人才的激励力度,继续实行政府特殊津贴制

工人工资发放表

序号姓名 性 别 工种 出勤天 数/完成 工作量 缺勤 天数 加班时间扣除款应发工资实发工资班组长签字备注 1 王直群男钢筋工31 8000 8000 2 管玉清男钢筋工29 6380 6380 3 刘祖根男钢筋工29 6380 6380 4 刘成福男钢筋工28 6160 6160 5 王祥彬男钢筋工27 5400 5400 6 黄才华男钢筋工28 6160 6160 7 晏达英男钢筋工29 6380 6380 合计39360 39360 大写叁万玖仟叁佰陆拾圆整 项目经理: 项目名称:编号:002 1

序号姓名 性 别 工种 出勤天 数/完成 工作量 缺勤 天数 加班时间扣除款应发工资实发工资班组长签字备注 1 任坤男泥工31 7720 7720 2 柯贤林男泥工28 7920 7920 3 袁天顺男泥工28 7920 7920 4 黄雷男泥工28 6050 6050 5 陈毅男泥工28 4050 4050 6 罗田男泥工28 4050 4050 7 曹霞男泥工31 3650 3650 合计41360 41360 大写肆万壹仟叁佰陆拾圆整 项目经理: 序姓名性工种出勤天缺勤加班时间扣除款应发工资实发工资班组长签字备注 2

号别数/完成 工作量 天数 1 陈宝清男木工31 7500 7500 2 王永发男木工31 7500 7500 3 王永生男木工31 7500 7500 4 夏永发男木工31 7500 7500 5 王直顺男木工31 7500 7500 6 周昌伦男木工31 7500 7500 7 周诗春男木工31 7500 7500 8 王直飞男木工31 7500 7500 9 王甫周男木工27 6750 6750 合计66750 66750 大写陆万陆仟柒佰伍拾圆整 项目经理: 序号姓名 性 别 工种 出勤天 数/完成 缺勤 天数 加班时间扣除款应发工资实发工资班组长签字备注 3

《劳动工资报表说明》

劳动工资报表说明 第一部分统计范围 根据劳动统计改革的要求,目前将在全省范围内实施劳动统计报表范围逐步扩大的计划,2005年劳动统计年报城镇以上单位范围将依然与2004年一样扩大到规模以上私营企业。 城镇以上单位范围:中央和地方各级国家机关、政党机关和社会团体,以及中央和地方所属的各级企业、事业单位。包括国有经济、城镇集体经济、联营经济、股份制经济、外商和港、澳、台投资经济、其他经济单位。(不包括个体和私营经济单位和乡镇企业局管理的企业) 规模以上私营企业范围: (1)指年产品销售收入在500万元及以上的私营工业企业 (2)具有专业资质等级的私营建筑业 (3)具有专业资质等级的私营建筑业 (4)房地产开发企业 (5)年主营业务收入在2000万元及以上的私营批发业企业 (6)年主营业务收入在500万元及以上的私营零售业企业 (7)年营业额在200万元及以上的私营餐饮业企业 (8)具有住宿业星级等级的私营住宿业企业。 第二部分统计报表 劳动工资报表包括2005年年报《劳动情况》I101-1表和季报《劳动情况》I102-1表。其中年报上述所有单位均须填报。而季报私营企业无需填写,只由城镇以上单位填写。 年报: 年报表的“一、在岗职工”项下新增了“临时职工”项。

在补充资料中,新增“在岗职工受教育培训人数”一项指标。 第三部分指标解释 人数统计 单位从业人员各单位的从业人员是指各级国家机关、政党机关、社会团体及企业、事业单位中工作,并取得劳动报酬的全部人员。包括在岗职工、兼职人员和从事第二职业的人员。 使用的农村劳动力在国有经济、城镇集体经济、联营经济、股份制经济、外商和港、澳、台投资经济、其他经济单位的从业人员中,现仍保留农村户籍关系的人员。使用的农村劳动力是单位从业人员的其中项。 在岗职工指在本单位工作并由单位支付劳动报酬的职工。包括由单位派出学习、劳务及病伤产假且仍由单位支付劳动报酬的人员。不包括离开本单位仍保留劳动关系的职工。 专业技术人员在企业、事业单位和其他非公有制经济组织中从事专业技术工作或专业技术管理工作的人员。并符合下列条件之一的人员:1、受聘初级及以上专业技术职务; 2、取得专业技术职务任职资格或专业技术职务资格; 3、具有大专及以上学历; 4、获得省部级及以上科学技术奖励; 5、持有政府有关部门认定的发明专利。按照公务员管理或参照公务员管理的人员不统计为专业技术人员。 长期职工指用工期限在一年以上(含一年)的职工。包括原固定职工、合同制职工、长期临时工以及国有单位使用的城镇集体所有制单位的人员。 临时职工指用工期限不超过一年的职工。包括各单位根据国家有关规定招用的,签订一年以内的劳动合同或使用期不超过一年的临时性、季节性用工。 其他从业人员各单位其他从业人员是指劳动统计制度规定不做职工统计,但实际参加各单位生产或工作并取得劳动报酬的人员。包括:再就业的离退休人员、民办教师,在各单位中工作的外方人员和港、澳、台方人员以及聘用的外单位下岗职工、外单位的内退人员、兼职人员和从事第二职业的人员。但不包括在单位中工作并领取劳动报酬的

事业单位各类人员岗位工资薪级工资标准及套改表

事业单位各类人员岗位工资薪级工资标准及套改表2010年01月11日星期一 20:51 见习阶段的岗位工资: 博士见习 845 博士见习岗位工资 硕士见习 770 硕士位研究生岗位工资 双学见习 710 双学位、非硕士研究生班岗位工资本科见习 685 大学本科见习岗位工资 大专见习 655 大学专科见习岗位工资 中专见习 590 中专毕业见习岗位工资 高中见习 590 高中毕业见习岗位工资 初中见习 570 初中毕业见习岗位工资 正式后的岗位级别工资: 岗位类别岗位级别岗位工资级别工资标准 专业技术岗位正高 一2800 二1900 三1630 四1420 副高 五1180 六1040 七930 中级 八780 九730 十680 初级 十一620 十二590 员级十三550 管理岗位正厅三1640 副厅四1305 正处五1045 副处六850 正科七720 副科八640 科员九590 办事员十550 工勤岗位高级技师技术工一级830 技师技术工二级690 高级工技术工三级615 中级工技术工四级575 初级工技术工五级545 普通工普通工540

薪级工资套改表: 事业单位专业技术人员薪级工资套改表.xls 事业单位管理人员薪级工资套改表.xls 事业单位普通工人薪级工资套改表.xls 各类岗位薪级工资套改政策和计算方法 一、基本政策 事业单位实行岗位绩效工资制度。岗位绩效工资由岗位工资、薪级工资、绩效工资和津贴补贴四部分组成,其中岗位工资和薪级工资为基本工资。 岗位工资。主要体现工作人员所聘岗位的职责和要求。事业单位岗位分为专业技术岗位、管理岗位和工勤技能岗位。专业技术岗位设置13个等级,管理岗位设置10个等级,工勤技能岗位分为技术工岗位和普通工岗位,技术工岗位设置5个等级,普通工岗位不分等级。不同等级的岗位对应不同的工资标准。工作人员按所聘岗位执行相应的岗位工资标准。 薪级工资。主要体现工作人员的工作表现和资历。对专业技术人员和管理人员设置65个薪级,对工人设置40个薪级,每个薪级对应一个工资标准。对不同岗位规定不同的起点薪级。工作人员根据工作表现、资历和所聘岗位等因素确定薪级,执行相应的薪级工资标准。 二、薪级工资的套改 1.工作人员按照本人套改年限、任职年限和所聘岗位,结合工作表现,套改相应的薪级工资。 (具体附件1、附件2、附件3,采用坐标法,横坐标是套改年限,竖坐标是岗位和任职年限,横竖坐标的焦点就是薪级等级,举例某教授,套改年限30年,任职年限10年,按表套结果就是38级,有了薪级再对应专业技术人员的薪级工资标准就得出此人的薪级工资是多少了。)注意:找不到,向右靠(如果按某人的具体情况套不到标准,就在相同任职年限的统一行向右找,看到的第一个薪级等级就是他的薪级等级,例如某教授套改年限21年,任职年限11年,套下来这个地方是空白,怎么办,向右找右边第一个33级就是他的薪级等级,这种情况是极少数的,碰见了就按这个办法套) 2.工作人员按现聘岗位套改的薪级工资,如低于按本人低一级岗位套改的薪级工资,可按低一级岗位进行套改,并将现岗位的任职年限与低一级岗位的任职年限合并计算。 例如:某副教授,套改年限29年,任现职务4年,按现任职务套改薪级工资为28级643元,原任讲师13年(含副教授4年),可套改薪级工资29级673元。那么他的薪级等级就是29级,新级工资是673元。 二、套改年限和任职年限计算 套改年限和任职年限计算的截止时间是2006年6月30日。 (一)套改年限计算 套改年限:是指工作年限与不计算工龄的在校学习时间合并计算的年限,其中须扣除1993年来除见习期外年度考核不计考核等次或不合格的年限。 套改年限相关政策主要有: (1)工作年限的计算办法为年—年+1,相关政策仍按国家和省里有关规定执行。

相关主题
文本预览
相关文档 最新文档