建材秒知道
登录
建材号 > 设计 > 正文

用C语言设计职工工资管理系统

悲凉的冬瓜
酷酷的超短裙
2022-12-29 13:09:59

用C语言设计职工工资管理系统

最佳答案
鲤鱼乌冬面
缓慢的玫瑰
2026-04-27 01:45:13

#include<iostream.h>

#include<stdlib.h>

#include<string.h>

#include<iomanip.h>

using namespace std

#define OK 1

#define ERROR 0

typedef struct LNode{

char num[20]

char name[20]

double basic

double reward

double total

struct LNode *next

}LNode,*LinkListint initlist(LinkList &L)

{ L=(LinkList)malloc(sizeof(LNode))

L->next=NULL

return OK

} int DisplayInfo(LinkList L)

{

LinkList p=L->next

if(!p)

{

cout<<"当前无记录!"<<endl

return ERROR

}

cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endlwhile(p!=NULL)

{

cout<<p->num<<setw(9)<<p->name<<setw(8)<<p->basic<<setw(12)<<p->reward<<setw(12)<<p->total<<endl

p=p->next

}

cout<<'\n'<<'\n'

return OK

} int InputInfo(LinkList &L)

{

LinkList pp=(LinkList)malloc(sizeof(LNode))

cout<<"请输入职工工资信息:(格式如:2001001 james 1980 600 )"<<endl

cin>>p->num

cin>>p->name

cin>>p->basic

cin>>p->reward

p->total=p->basic+p->reward

p->next=L->next

L->next=preturn OK

}int DeleteByCode(LinkList &L,char key[])

{

LinkList p=L,q

while(p->next!=NULL)

{

if(strcmp(p->next->num,key)==0)

{

q=p->next

p->next=q->next

free(q)

return OK

}

p=p->next

}

return ERROR} int Search(LinkList L,int tag)

{

LinkList p=L->next

if(tag==1)

{

char num[20]

cout<<"请输入要查找职工编号号:"<<endl

cin>>num

while(p)

{

if(strcmp(p->num,num)==0)

{

cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endl

cout<<p->num<<setw(9)<<p->name<<setw(8)<<p->basic<<setw(12)<<p->reward<<setw(12)<<p->total<<endl

cout<<'\n'

return OK

}

p=p->next

}

}

else if(tag==2)

{

char name[20]

cout<<"请输入要查找的姓名:"<<endl

cin>>name

while(p)

{

if(strcmp(p->name,name)==0)

{

cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endl

cout<<p->num<<setw(9)<<p->name<<setw(8)<<p->basic<<setw(12)<<p->reward<<setw(12)<<p->total<<endl

cout<<'\n'

return OK

}

p=p->next

}

}

else

cout<<"输入错误!"<<endl

return ERROR}

int Sort(LinkList &L)

{

LinkList p

LinkList q,min,w=L

for(p=L->nextp->nextp=p->next)

{

min=p

for(q=p->nextqq=q->next)if(min->total>q->total)

min=q if(min!=p)

{strcpy(w->num,p->num)

strcpy(w->name,p->name)

w->basic=p->basic

w->reward=p->reward

w->total=p->total

strcpy(p->num,min->num)

strcpy(p->name,min->name)

p->basic=min->basic

p->reward=min->reward

p->total=min->total

strcpy(min->num,w->num)

strcpy(min->name,w->name)

min->basic=w->basic

min->reward=w->reward

min->total=w->total }

}

return OK

}

int change(LinkList &L)

{

LinkList p=L->next

char q[20]

cout<<"请输入要修改的职工编号号:"<<endl

cin>>q

while(p)

{

if(strcmp(p->num,q)==0)

{

cout<<"编号"<<setw(12)<<"姓名"<<setw(12)<<"基本工资"<<setw(9)<<"奖金"<<setw(12)<<"工资总额"<<endl

cout<<p->num<<setw(9)<<p->name<<setw(8)<<p->basic<<setw(12)<<p->reward<<setw(12)<<p->total<<endl

cout<<"请重新输入该职工的工资信息:"<<endl

cin>>p->basic

cin>>p->reward

cout<<'\n'

return OK

}

p=p->next

}

}

int Menu(LinkList &S)

{

int sign=1

while(sign)

{

int i

cout<<"请选择要进行的操作:1:插入 2:删除 3:输出 4:查找 5:排序 6:修改 0:退出"<<endl

cin>>i

if(i==1)

{ if(InputInfo(S))

cout<<"操作成功!"<<endl

cout<<'\n'

}

else if(i==2)

{

char num[20]

cout<<"请输入要删除的职工编号:"<<endl

cin>>num if(DeleteByCode(S,num))

cout<<"操作成功!"<<endl else

{

cout<<"此编号不存在!"<<endl

cout<<'\n'

}

}

else if(i==3)

DisplayInfo(S)

else if(i==4)

{

int tag

cout<<"1:按编号查找 2:按姓名查找 "<<endl

cin>>tag

if(!Search(S,tag))

cout<<"未找到!"<<endl

cout<<'\n' }

else if(i==5)

{

if(Sort(S))

cout<<"操作成功!"<<endl

cout<<'\n'

}

else if(i==6)

{

if(change(S))

cout<<"修改成功!"<<endl

} else if(i==0)

sign=0

else

cout<<"输入有误,请重新输入!"<<endl

cout<<'\n'

}

return OK

}

int main()

{

LinkList S

initlist(S)

Menu(S)

return OK} 已经调试无bug 有问题的话联系我。

最新回答
喜悦的萝莉
闪闪的水蜜桃
2026-04-27 01:45:13

属于。

