蓝桥模拟赛刷题之计算个人所得税

简介: 蓝桥第一次线上模拟赛的第三题,要让我们实现一个个人所得税计算功能,原生实现

实现个人所得税功能

蓝桥第一次线上模拟赛的第三题,要让我们实现一个个人所得税计算功能,原生实现

具体要求

题目的具体要求就是不同的薪资,按照不同规模的百分比来计算,即当小于5k,没有含税部分,而超过部分按照超过多少并乘以不同数量对应的比例。下面是HTML结构,一个表单一个按钮还有一段文本,我们在表单中输入我们的薪资,最后通过事件计算得出最后的结果。

<input type="number" required class="form-control" style="width: 50%;" id="salary" placeholder="请输入您的工资">
<button type="submit" class="btn btn-primary" id="btnsubmit">计算</button>
<p>您需要缴税<span id="val">0</span>元</p>  
复制代码

功能实现

  1. DOM绑定
    首先我们需要对三个dom元素进行对应所需事件的绑定,即我们需要对按钮绑定一个点击事件,并通过DOM获取到表单内我们所填的薪资数据,然后进行一个判断作为提示,最后由于我们拿到的字符串,所以我们需要通过使用parseInt来将我们获取的薪资字符串转换为数字,然后我们再通过薪资计算函数进行计算,最后绑定到我们设置的段落中并渲染
document.getElementById("btnsubmit").onclick = function() {
        var salary = document.getElementById("salary").value; //薪资
        if (salary <= 0) {
            alert("薪资不能为0或小于0");
            return false;
        }
        var result = cal(parseInt(salary));
        document.getElementById("val").innerText = result;
    };
复制代码
  1. 薪资计算函数
    最重要的就是薪资计算函数了,先看一下我最初写的一个解决方案,我们是使用if嵌套来实现的,其中需要判断每个额度的范围,再来计算最后的数据,这样的话代码还是很麻烦的,而且在比赛中还是很耗时间,这也是我对于一些语法,还有逻辑上的不熟练,所以就使用另外一种写法。
var shui;
    if (salary <= 5000) {
         shui = 0;
    } else if (salary <= 9000) {
         shui = (salary - 5000) * 0.03;
    } else if (salary <=15000) {
         shui = (salary - 5000) * 0.05;
    } else {
    shui = (salary - 5000) * 0.1;
}
    return shui;
复制代码
  1. 这种写法是通过?:来进行计算的,代码简洁,所以当我们出现了要使用多个判断来计算的场景的时候,我们就可以来使用这种代码,有效减少代码冗余
let res = salary <= 5000 ? 0 :
    salary <= 9000 ? (salary - 5000) * 0.03 :
    salary <= 15000 ? (salary - 5000) * 0.05 :
    (salary - 5000) * 0.1
    return res



相关文章
|
6月前
数字信号处理期末复习——计算小题(二)
数字信号处理期末复习——计算小题(二)
32 0
数字信号处理期末复习——计算小题(二)
|
6月前
数字信号处理期末复习——计算大题(一)
数字信号处理期末复习——计算大题(一)
109 0
数字信号处理期末复习——计算大题(一)
|
3月前
|
算法 C++
第一周算法设计与分析 F : 模拟计算器
该文章 "第一周算法设计与分析 F : 模拟计算器" 的摘要或讨论。这篇文章介绍了如何设计一个程序来模拟一个基本的计算器,处理包含加、减、乘运算的表达式,并给出了相应的C++代码实现
|
6月前
【错题集-编程题】大数乘法(模拟 + 高精度乘法)
【错题集-编程题】大数乘法(模拟 + 高精度乘法)
|
6月前
|
存储 芯片
【期末不挂科-单片机考前速过系列P12】(第十二章:单片机的并行拓展例题)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P12】(第十二章:单片机的并行拓展例题)经典例题盘点(带图解析)
|
6月前
【每日一题Day338】LC2582递枕头 | 模拟+数学
【每日一题Day338】LC2582递枕头 | 模拟+数学
29 0
|
6月前
【每日一题Day320】LC2651计算列车到站时间 | 数学
【每日一题Day320】LC2651计算列车到站时间 | 数学
45 0
|
6月前
【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
44 0
|
6月前
|
Java Android开发
Java实现月工资个人所得税及各保险计算问题
Java实现月工资个人所得税及各保险计算问题
219 0
|
开发工具 Python
【每周一坑】鸡兔同笼 +【解答】房贷计算器
附加题:输入头数 m 和脚数 n,输出鸡的数量 c 和兔子的数量 r,或提示无解。
下一篇
无影云桌面