編程LV級
① 用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(" ");
}
}