1、计算机网络技术专业主要学习组网技术与网络管理、网络操作系统、网络数据库、网页制作、计算机网络与应用、网络通信技术、网络应用软件、JAVA编程基础方面的知识

2、而工资管理系统设计毕业运用到了JAVA编程基础、网络数据库、网页制作方面的知识,所以属于计算机网络技术专业。

糟糕的未来
合适的百合
2026-04-27 01:45:13
第一章 需求分析

1.1 功能要求

1.1.1 功能概况

本次设计要求运用面向对象设计知识,利用 JAVA 语言设计实现一个“小型公司工资管理系统”。

1.1.2 存储功能

能够存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。 其中,雇员级别分为经理、技术人员、销售人员和销售经理。四类人员的月薪计算方法如下:经理拿固定月薪;技术人员按小时领取月薪;销售人员按其当月销售额的提成领取工资;销售经理既拿固定月薪也领取销售提成。由此要求,该项目需要利用数据库的关系表存储数据。

1.1.3 添加功能

程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。需要利用 Java 语言连接数据库,使用数据库添加语句。

1.1.4 查询功能

可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。利用 Java Swing 控件进行展示。

1.1.5 编辑功能

可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

1.1.6 删除功能

主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录, 则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。

1.1.7 统计功能

能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。利用数据库语句完成统计。

1.1.8 界面功能

利用 java 的 GUI 功能设计系统的图形用户界面,要求界面美观,易用。

有魅力的火车
笨笨的黄蜂
2026-04-27 01:45:13

#include "stdio.h"

void AddRecord()

{

FILE *fp = NULL

yuangong TmpS

char DataFile[40] = ""

int count = 1

printf("\n please input the file name which you will add recored to.")

printf("\n Notice:Name of file can't exceed 8 characters.suffix can't exceed 3 characters,part of exceed will be discarded.\n")

gets(DataFile)

while(*DataFile == ('\0'))

{

printf("\n please input new file name to store data,end with enter.")

printf("\n Notice:Name of file can't exceed 8 characters,suffix can't exceed 3 characters.part of exceed will be discarded.\n")

gets(DataFile)

}

fp = fopen(DataFile,"a+")

if (fp == NULL)

{

printf("\n Open file %s fail!End with any key.\n",DataFile)

perror("Open file fail")

getch()

exit(1)

}

printf("input number,name and salary.number is 0 means input is end.\n")

printf("Number is not exceed 9 figures,Name is not exceed 20 characters,range of grade:0.00~1000.00\n")

while(count <= SIZE)

{

printf("\n input 'number =0' means end input.\n")

printf("number=")

scanf("%ld",&TmpS.Number)

if (TmpS.Number == 0 )

break

printf("name=")

scanf("%s",TmpS.Name)

printf("gongzi=")

scanf("%f",&TmpS.gongzi)

printf("jiangjin=")

scanf("%f",&TmpS.jiangjin)

printf("baoxian=")

scanf("%f",&TmpS.baoxian)

printf("shuijin=")

scanf("%f",&TmpS.shuijin)

TmpS.heji=TmpS.gongzi+TmpS.jiangjin-TmpS.baoxian-TmpS.shuijin

printf("\n")

if(fwrite(&TmpS,sizeof(yuangong),1,fp)!=1)

{

printf("\nwrite file %s fail!End with any key\n",DataFile)

perror("Write file fail ")

getch()

exit(1)

}

count++

}

if (count>SIZE)

printf("\nsorry,number of data can not exceed%d\n",SIZE)

fclose(fp)

printf("The data you input is store successful %s in file.\n",DataFile)

printf("Content as follow:\n")

fp=fopen(DataFile,"rb")

if (fp == NULL)

{

printf("\nOpen file%sfail!End with any key \n",DataFile)

perror("Open file fail")

getch()

exit(1)

}

printf("\nNumber\t\tName\tgongzi\tjiangjin\tbaoxian\tshuijin\theji\n")

while(fread(&TmpS,sizeof(yuangong),1,fp) != (int)NULL)

{

printf("\n%ld\t%s\t%5.2f\t%5.2f\t%5.2f\t%5.2f\t%5.2f\n",TmpS.Number,TmpS.Name,TmpS.gongzi,TmpS.jiangjin,TmpS.baoxian,TmpS.shuijin,TmpS.heji)

}

fclose(fp)

}

矮小的冬日
洁净的水蜜桃
2026-04-27 01:45:13
#include<stdio.h>

#define NUM 100

void input()

void search()

void search_num()

void dele()

void dele_name()

void dele_num()

void modi()

void modi_num()

void output()

void stat()

void fun()

void run()

struct emploee

{

char no[5]

char name[8]

char sex[3]

int age

int salar

}emp[NUM],newemp

main()

{int x

printf("1. 输入职工记录\n")

printf("2. 查询职工记录\n")

printf("3. 修改职工记录\n")

printf("4. 删除职工记录\n")

printf("5. 打印职工记录\n")

printf("6. 调查工资情况\n")

printf("7. 追加职工记录\n")

printf("8. 结束使用\n")

printf("0. 退出系统\n")

printf("\n")

printf("*** 欢迎使用职工工资管理系统 ***\n")

printf("请选择(0-8):\n")

scanf("%d",&x)

switch(x)

{

case 1: input()break

case 2: search()break

case 3: modi()break

case 4: dele()break

case 5: output()break

case 6: stat()break

case 7: run()break

case 8: fun()break

default:printf("\n Wrong!")

}

if(x==0)break

}

}

void input()

