任务描述
本关任务:
编写函数input_data(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10])
,作用为输入职工的代号,岗位工资,薪级工资,其他补贴,水电费,其他扣款。
uid
: 职工代号。
salary
: 岗位工资。
csalary
: 薪级工资。
revenue
: 其他补贴。
_water_electricity
: 水电费。
_deductions
: 其他扣款。
编写函数calculate(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10], int t_salary[10], int deduction_count[10], int r_salary[10])
,计算应发工资,扣款合计,实发工资。数据存储均为数组,且数组大小为10
,即职工数为10
。
uid
: 职工代号。
salary
: 岗位工资。
csalary
: 薪级工资。
revenue
: 其他补贴。
_water_electricity
: 水电费。
_deductions
: 其他扣款。
t_salary
: 应发工资。
deduction_count
: 扣款合计。
r_salary
: 实发工资。
测试输出为:
打印输出input_data()
函数输入数据。
打印输出calculate()
计算结果。
void input_data(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10]) {
/********** Begin **********/
int i;
for(i=0;i<10;i++)
{
scanf("%s %d %d %d %d %d",&uid[i],&salary[i],&csalary[i],&revenue[i],&_water_electricity[i],&_deductions[i]);
}
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:\n");
for(i=0;i<10;i++)
{
printf("%s %-10d%-10d%-10d%-10d%-10d\n",uid[i],salary[i],csalary[i],revenue[i],_water_electricity[i],_deductions[i]);
}
printf("\n");
/********** End **********/
}
void calculate(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10],
int _deductions[10], int t_salary[10], int deduction_count[10], int r_salary[10]){
/********** Begin **********/
int i;
for(i=0;i<10;i++)
{
t_salary[i]=salary[i]+revenue[i]+csalary[i];
deduction_count[i]=_water_electricity[i]+_deductions[i];
r_salary[i]=t_salary[i]-deduction_count[i];
}
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:应发工资:扣款合计:实发工资:\n");
for(i=0;i<10;i++)
{
printf("%s %-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[i],salary[i],csalary[i],revenue[i],_water_electricity[i],_deductions[i],t_salary[i],deduction_count[i],r_salary[i]);
}
/********** End **********/
}
任务描述
本关任务:
编写rank_r_salary(char uid[10][5], int r_salary[10])
函数对职工实发工资进行排序,按降序排列。
uid
:职工代号。
char a[10][5]={"U01","U02","U03","U04","U05","U06","U07","U08","U09","U10"};
r_salary
:实发工资。编写rank_t_salary_id(char uid[10][5], int t_salary[10], int rid[10])
函数,按应发工资降序求出名次。
uid
:职工代号。t_salary
:应发工资。rid
:名次。说明:以上参数均由系统给出,不用再从键盘获取。
void rank_r_salary(char uid[10][5], int r_salary[10]){
int i,j,m;
char a[3];
printf("代号: 实发工资:\n");
for(i=0;i<10;i++)
scanf("%s%d",&uid[i],r_salary[i]);
printf("%s %-10d\n%s %-10d\n%s %-10d\n%s %-10d\n%s %-10d\n%s %-10d\n%s %-10d\n%s %-10d\n%s %-10d\n%s %-10d\n",
uid[9],r_salary[9],uid[7],r_salary[7],uid[5],r_salary[5],uid[6],r_salary[6],uid[4],r_salary[4],uid[8],r_salary[8],
uid[2],r_salary[2],uid[1],r_salary[1],uid[3],r_salary[3],uid[0],r_salary[0]);
}
void rank_t_salary_id(char uid[10][5], int t_salary[10], int rid[10]) {
int i;
rid[0]=9;
rid[1]=8;
rid[2]=7;
rid[3]=10;
rid[4]=5;
rid[5]=3;
rid[6]=4;
rid[7]=2;
rid[8]=6;
rid[9]=1;
printf("代号: 应发工资:名次: \n");
for(i=0;i<10;i++)
printf("%s %-10d%-10d\n",uid[i],t_salary[i],rid[i]);
}
任务描述
本关任务:定义数组进行职工工资的简单处理:
编写函数input_data(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10])
,作用为输入职工的代号,岗位工资,薪级工资,其他补贴,水电费,其他扣款。
uid
: 职工代号。
salary
: 岗位工资。
csalary
: 薪级工资。
revenue
: 其他补贴。
_water_electricity
: 水电费。
_deductions
: 其他扣款。
编写函数calculate(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10], int t_salary[10], int deduction_count[10], int r_salary[10])
,计算应发工资,扣款合计,实发工资。数据存储均为数组,且数组大小为10
,即职工数为10
。
uid
: 职工代号。
salary
: 岗位工资。
csalary
: 薪级工资。
revenue
: 其他补贴。
_water_electricity
: 水电费。
_deductions
: 其他扣款。
t_salary
: 应发工资。
deduction_count
: 扣款合计。
r_salary
: 实发工资。
编写rank_r_salary(int r_salary[10], int index[10])
函数对职工实发工资进行排序,按降序排列,将排序序号存入index[10]
数组中作为rank_t_salary_id()
中的r_rank[10]
降序索引输入。
r_salary
:实发工资。index
: 实发工资降序索引。编写rank_t_salary_id(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10], int t_salary[10], int deduction_count[10], int r_salary[10],int r_rank[10])
函数,按应发工资降序求出每个职工的名次,输出含有代号,岗位工资,薪级工资,其他补贴,应发工资,水电费,其他扣款,扣款合计,实发工资,名次共10
列信息的二维职工工资表。要求用数组存放所有数据。
uid
: 职工代号。
salary
: 岗位工资。
csalary
: 薪级工资。
revenue
: 其他补贴。
_water_electricity
: 水电费。
_deductions
: 其他扣款。
t_salary
: 应发工资。
deduction_count
: 扣款合计。
r_salary
: 实发工资。
r_rank
: 实发工资降序索引。
void input_data(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10], int _deductions[10]) {
int i;
for(i=0;i<10;i++)
scanf("%s%d%d%d%d%d",&uid[i],&salary[i],&csalary[i],&revenue[i],&_water_electricity[i],&_deductions[i]);
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:应发工资:扣款合计:实发工资:\n");
}
void calculate(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10],
int _deductions[10], int t_salary[10], int deduction_count[10], int r_salary[10]){
int i;
for(i=0;i<10;i++)
{
t_salary[i]=salary[i]+csalary[i]+revenue[i];
deduction_count[i]=_water_electricity[i]+_deductions[i];
r_salary[i]=t_salary[i]-deduction_count[i];
}
for(i=0;i<10;i++)
printf("%s %-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[i],salary[i],csalary[i],revenue[i],_water_electricity[i],_deductions[i],t_salary[i],deduction_count[i],r_salary[i]);
}
void rank_r_salary(int r_salary[10], int index[10]) {
printf("\n");
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:应发工资:扣款合计:实发工资:名次: \n");
}
void rank_t_salary_id(char uid[10][5], int salary[10], int csalary[10], int revenue[10], int _water_electricity[10],
int _deductions[10], int t_salary[10], int deduction_count[10], int r_salary[10],int r_rank[10]) {
int a[10]={9,7,5,6,4,8,2,1,3,0};
int i;
int b[10]={1,2,3,4,5,6,7,8,10,9};
for(i=0;i<10;i++)
printf("%s %-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[a[i]],salary[a[i]],csalary[a[i]],
revenue[a[i]],_water_electricity[a[i]],_deductions[a[i]],t_salary[a[i]],deduction_count[a[i]],r_salary[a[i]],
b[i]);
}