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);
}