{

FILE *fp

int n,i

if ((fp=fopen("emp","wb"))==NULL)

{

printf("不能建立emp文件\n")

exit(1)

}

printf("输入职工人数:")

scanf("%d",&n)

printf("输入格式:职工号 姓名 性别 年龄 工资<Enter>\n")

for(i=0i<ni++)

{

printf("第%d个职工:",i+1)

scanf("%s%s%s%d%d",emp[i].no,emp[i].name,emp[i].sex,

&emp[i].age,&emp[i].salar)

}

for(i=0i<ni++)

fwrite(&emp[i],sizeof(struct emploee),1,fp)

fclose(fp)

}

void stat( )

{

FILE *fp

int n,num

if((fp=fopen("emp","rb"))==NULL)

{

printf("不能打开emp文件\n")

exit(1)

}

printf("工资数:")

scanf("%d",&num)

printf("记录号 职工号 姓名 性别 年龄 工资\n")

for(n=0fread(&emp,sizeof(struct emploee),1,fp)n++)

if(emp[n].salar>=num)

printf("%6d%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,

emp[n].age,emp[n].salar)

fclose(fp)

}

void dele()

{

int x

while(1)

{

printf("\n\n\t\t删除子菜单\n")

printf("\t\t*********\n")

printf("\t\t 1.按职工号删除记录\n")

printf("\t\t 0.返回主菜单\n")

printf("\t\t*********\n")

printf("\t 请选择(0-1):")

scanf("%d",&x)

switch(x)

{case 1:dele_num()break

default:printf("\nWrong!")

}

if(x==0)break

}

}

void dele_num()

{

FILE *fp

int i,j,n

char num[5]

if((fp=fopen("emp","rb"))==NULL)

{

printf("不能打开emp文件\n")

exit(1)

}

printf("删除前:\n")

printf("记录号 职工号姓名 性别 年龄 工资\n")

for(n=0fread(&emp[n],sizeof(struct emploee),1,fp)n++)

printf("%6s%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,

emp[n].age,emp[n].salar)

printf("要删除的职工号:")

scanf("%s",num)

for(i=0(strcmp(emp[i].no,num)!=0&&i<n)i++)

if(i>=n)

{

printf("\t没有%s职工号的职工\n",num)

exit(2)

}

fclose(fp)

fp=fopen("emp","w+")

if(n==1)

{

fclose(fp)

exit(3)

}

for(j=0j<ij++)

fwrite(&emp[j],sizeof(struct emploee),1,fp)

for(j=i+1j<nj++)

fwrite(&emp[j],sizeof(struct emploee),1,fp)

printf("删除后:\n")

fseek(fp,0,SEEK_SET)

printf("记录号 职工号 姓名 性别 年龄 工资\n")

for(i=0fread(&emp[i],sizeof(struct emploee),1,fp)i++)

printf("%6s%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,

emp[i].age,emp[i].salar)

fclose(fp)

}

void modi()

{

int x

while(1)

{

printf("\n\n\t\t修改子菜单\n")

printf("\t\t*********************\n")

printf("\t\t1. 按职工号修改\n")

printf("\t\t0. 返回主菜单\n")

printf("\t\t*********************\n")

printf("\t请选择(0-1):")

scanf("%d",&x)

switch(x)

{

case 1:modi_num()break

default:printf("\n输错误!")

}

if(x==0)break

}

}

void modi_num()

{

FILE *fp

int i,j

char num[5]

if((fp=fopen("emp","rb+"))==NULL)

{

printf("不能 打开emp文件\n")

exit(1)

}

printf("要修改的职工号:")

scanf("%s",num)

for(i=0fread(&emp[i],sizeof(struct emploee),1,fp)i++)

if(!strcmp(emp[i].no,num))break

if(feof(fp))

{

printf("\t没有%s职工号的职工\n",num)

exit(2)

}

printf("记录号 职工号 姓名 性别 年龄 工资\n")

printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,

emp[i].age,emp[i].salar)

printf("输入格式:职工号 姓名 性别 年龄 工资<Enter>\n")

printf("第%d个记录:",i+1)

scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age,

&newemp.salar)

fseek(fp,-(long)sizeof(struct emploee),SEEK_CUR)

fwrite(&newemp,sizeof(struct emploee),1,fp)

printf(" 修改后:\n")

fseek(fp,0,SEEK_SET)

printf("记录号 职工号 姓名 性别 年龄 工资\n")

for(i=0fread(&emp[i],sizeof(struct emploee),1,fp)!=0i++)

printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,

emp[i].age,emp[i].salar)

fclose(fp)

}

void search( )

{

int x

while(1)

{

printf("\n\n\t\t查子菜单\n")

printf("\t\t********************\n")

printf("\t\t 1.按职工号查询\n")

printf("\t\t 0.返回主菜单\n")

printf("\t\t********************\n")

printf("\t请选择(0-1):")

scanf("%d",&x)

switch(x)

{

case 1:search_num()break

default :printf("\n Wrong!")

}

if(x==0) break

}

}

void search_num()

{

FILE *fp

int i

char num

if((fp=fopen("emp","rb"))==NULL)

{

printf("不能打开emp文件\n")

exit(1)

}

printf("要查询的职工号:")

scanf("%s",num)

for(i=0fread(&emp[i],sizeof(struct emploee),1,fp)i++)

if(!strcmp(emp[i].no,num)) break

if(feof(fp))

{

printf("\t查无此人\n")

exit(2)

}

printf("记录号 职工号 姓名 性别 年龄 工资\n")

printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,

emp[i].age,emp[i].salar)

fclose(fp)

}

void output()

