基于数组的工资处理系统

第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 **********/
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值