头歌平台——基于数组的工资处理系统

news2024/11/19 1:23:48

第1关:数据输入和计算

任务描述

本关任务:

  • 编写函数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()计算结果。

相关知识

相关知识略

编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写数据输入和计算的小程序。

测试说明

平台会对你编写的代码进行测试:

测试输入:

U01 1000 800 400 97 100 U02 1200 800 400 82 100 U03 1500 1000 200 131 120 U04 1000 800 400 70 100 U05 1800 1000 200 120 120 U06 2500 1000 200 132 150 U07 2200 1000 200 147 120 U08 3000 1000 200 86 150 U09 1600 1000 200 111 100 U10 4000 1500 100 156 160

预期输出:

注意:

1. 输入数据如上面测试输入所示,实际评测集输入数据与之等同。 2. 输出间距为10个字符。


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("%-10s%-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 **********/

printf("代号:    岗位工资:薪级工资:其他补贴:水电费:  其他扣款:应发工资:扣款合计:实发工资:\n");
    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("%-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关:工资排序 

任务描述

本关任务:

  • 编写rank_r_salary(char uid[10][5], int r_salary[10])函数对职工实发工资进行排序,按降序排列。

  • uid:职工代号。

  • r_salary:实发工资。

  • 编写rank_t_salary_id(char uid[10][5], int t_salary[10], int rid[10])函数,按应发工资降序求出名次。

  • uid:职工代号。

  • t_salary:应发工资。

  • rid:名次。

说明:以上参数均由系统给出,不用再从键盘获取。

相关知识

相关知识略

编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写工资排序的小程序。

测试说明

平台会对你编写的代码进行测试:

预期输出为:

 


void rank_r_salary(char uid[10][5], int r_salary[10]) {
	/********** Begin **********/
int i,j,item;
    int k=0;
    char a[5];
    printf("代号:    实发工资:\n");
    for(i=0;i<9;i++)
    {
        for(j=i+1;j<10;j++)
        {
            if(r_salary[i]<r_salary[j])
            {
                item=r_salary[i];
                r_salary[i]=r_salary[j];
                r_salary[j]=item;
                while(uid[i][k]!='\0')
                {
                    a[k]=uid[i][k];
                    k=k+1;
                }
                a[k]='\0';
                k=0;
                while(uid[i][k]!='\0')
                {
                        uid[i][k]=uid[j][k];
                        k+=1;
                }
                uid[i][k]='\0';
                k=0;
                while(a[k]!='\0')
                {
                        uid[j][k]=a[k];
                        k=k+1;                          
                }
                uid[j][k]='\0';
                k=0;
            }
        }
    }
    for(i=0;i<10;i++)
    {
        printf("%s       %d      \n",uid[i],r_salary[i]);
    }




	/********** End **********/
}





void rank_t_salary_id(char uid[10][5], int t_salary[10], int rid[10]) {
	/********** Begin **********/


int i,j;
    printf("代号:    应发工资:名次:    \n");
    for(i=0;i<10;i++)
    {
        rid[i]=1;
    }
    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        {
            if(t_salary[i]<t_salary[j])
                rid[i]++;
        }
    }
    for(i=0;i<9;i++)
    {
        for(j=i+1;j<10;j++)
        {
            if(rid[i]==rid[j])
                rid[j]++;
        }
    }
    for(i=0;i<10;i++)
    {
        printf("U%02d       %d      %-6d    \n",i+1,t_salary[i],rid[i]);
   
    }


	/********** End **********/
}

 

第3关:打印工资表 

任务描述

本关任务:定义数组进行职工工资的简单处理:

  • 编写函数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: 实发工资降序索引。

相关知识

相关知识略

编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写打印工资表的小程序。

测试说明

平台会对你编写的代码进行测试:

测试输入:

U01 1000 800 400 97 100 U02 1200 800 400 82 100 U03 1500 1000 200 131 120 U04 1000 800 400 70 100 U05 1800 1000 200 120 120 U06 2500 1000 200 132 150 U07 2200 1000 200 147 120 U08 3000 1000 200 86 150 U09 1600 1000 200 111 100 U10 4000 1500 100 156 160

预期输出:

说明:第一张表为calculate()函数输出结果共9列。第二张表为rank_t_salary_id()函数输出结果共10列,以实发工资降序排序,名次为应发工资降序排序。每张表列宽为10个字符。

注意:输入数据如上面测试输入所示,实际评测集输入数据与之等同。

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1109757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW应用开发——控件的使用(二)

上篇介绍数值型控件和布尔型控件&#xff0c;这篇介绍字符串、路径控件、下拉框和数组控件。 LabVIEW应用开发——控件的使用&#xff08;一&#xff09; 1、字符串控件 实际应用中&#xff0c;字符串控件的显示很常用的&#xff0c;可用于显示串口信息、通讯交互信息、…

JAVA-记一次BigDecimal,String千分位转换

在显示类上面添加JsonSerialize注解&#xff0c;指定对应的转换格式例如&#xff0c;同理可在属性为BigDecimal的字段上添加注解&#xff0c;指定方法&#xff1a; private String userTypeStr;/*** 交易金额*/JsonSerialize(using StringSerialize.class)private String tran…

零基础制作电子期刊,不用担心不会设计排版

亲爱的朋友们&#xff0c;你是否想制作一本自己的电子期刊&#xff0c;但又担心不会设计排版&#xff1f;别担心&#xff01;今天我将教你如何零基础制作电子期刊&#xff0c;让你轻松上手&#xff01; 首先&#xff0c;你需要选择一个适合你的电子期刊模板。我们可以使用FLBOO…

智慧停车场项目-SpringBoot的Smart-parking

基于SpringBoot的Smart-parking 智慧停车场项目 介绍 基于 SpringBoot Vue 的智能停车场项目 系统首页 作者 如需本项目源代码&#xff0c;可扫码或者VX:zxd1534124905联系作者。 基础环境 JDK1.8、Maven、Mysql、IntelliJ IDEA、payCloud 相关组件 ok-adminvueiViewec…

文件批量管理:轻松复制备份并删除原文件

在日常生活和工作中&#xff0c;我们经常需要处理大量的文件。为了确保文件的安全性和完整性&#xff0c;您需要一种高效的文件批量管理方法。本文将向您介绍如何一一复制备份并删除原文件里的文件&#xff0c;让您的文件管理变得轻松便捷。 首先&#xff0c;我们要进入文件批…

Unity3D 基础——Coroutine 协同程序

Coroutine 称为协同程序或者协程&#xff0c;协同程序可以和主程序并行运行&#xff0c;和多线程有些类似。协同程序可以用来实现让一段程序等待一段时间后继续运行的效果。例如&#xff0c;执行步骤1&#xff0c;等待3秒&#xff1b;执行步骤2&#xff0c;等待某个条件为 true…

Web安全测试详解

前言 随着互联网时代的蓬勃发展&#xff0c;基于Web环境下的应用系统、应用软件也得到了越来越广泛的使用。 目前&#xff0c;很多企业的业务发展都依赖于互联网&#xff0c;比如&#xff0c;网上银行、网络购物、网络游戏等。但&#xff0c;由于很多恶意攻击者想通过截获他人…

狄克斯特拉(Dijkstra) 算法 php实现

《算法图解》中提到的狄克斯特拉算法&#xff0c;用php实现。 一 原理及解释 根据示例图求出起点到终点的最小耗费路径。 因为涉及每条路径的权重&#xff0c;所以这种算法仅适合有向路径。 所谓有向路径&#xff0c;指仅从起点指向终点的路径。 相对的无向路径&#xff0…

zookeeper(目前只有安装)

安装 流程 学kafka的时候安装 Apache ZooKeeper 安装地址&#xff1a;https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz 解压 tar -zxvf kafka_2.12-3.0.0.tgz -C /export/server/ 改配置 cd config cp zoo_sample.cfg z…

Harbor 安装部署

Harbor基本介绍 1、Harbor 是 VMware 公司开源的企业级 Docker Registry 项目&#xff0c;Harbor 是一个企业级的 Docker 私有仓库项目。 2、Harbor以 Docker 公司开源的 Registry 为基础&#xff0c;提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/L…

cppcheck新手指引

文章目录 一、简介功能原理特征 二、安装WindowsLinux 三、使用1、Manual2、Windows gui3、Windows Cli、Linux4、vscode5、严重等级6、常用示例7、Suppressions8、html报告 四、用户是否可以编写检查规则&#xff1f;五、Cppcheck Premium 一、简介 cppcheck 是一个开源的静态…

vue中echart-gl 3D地图纹理实例

1. 安装 npm install echarts npm install echarts-gl2. vue组件 html部分 <template><section class"chartapp"><div class"map-chart" ref"mapChart"></div></section> </template>JS引入 import * as…

MIPS64乘法器模拟实验

目录 忽略溢出的乘法器 溢出提示的乘法器 忽略溢出的乘法器 首先&#xff0c;我们得了解乘法器如何由加法器设计得到&#xff0c;此处&#xff0c;我们以32位乘法为例。 总共分为4步&#xff1a; 1. 测试乘数最低位是否为1&#xff0c;是则给乘积加上被乘数&#xff0…

Linux-Jconsole连接远程服务器

Jconsole连接远程服务器 一、修改jmxremote.password.template文件二、启动jar项目三、jconsole远程连接1、打开的你jconsole2、远程连接 一、修改jmxremote.password.template文件 进去你的/idk/jre/lib/management目录下可以看到jmxremote.password.template文件 修改jmxr…

“智能+”时代,深维智信如何借助阿里云打造AI内容生成系统

云布道师 前言&#xff1a; 随着数字经济的发展&#xff0c;线上数字化远程销售模式越来越成为一种主流&#xff0c;销售流程也演变为线上视频会议、线下拜访等多种方式的结合。根据 Gartner 报告&#xff0c;到 2025 年 60% 的 B2B 销售组织将从基于经验和直觉的销售转变为数…

lazada店铺商品评论数据采集,lazada商品评论数据接口,lazadaAPI接口

lazada店铺商品评论数据可以通过以下步骤进行采集&#xff1a; 注册Lazada开发者账号。首先在Lazada开放平台网站上注册并创建开发者账号&#xff0c;并创建一个应用&#xff0c;获取到所需的App Key和App Secret等信息。设置API密钥和访问令牌。使用获取到的App Key和App Sec…

(python)系统路径和文件操作 —— os和pathlib

文章目录 前言1、遍历目录下的文件 前言 pathlib 和 os 是 Python 中用于处理文件路径和文件系统操作的两个模块。os 模块提供了底层的操作系统相关功能&#xff1b;pathlib 提供了面向对象的路径操作接口。pathlib 模块实际上是在 os 模块的基础上进行了封装和扩展&#xff0…

2023年中国车载导航仪产量、销量及市场规模分析[图]

车载导航仪是一种用于汽车上的电子设备&#xff0c;用于帮助驾驶员找到目的地并规划路线&#xff0c;它通常使用地图软件和GPS定位技术来确定车辆的位置&#xff0c;并提供语音和图形指示&#xff0c;以指导驾驶员前往目的地。 车载导航仪行业分类 资料来源&#xff1a;共研产…

又一个新指标可以写,氧化平衡评分,源自膳食以及生活方式

郑老师统计课程&#xff0c;欢迎点击报名&#xff1a;Nhanes公共数据库挖掘 课程 最近学习文献&#xff0c;发现新指标的使用在越来越NHANES数据库类的文章上占比越来越高。以往的研究证明饮食与生活方式与睡眠质量存在关联&#xff0c;本期我们要学习的文章推出了一个新指标&a…

使用免费SSL证书的好处

在互联网上保护用户隐私和数据安全是至关重要的。SSL证书是一种常见的安全解决方案&#xff0c;用于加密通信并验证网站的真实性。SSL&#xff08;安全套接层&#xff09;证书是一种数字证书&#xff0c;用于建立加密连接&#xff0c;保护数据的机密性和完整性。虽然商业SSL证书…