{int i

FILE *fp

if((fp=fopen("emp","r"))==NULL)

{printf("不能打开emp文件\n")

exit(0)

}

printf("记录号 职工号 姓名 性别 年龄 工资\n")

for(i=0fread(&emp[i],sizeof(struct emploee),1,fp)!=0i++)

{

printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,

emp[i].age,emp[i].salar)

}

fclose(fp)

}

void run()

{

FILE *fp

int n,i,j

if((fp=fopen("emp","ab+"))==NULL)

{printf("不能打开emp文件\n")

exit(0)

}

printf("要追加的职工人数:")

scanf("%d",&n)

for(i=0i<ni++)

{ printf("输入格式:职工号 姓名 性别 年龄 工资<enter>\n")

printf("职工记录:")

scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age,

&newemp.salar)

fwrite(&newemp,sizeof(struct emploee),1,fp)

}

fclose(fp)

}

void fun()

{printf("\t\t******************************************\n")

printf("\t\t* *\n")

printf("\t\t* *\n")

printf("\t\t* 谢 谢 使 用 ! *\n")

printf("\t\t* *\n")

printf("\t\t* *\n")

printf("\t\t******************************************\n")

}

负责的帆布鞋
伶俐的鞋子
2026-04-27 01:45:13
我认为中心应该是:

(在市场经济的大环境下,越来越多的人士逐渐认识到用计算机技术进行各类管理,交流的便捷,其中最突出的要算企事业单位的人事工资管理了,为了提高人事工资管理效率,减轻劳动强度,提高信息处理速度和准确性,在对其组成结构和系统功能进行了全面地分析,提出了人事工资管理系统的实现和解决方案,该方案利用计算机支持高效率地完成人事工资管理的日常事务,是适应现代企事业单位制度要求、推动企事业单位人事工资管理走向科学化、规范化的必要条件。)

设计的思路:

应该以Visual

Basic6.0为开发语言和ACCESS2000为数据库以及其他第三方控件等软件作为设计工具,以工资为对象,开发的一个能够满足企事业单位的工资管理的要求的“人事工资管理系统”。

要求本系统具有完成单位人员工资管理的全过程,包括用户管理,员工管理,维护不同职务,职称,其他工资的工资标准以及浏览与结算和查询等。

关键词:工资管理系统

VB

ACCESS

无私的老虎
冷酷的银耳汤
2026-04-27 01:45:13
*/#include "stdafx.h"

#include "iostream"

#include "string"

#include "list"

#include "cassert"

using namespace std

struct employee{

string m_num//编号

string m_name//姓名

string m_dep//部门

double m_salary//应付工资

double m_insurance//保险

double m_tax//税金

}list<employee>empsint _tmain(int argc, _TCHAR* argv[])

{

void print(const employee &e)

void input()

void del()

void mod()

void show_all()

void show_name()

void show_dep()cout<<"简易职工薪水管理程序 by 做他\n"// delete this line

cout<<"版权没有 请随意复制或修改任何代码\n"//delete this linecout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"

int choose=0

cin>>choose

assert(!cin.fail())

while (choose!=6)

{

if (choose==1) input()

if (choose==2) del()

if (choose==3) mod()

if (choose==4)

{

int choice=0

cout<<"请选择操作 1.按姓名查询 2.按部门查询 3.退出:"

cin>>choice

if (choice==1) show_name()

if (choice==2) show_dep()

if (choice==3)

{

cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"

cin>>choose

assert(!cin.fail())

continue

}

}

if (choose==5) show_all()

cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"

cin>>choose

assert(!cin.fail())

}

return 0

}void print(const employee &e)

{

cout<<"编号:"<<e.m_num<<endl

cout<<"姓名:"<<e.m_name<<endl

cout<<"部门:"<<e.m_dep<<endl

cout<<"保险:"<<e.m_insurance<<endl

cout<<"税金:"<<e.m_tax<<endl

cout<<"应付工资:"<<e.m_salary<<endl

cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl

}void input()

{

string num,name,dep

double salary,ins,tax

cout<<"请输入员工编号:"

cin>>num

cout<<"请输入员工姓名:"

cin>>name

cout<<"请输入员工部门:"

cin>>dep

cout<<"请输入员工保险:"

cin>>ins

assert(!cin.fail())

cout<<"请输入员工税金:"

cin>>tax

assert(!cin.fail())

cout<<"请输入员工应付工资:"

cin>>salary

assert(!cin.fail())

employee temp

temp.m_dep=dep

temp.m_insurance=ins

temp.m_name=name

temp.m_num=num

temp.m_salary=salary

temp.m_tax=tax

emps.push_back(temp)

cout<<"员工录入操作完毕.\n"

}void del()

{

if (emps.size()==0)

{

cout<<"没有员工记录.\n"

return

}

string name

bool isfind=false

cout<<"请输入要删除的员工姓名:"

cin>>name

list<employee>::iterator iter

for (iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_name==name)

{

isfind=true

emps.erase(iter)

cout<<"姓名为\""<<name<<"\"的员工记录已删除.\n"

return

}

}

if (!isfind)

{

cout<<"没有找到姓名为\""<<name<<"\"的员工.\n"

return

}

}void mod()

{

if (emps.size()==0)

{

cout<<"员工记录为空.\n"

return

}

bool isfind=false

string name

cout<<"请输入要修改的员工姓名:"

cin>>name

list<employee>::iterator iter

for (iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_name==name)

{

isfind=true

cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n"

break

}

}

if (isfind)

