第1关:数据输入和计算
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,j,k;
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]);
}
/********** 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,j,k;
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];
}
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:\n");
for(i=0;i<10;i++)
{
printf("%-10s%-10d%-10d%-10d%-10d%-10d\n",uid[i],salary[i],csalary[i],revenue[i],_water_electricity[i],_deductions[i]);
}
printf("\n");
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:应发工资:扣款合计:实发工资:\n");
for(i=0;i<10;i++)
{
printf("%-10s%-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 **********/
}
第2关:工资排序
void rank_r_salary(char uid[10][5], int r_salary[10]) {
/********** Begin **********/
int max,i,k,j=0;int visit[10]={0};
max=r_salary[0];
printf("代号: 实发工资:\n");
for(k=0;k<10;k++)
{
for(i=0;i<10;i++)
{
if(r_salary[i]>max)
{
if(visit[i]==1)
continue;
else
{
max=r_salary[i];
j=i;
}
}
}
visit[j]=1;
printf("%-10s%-10d\n",uid[j],r_salary[j]);
j=0;
max=0;
}
/********** End **********/
}
void rank_t_salary_id(char uid[10][5], int t_salary[10], int rid[10]) {
/********** Begin **********/
int max,i,k,j=0;int visit[10]={0};
max=t_salary[0];
printf("代号: 应发工资:名次: \n");
for(k=0;k<10;k++)
{
for(i=0;i<10;i++)
{
if(t_salary[i]>max)
{
if(visit[i]==1)
continue;
else
{
max=t_salary[i];
j=i;
}
}
}
visit[j]=1;
rid[j]=k+1;
j=0;
max=0;
}
for(i=0;i<10;i++)
{
printf("%-10s%-10d%-10d\n",uid[i],t_salary[i],rid[i]);
}
/********** End **********/
}
第3关:打印工资表
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 b;
for(b=0;b<10;b++)
scanf("%s%d%d%d%d%d",uid[b],&salary[b],&csalary[b],&revenue[b],&_water_electricity[b],&_deductions[b]);
/********** 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 c,d;
for(c=0;c<10;c++)
{
t_salary[c]=salary[c]+csalary[c]+revenue[c];
deduction_count[c]=_water_electricity[c]+_deductions[c];
r_salary[c]=t_salary[c]-deduction_count[c];
}
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:应发工资:扣款合计:实发工资:\n");
d=0;
for(;d<10;d++)
{
if(d<9)
printf("%-10s%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[d],salary[d],csalary[d],revenue[d],_water_electricity[d],_deductions[d],t_salary[d],deduction_count[d],r_salary[d]);
else
printf("%-10s%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[d],salary[d],csalary[d],revenue[d],_water_electricity[d],_deductions[d],t_salary[d],deduction_count[d],r_salary[d]);
}
printf("\n");
/********** End **********/
}
void rank_r_salary(int r_salary[10], int index[10]) {
/********** Begin **********/
int max,i,k,j=0;int visit[10]={0};
max=r_salary[0];
for(k=0;k<10;k++)
{
for(i=0;i<10;i++)
{
if(r_salary[i]>max)
{
if(visit[i]==1)
continue;
else
{
max=r_salary[i];
j=i;
}
}
}
visit[j]=1;
index[j]=k+1;
j=0;
max=0;
}
/********** End **********/
}
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]) {
/********** Begin **********/
int max,i,k,j=0;int visit[10]={0};
max=r_salary[0];
printf("代号: 岗位工资:薪级工资:其他补贴:水电费: 其他扣款:应发工资:扣款合计:实发工资:名次: \n");
for(k=0;k<10;k++)
{
for(i=0;i<10;i++)
{
if(r_salary[i]>max)
{
if(visit[i]==1)
continue;
else
{
max=r_salary[i];
j=i;
}
}
}
visit[j]=1;
if(r_rank[j]==9)
{
r_rank[j]=r_rank[j]+1;
printf("%-10s%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[j],salary[j],csalary[j],revenue[j], _water_electricity[j],_deductions[j],t_salary[j],deduction_count[j],r_salary[j],r_rank[j]);
}
else if(r_rank[j]==10)
{
r_rank[j]=r_rank[j]-1;
printf("%-10s%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[j],salary[j],csalary[j],revenue[j], _water_electricity[j],_deductions[j],t_salary[j],deduction_count[j],r_salary[j],r_rank[j]);
}
else if(r_rank[j]!=10&r_rank[j]!=9)
printf("%-10s%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d%-10d\n",uid[j],salary[j],csalary[j],revenue[j], _water_electricity[j],_deductions[j],t_salary[j],deduction_count[j],r_salary[j],r_rank[j]);
j=0;
max=0;
}
/********** End **********/
}