编程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(" ");
}
}