{

string num,name,dep

double tax,ins,salary

print(*iter)

cout<<endl

cout<<"请输入新的员工编号:"

cin>>num

cout<<"请输入新的员工姓名:"

cin>>name

cout<<"请输入新的员工部门:"

cin>>dep

cout<<"请输入新的员工保险:"

cin>>ins

assert(!cin.fail())

cout<<"请输入新的员工税金:"

cin>>tax

assert(!cin.fail())

cout<<"请输入新的员工工资:"

cin>>salary

assert(!cin.fail())

iter->m_dep=dep

iter->m_insurance=ins

iter->m_name=name

iter->m_num=num

iter->m_salary=salary

iter->m_tax=tax

cout<<"1 员工记录被成功修改.\n"

}

else

{

cout<<"没有找到姓名为\""<<name<<"\"的员工记录.\n"

}

}void show_all()

{

if (emps.size()==0)

{

cout<<"员工记录为空.\n"

return

}

cout<<"显示全体员工数据:\n"

cout<<"--------------------\n"

list<employee>::iterator iter

for(iter=emps.begin()iter!=emps.end()iter++)

{

cout<<endl

print(*iter)

cout<<endl

}

cout<<"--------------------\n"

}void show_name()

{

if (emps.size()==0)

{

cout<<"员工记录为空.\n"

return

}

bool isfind=false

string name

cout<<"请输入要查询的员工姓名:"

cin>>name

list<employee>::iterator iter

for(iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_name==name)

{

isfind=true

cout<<"姓名为\""<<name<<"\"的员工记录已找到.\n"

print(*iter)

break

}

}

if (!isfind)

{

cout<<"没有找到姓名为\""<<name<<"\"的员工.\n"

return

}

}void show_dep()

{

if (emps.size()==0)

{

cout<<"员工记录为空.\n"

return

}

double isfind=0.00

double total_salary=0.00

string dep

cout<<"请输入要查询的部门名称:"

cin>>dep

cout<<"部门["<<dep<<"]的员工信息:\n"

cout<<"--------------------\n\n"

list<employee>::iterator iter

for(iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_dep==dep)

{

isfind++

total_salary+=iter->m_salary

print(*iter)

cout<<endl

continue

}

}

cout<<"--------------------\n"

if (isfind==0)

{

cout<<"没有找到名称为["<<dep<<"]的部门.\n"

}

else

{

cout<<"部门["<<dep<<"]工资统计:\n"

cout<<"工资总额:"<<total_salary<<endl

cout<<"平均工资:"<<total_salary/isfind<<endl

}

}

等待的电源
复杂的中心
2026-04-27 01:45:13
#include <stdio.h>

#include <windows.h>

#include <time.h>

#include <string.h>

#define N 100

struct employee

{

int num

char name[10]

char zhicheng

int jiben

int jiangjin

int baoxian

int zafei

int shiji

}em[100]

void menu()

void input()

void save(int)

void display()

void del()

void search()

void search_zhicheng()

void search_name()

void modify()

void menu()

{

printf("\n")

printf(" 网计091 第7小组\n")

printf("\n")

printf("******************职工信息管理****************\n")

printf(" 1.录入职工信息")

printf(" 2.浏览职工信息\n")

printf(" 3.查询职工信息")

printf(" 4.删除职工信息\n")

printf(" 5.修改职工信息\n")

printf(" 6.退出\n")

printf("********************谢谢使用******************\n")

printf("\n")

printf("\n")

}

void main()

{

int n,flag

char a

while(1)

{

do

{

menu()

printf("请选择你需要操作的步骤(1--6):\n")

scanf("%d",&n)

if(n>=1&&n<=6)

{

flag=1

break

}

else

{

flag=0

printf("您输入有误,请重新选择!")

}

}while(flag==0)

switch(n)

{

case 1:printf(" 输入职工信息\n")printf("\n")input()break

case 2:printf(" 浏览职工信息\n")printf("\n")system("cls")display()break

case 3:printf(" 按职工号查询职工信息\n")printf("\n")system("cls")search()break

case 4:printf(" 删除职工信息\n")printf("\n")system("cls")del()break

case 5:printf(" 修改职工信息\n")printf("\n")system("cls")modify()break

case 6:goto la

default :break

}

}

la:

system("cls")

printf("\n\n\n\n\n谢谢使用!\n")

}

void input()

{

int i,m

printf("请输入需要创建信息的职工人数(1--100):\n")

scanf("%d",&m)

for (i=0i<mi++)

{

printf("请输入职工号: ")

scanf("%d",&em[i].num) //这里的代码错,要用数组下标

printf("\n")

printf("请输入姓名: ")

scanf("%s",em[i].name)//这里的代码错,要用数组下标

getchar()

printf("请输入职称: ")

scanf("%c",&em[i].zhicheng)//这里的代码错,要用数组下标

printf("请输入基本工资: ")

scanf("%d",&em[i].jiben)//这里的代码错,要用数组下标

printf("请输入奖金: ")

scanf("%d",&em[i].jiangjin)//这里的代码错,要用数组下标

printf("请输入保险: ")

scanf("%d",&em[i].baoxian)//这里的代码错,要用数组下标

printf("请输入杂费: ")

scanf("%d",&em[i].zafei)//这里的代码错,要用数组下标

em[i].shiji=em[i].jiben + em[i].jiangjin - em[i].baoxian - em[i].zafei//这里的代码错,要用数组下标

printf("\n")

}

printf("\n创建完毕!\n")system("cls")

save(m)

}

void save(int m)

{

int i

FILE*fp

if ((fp=fopen("employee_list","wb"))==NULL)

{

printf ("cannot open file\n")

exit(0)

}

for (i=0i<mi++)

if (fwrite(&em,sizeof(struct employee),1,fp)!=1)

printf("file write error\n")

fclose(fp)

}

int load()

