c语言程序工资
A. 用c语言编程某单位进行工资调整,要求按技术等级分为A,B,C, D四个档次进行调整
从题意,程序需要先输入工资信息,再根据技术等级对应系数调整工资,以后打印工资信息。
单位工资信息一般包含员工编号,姓名,工资等,适合用结构类型存储。
技术等级ABCD对应一个调整系数,这是一组有关联的常量,适合用枚举。
下面是代码,工资我用的是整型,计算系数是整除,需要浮点数,自行修改类型。员工人数修改常量PN,我测试用3个员工。
#include<stdio.h>
#define PN 3//员工数量
enum tLevel{ A = 110, B= 120, C = 130, D = 140};//技术级别ABCD对应调整系数%
typedef struct personnel
{
int id;//员工编号,唯一
char pName[20];//员工姓名
int basePay;//基础工资
enum tLevel tll;
}PERL;
void init(PERL *perl);
void show(PERL *perl);
int main()
{
PERL perl[PN];
init(perl);
show(perl);
return 0;
}
void show(PERL *perl)
{
int i;
printf(" 员工工资表: ");
for(i=0;i<PN;i++)
{
printf("员工编号%d: ",perl[i].id);
printf("员工姓名%s: ",perl[i].pName);
printf("基本工资%d: ",perl[i].basePay);
printf("等级系数%d: ",perl[i].tll);
printf("结算工资%d: ",perl[i].basePay*perl[i].tll/100);
}
}
void init(PERL *perl)
{
static int id=1;//自增,作为唯一的员id
int i;
char lv[2]={0};
printf("输入%d个员工信息! ",PN);
for(i=0;i<PN;i++,id++)
{
printf("请输入员工姓名:"),scanf("%s",perl[i].pName);
printf("请输入基础工资:"),scanf("%d",&perl[i].basePay);
while(lv[0]<'A' || lv[0]>'D')
printf("请输入员技术等级(A~D):"),scanf("%s",lv);
switch(lv[0])
{
case 'A':perl[i].tll=A;break;
case 'B':perl[i].tll=B;break;
case 'C':perl[i].tll=C;break;
case 'D':perl[i].tll=D;break;
}
lv[0]=0;
perl[i].id=id;
printf(" ");
}
}
B. C语言计算工资的代码
源代码中,你的if语句里面两个表达式是用逗号分开的,这样并不能满足两个条件都满足的要求
现修改代码如下,
#include<stdio.h>
intmain()
{
inty,t;
doublem;
scanf("%d%d",&y,&t);
if(y<5&&t<=40)//使用&&表示要求两个条件都满足
printf("%.2f",m=t*30);
elseif(y<5&&t>40)
printf("%.2f",m=40*30+(t-40)*30*1.5);
elseif(y>=5&&t<=40)
printf("%.2f",m=t*50);
else
printf("%.2f",m=40*50+(t-40)*50*1.5);
}
C. 用C语言编写一个计算薪水的程序
/*工资计算程序*/
#include <stdio.h>
main()
{
float originWage; /*应发工资*/
float realWage; /*实发工资*/
float tax; /*所缴税款*/
int i,hour,amount,money;
printf("请选择工资种类:\n1.计时工资\n2.计件工资\n3.固定月工资\n");
scanf("%d",&i);
switch(i)
{
case 1:{
printf("请输入工作时间(单位:小时)\n");
scanf("%d",&hour);
printf("请输入单位时间的薪水(单位:元)\n");
scanf("%f",&money);
originWage=money*hour;
}
break;
case 2:{
printf("请输入生产产品数量(单位:件)\n");
scanf("%d",&amount);
printf("请输入生产一件产品的薪水(单位:元)\n");
scanf("%f",&money);
originWage=money*amount;
}
break;
case 3: printf("请输入你的固定工资\n");
scanf("%f",&originWage);
break;
default:printf("输入错误!\n");
return 0;
}
if(originWage<0)
{
printf("数据错误!\n");
return 0;
}
if(originWage<2000)
tax=0;
else if(originWage>2000&&originWage<=2500)
tax=(originWage-2000)*0.05;
else if(originWage>2500&&originWage<=4000)
tax=(originWage-2500)*0.1+500*0.05;
else
tax=(originWage-4000)*0.15+1500*0.1+500*0.05;
printf("应发工资: %f\n",originWage);
printf("所缴税款: %f\n",tax);
printf("实发工资: %f\n",originWage-tax);
return 0;
}
D. c语言:编写程序,输入月薪数a,计算并输出税率、应缴税款和实得奖金数。
#include <stdio.h>
void main()
{
double a, rate;
int c,tax,profit;
printf("输入奖金数:");
scanf("%lf",&a);
if(a>=5000)c=10;
else c=a/500;
switch(c) {
case 0: rate=0; break;
case 1: rate=0.05; break;
case 2:
case 3:
case 4: rate=0.08; break;
case 5:
case 6:
case 7:
case 8:
case 9: rate=0.10; break;
case 10: rate=0.15; break;
}
printf("%d",c);
tax=(a*rate);
profit=(int)(a-tax);
printf("税率为%lf,应缴税款为%d,实得奖金数为%d\n",rate,tax,profit);
}