{

FILE*fp

int i=0

if((fp=fopen("employee_list","rb"))==NULL)

{

printf ("cannot open file\n")

exit(0)

}

else

{

do

{

fread(&em,sizeof(struct employee),1,fp)

i++

}

while(feof(fp)==0)

}

fclose(fp)

return(i-1)

}

void display()

{

int i

int m=load()

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

for(i=0i<mi++)

printf("\n %d\t %s\t %c\t %d\t %d\t %d\t %d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)//这里的代码错,要用数组下标

printf("按任意键继续\n")

getchar()getchar()system("cls")

}

void del()

{

int m=load()

int i,j,n,t,flag

char name1[10]

printf("\n 原来的职工信息:\n")

display()

printf("\n")

printf("请输入要删除的职工的姓名:\n")

scanf("%s",name1)

for(flag=1,i=0flag&&i<mi++)

{

if(strcmp(em[i].name,name1)==0)

{

printf("\n已找到此人,原始记录为:\n")

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

printf("\n确实要删除此人信息请按1,不删除请按0\n")

scanf("%d",&n)

if(n==1)

{

for(j=ij<m-1j++)

{

em[j]=em[j+1]

}

flag=0

}

}

}

if(!flag)

m=m-1

else

printf("\n对不起,查无此人!\n")

printf("\n 浏览删除后的所有职工信息:\n")

save(m)

display()

printf("\n继续删除请按1,不再删除请按0\n")

scanf("%d",&t)

switch(t)

{

case 1:del()break

case 0:break

default :break

}system("cls")

}

void search()

{

int t,flag

do

{

printf("\n按姓名查询请按1 按职称查询请按2 进入主函数按3\n")

scanf("%d",&t)

if(t>=1&&t<=3)

{

flag=1

break

}

else

{

flag=0

printf("您输入有误,请重新选择!")

}

}while(flag==0)system("cls")

while(flag==1)

{

switch(t)

{

case 1:printf("按姓名查询\n")search_name()break

case 2:printf("按职称查询\n")search_zhicheng()break

case 3:main()break

default:break

}

system("cls")

}

}

void search_name()

{

char name1[10]

int i,t

int m=load()

printf("请输入要查找的姓名:\n")

scanf("%s",name1)

for(i=0i<mi++)

if(strcmp(name1,em[i].name)==0)

{

printf("\n已找到此人,其记录为:\n")

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

break

}

if(i==m)

printf("\n对不起,查无此人\n")

printf("\n")

printf("返回查询函数请按1,继续查询职工号请按2\n")

scanf("%d",&t)

switch(t)

{

case 1:search()break

case 2: break

default:break

}

}

void search_zhicheng()

{

char zhicheng

int i,t=0

int m=load()

system("cls")

printf("请输入要查找的职称:\n")

scanf("%c",&zhicheng) //这里要用地址

for(i=0i<mi++)

if(em[i].zhicheng==zhicheng)

{

printf("\n已找到,其记录为:\n")

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

}

if(i==m)

printf("\n对不起,查无此人\n")

printf("\n")

printf("返回查询函数请按1,继续查询学历请按2\n")

scanf("%d",&t)

switch(t)

{

case 1:system("cls")search()break

case 2:break

default :break

}

}

void modify()

{

int num

char name[10]

char zhicheng

int jiben

int jiangjin

int baoxian

int zafei

int shiji

int b,c,i,n,t,flag

int m=load()

printf("\n 原来的职工信息:\n")

display()

printf("\n")

printf("请输入要修改的职工的姓名:\n")

scanf("%s",name)

for(flag=1,i=0flag&&i<mi++)

{

if(strcmp(em[i].name,name)==0)

{

printf("\n已找到此人,原始记录为:\n")

printf("\n职工号\t姓名\t职称\t基本\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

printf("\n确实要修改此人信息请按1 不修改请按0\n")

scanf("%d",&n)

if(n==1)

{

printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.职称 4.基本工资 5.奖金 6.保险 7.杂费 8.实际工资\n")

printf("请输入你想修改的那一项序号:\n")

scanf("%d",&c)

if(c>8||c<1)

printf("\n选择错误,请重新选择!\n")

}

flag=0

}

}

if(flag==1)

printf("\n对不起,查无此人!\n")

do

{

switch(c)

{

case 1:printf("职工号改为: ")

scanf("%d",&num)

em[i-1].num=num

break

case 2:printf("姓名改为: ")

scanf("%s",name)

strcpy(em[i-1].name,name)

break

case 3:printf("职称改为: ")

getchar()

scanf("%c",&zhicheng)

em[i-1].zhicheng=zhicheng

break

case 4:printf("基本工资改为: ")

scanf("%d",&jiben)

em[i-1].jiben=jiben

break

case 5:printf("奖金改为: ")

scanf("%d",&jiangjin)//这里要用地址

em[i-1].jiangjin=jiangjin

break

case 6:printf("保险改为: ")

scanf("%d",&baoxian)//这里要用地址

break

case 7:printf("杂费改为: ")

scanf("%d",&zafei)//这里要用地址

em[i-1].zafei=zafei

break

case 8:printf("实际工资改为: ")

scanf("%d",&shiji)

em[i-1].shiji=shiji

break

}

printf("\n")

printf("\n是否确定所修改的信息?\n 是 请按1 不,重新修改 请按2: \n")

scanf("%d",&b)

}

while(b==2)

printf("\n浏览修改后的所有职工信息:\n")

printf("\n")

save(m)

display()

printf("\n继续修改请按1,不再修改请按0\n")

scanf("%d",&t)

switch(t)

{

case 1:modify()break

case 0:break

default :break

}system("cls")

}

儒雅的牛排
震动的野狼
2026-04-27 01:45:13
#include <stdio.h>

#include <windows.h>

#include <time.h>

#include <string.h>

#define N 100

struct employee

{

int num

char name[10]

char zhicheng

int jiben

int jiangjin

int baoxian

int zafei

int shiji

}em[100]

void menu()

void input()

void save(int)

void display()

void del()

void search()

void search_zhicheng()

void search_name()

void modify()

void menu()

{

printf("\n")

printf(" 网计091 第7小组\n")

printf("\n")

printf("******************职工信息管理****************\n")

printf(" 1.录入职工信息")

printf(" 2.浏览职工信息\n")

printf(" 3.查询职工信息")

printf(" 4.删除职工信息\n")

printf(" 5.修改职工信息\n")

printf(" 6.退出\n")

printf("********************谢谢使用******************\n")

printf("\n")

printf("\n")

}

void main()

{

int n,flag

char a

while(1)

{

do

{

menu()

printf("请选择你需要操作的步骤(1--6):\n")

scanf("%d",&n)

if(n>=1&&n<=6)

{

flag=1

break

}

else

{

flag=0

printf("您输入有误,请重新选择!")

}

}while(flag==0)

switch(n)

{

case 1:printf(" 输入职工信息\n")printf("\n")input()break

case 2:printf(" 浏览职工信息\n")printf("\n")system("cls")display()break

case 3:printf(" 按职工号查询职工信息\n")printf("\n")system("cls")search()break

case 4:printf(" 删除职工信息\n")printf("\n")system("cls")del()break

case 5:printf(" 修改职工信息\n")printf("\n")system("cls")modify()break

case 6:goto la

default :break

}

}

la:

system("cls")

printf("\n\n\n\n\n谢谢使用!\n")

}

void input()

{

int i,m

printf("请输入需要创建信息的职工人数(1--100):\n")

scanf("%d",&m)

for (i=0i<mi++)

{

printf("请输入职工号: ")

scanf("%d",&em[i].num) //这里的代码错,要用数组下标

printf("\n")

printf("请输入姓名: ")

scanf("%s",em[i].name)//这里的代码错,要用数组下标

getchar()

printf("请输入职称: ")

scanf("%c",&em[i].zhicheng)//这里的代码错,要用数组下标

printf("请输入基本工资: ")

scanf("%d",&em[i].jiben)//这里的代码错,要用数组下标

printf("请输入奖金: ")

scanf("%d",&em[i].jiangjin)//这里的代码错,要用数组下标

printf("请输入保险: ")

scanf("%d",&em[i].baoxian)//这里的代码错,要用数组下标

printf("请输入杂费: ")

scanf("%d",&em[i].zafei)//这里的代码错,要用数组下标

em[i].shiji=em[i].jiben + em[i].jiangjin - em[i].baoxian - em[i].zafei//这里的代码错,要用数组下标

printf("\n")

}

printf("\n创建完毕!\n")system("cls")

save(m)

}

void save(int m)

{

int i

FILE*fp

if ((fp=fopen("employee_list","wb"))==NULL)

{

printf ("cannot open file\n")

exit(0)

}

for (i=0i<mi++)

if (fwrite(&em,sizeof(struct employee),1,fp)!=1)

printf("file write error\n")

fclose(fp)

}

int load()

{

FILE*fp

int i=0

if((fp=fopen("employee_list","rb"))==NULL)

{

printf ("cannot open file\n")

exit(0)

}

else

{

do

{

fread(&em,sizeof(struct employee),1,fp)

i++

}

while(feof(fp)==0)

}

fclose(fp)

return(i-1)

}

void display()

{

int i

int m=load()

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

for(i=0i<mi++)

printf("\n %d\t %s\t %c\t %d\t %d\t %d\t %d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)//这里的代码错,要用数组下标

printf("按任意键继续\n")

getchar()getchar()system("cls")

}

void del()

{

int m=load()

int i,j,n,t,flag

char name1[10]

printf("\n 原来的职工信息:\n")

display()

printf("\n")

printf("请输入要删除的职工的姓名:\n")

scanf("%s",name1)

for(flag=1,i=0flag&&i<mi++)

{

if(strcmp(em[i].name,name1)==0)

{

printf("\n已找到此人,原始记录为:\n")

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

printf("\n确实要删除此人信息请按1,不删除请按0\n")

scanf("%d",&n)

if(n==1)

{

for(j=ij<m-1j++)

{

em[j]=em[j+1]

}

flag=0

}

}

}

if(!flag)

m=m-1

else

printf("\n对不起,查无此人!\n")

printf("\n 浏览删除后的所有职工信息:\n")

save(m)

display()

printf("\n继续删除请按1,不再删除请按0\n")

scanf("%d",&t)

switch(t)

{

case 1:del()break

case 0:break

default :break

}system("cls")

}

void search()

{

int t,flag

do

{

printf("\n按姓名查询请按1 按职称查询请按2 进入主函数按3\n")

scanf("%d",&t)

if(t>=1&&t<=3)

{

flag=1

break

}

else

{

flag=0

printf("您输入有误,请重新选择!")

}

}while(flag==0)system("cls")

while(flag==1)

{

switch(t)

{

case 1:printf("按姓名查询\n")search_name()break

case 2:printf("按职称查询\n")search_zhicheng()break

case 3:main()break

default:break

}

system("cls")

}

}

void search_name()

{

char name1[10]

int i,t

int m=load()

printf("请输入要查找的姓名:\n")

scanf("%s",name1)

for(i=0i<mi++)

if(strcmp(name1,em[i].name)==0)

{

printf("\n已找到此人,其记录为:\n")

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

break

}

if(i==m)

printf("\n对不起,查无此人\n")

printf("\n")

printf("返回查询函数请按1,继续查询职工号请按2\n")

scanf("%d",&t)

switch(t)

{

case 1:search()break

case 2: break

default:break

}

}

void search_zhicheng()

{

char zhicheng

int i,t=0

int m=load()

system("cls")

printf("请输入要查找的职称:\n")

scanf("%c",&zhicheng) //这里要用地址

for(i=0i<mi++)

if(em[i].zhicheng==zhicheng)

{

printf("\n已找到,其记录为:\n")

printf("\n职工号\t姓名\t职称\t基本工资\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

}

if(i==m)

printf("\n对不起,查无此人\n")

printf("\n")

printf("返回查询函数请按1,继续查询学历请按2\n")

scanf("%d",&t)

switch(t)

{

case 1:system("cls")search()break

case 2:break

default :break

}

}

void modify()

{

int num

char name[10]

char zhicheng

int jiben

int jiangjin

int baoxian

int zafei

int shiji

int b,c,i,n,t,flag

int m=load()

printf("\n 原来的职工信息:\n")

display()

printf("\n")

printf("请输入要修改的职工的姓名:\n")

scanf("%s",name)

for(flag=1,i=0flag&&i<mi++)

{

if(strcmp(em[i].name,name)==0)

{

printf("\n已找到此人,原始记录为:\n")

printf("\n职工号\t姓名\t职称\t基本\t奖金\t保险\t杂费\t实际工资 \n")

printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%d\n",em[i].num,em[i].name,em[i].zhicheng,em[i].jiben,em[i].jiangjin,em[i].baoxian,em[i].zafei,em[i].shiji)

printf("\n确实要修改此人信息请按1 不修改请按0\n")

scanf("%d",&n)

if(n==1)

{

printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.职称 4.基本工资 5.奖金 6.保险 7.杂费 8.实际工资\n")

printf("请输入你想修改的那一项序号:\n")

scanf("%d",&c)

if(c>8||c<1)

printf("\n选择错误,请重新选择!\n")

}

flag=0

}

}

if(flag==1)

printf("\n对不起,查无此人!\n")

do

{

switch(c)

{

case 1:printf("职工号改为: ")

scanf("%d",&num)

em[i-1].num=num

break

case 2:printf("姓名改为: ")

scanf("%s",name)

strcpy(em[i-1].name,name)

break

case 3:printf("职称改为: ")

getchar()

scanf("%c",&zhicheng)

em[i-1].zhicheng=zhicheng

break

case 4:printf("基本工资改为: ")

scanf("%d",&jiben)

em[i-1].jiben=jiben

break

case 5:printf("奖金改为: ")

scanf("%d",&jiangjin)//这里要用地址

em[i-1].jiangjin=jiangjin

break

case 6:printf("保险改为: ")

scanf("%d",&baoxian)//这里要用地址

break

case 7:printf("杂费改为: ")

scanf("%d",&zafei)//这里要用地址

em[i-1].zafei=zafei

break

case 8:printf("实际工资改为: ")

scanf("%d",&shiji)

em[i-1].shiji=shiji

break

}

printf("\n")

printf("\n是否确定所修改的信息?\n 是 请按1 不,重新修改 请按2: \n")

scanf("%d",&b)

}

while(b==2)

printf("\n浏览修改后的所有职工信息:\n")

printf("\n")

save(m)

display()

printf("\n继续修改请按1,不再修改请按0\n")

scanf("%d",&t)

switch(t)

{

case 1:modify()break

case 0:break

default :break

}system("cls")

}

安静的飞鸟
机智的台灯
2026-04-27 01:45:13

工资结构最近很多朋友问我如何科学地设置工资结构。完善的工资结构应包括固定工资基本工资、职级工资、工龄工资、津贴流动工资奖金、扣除额、奖金等福利工资租房补贴、交通补贴、通信补贴、伙食费、节日补贴等社会保障、扣除、加班等薪酬管理的原则工资设计,要遵循大基本原则补偿性原则、公平原则、透明度原则、激励性原则、竞争原则、经济性原则、合法性原则。

补偿原则工资要保证员工收入能充分补偿劳动力再生产费用,这不仅是对员工工作恢复的补偿。还必须包括必要的衣服、食物、住宿、行费,以及为了补偿职员而获得工作所需的知识、技能和生理发育以前支付的费用。公平原则根据行为科学理论,人们总是用自己付给组织的代价,从组织那里得到的报酬来与他人相称。如果他得到包括物质补偿、津贴、奖金、福利等精神上的社会杂志在内的报酬。

位置、受人尊敬的程度等他自己付出的代价是他花费的体力、精神力量、过去的学习和成长而付出的。与支出的费用和产量相比,如果低于其他人的相应比例,可能会发生一系列消极行为,如利息怠工、辞职和攻击其他等,工资分配要全面考虑员工的业绩、能力、劳动强度、责任等因素,并考虑外部竞争力,内部一致性要求。透明度原则奖励方案必须公开,让员工了解自己获得的所有利益,了解其利益和贡献、能力、选票

目前的连接是为了充分发挥物质利益的激励作用。激励原则有效的薪酬管理应该能刺激员工努力工作,做出更多贡献,有助于吸引、维持和激励员工。工资薪酬管理系统的重点是建立这样的系统。竞争原则一个组织的工资,缺乏吸引力,只会留下只想维持自己的职位和报酬的普通职员周边、素质高、能力强的优秀员工很难维持。经济原则补偿是产品成本的一部分,补偿标准设计得太高,有竞争性和激励作用,但不能。