栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

槃星—第3天任务—JAVA薪资转化工具

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

槃星—第3天任务—JAVA薪资转化工具

JAVA实战训练营Day.3 ——“小试牛刀”

目录

前言

一、Day.3的目标

二、任务所涉及的知识点(参考资料)

1.Java中变量的声明与使用

2.Java中Scanner类的使用方法

3.Java格式化输出

4.Java DecimalFormat的主要功能及使用方法

三、开始实战

1.用户输入月薪,计算日薪(每月22个工作日)和年薪(一年13薪)

2.三种方法使用Java实现两数交换

a.使用第三个变量进行已有两个变量值的交换

b.通过数学方式(两数相加保存和值)解决问题

 c.使用异或,通过两异或保存两数状态

3.解析四位正整数并求个位之和

四、总结



前言

 Java可以用来写高大上的服务器应用,但今天我们另辟蹊径,来写一些日常小工具,哈哈哈,没错,真就用牛刀杀鸡(今晚吃鸡,大吉大利OVO)。



一、Day.3的目标

Java实现薪资转化器,完成以下目标:

1.用户输入月薪,计算日薪(每月22个工作日)和年薪(一年13薪)

2.三种方法使用Java实现两数交换

a.使用第三个变量进行已有两个变量值的交换

b.通过数学方式(两数相加保存和值)解决问题

c.使用异或,通过两异或保存两数状态

3.解析四位正整数并求个位之和


二、任务所涉及的知识点(参考资料)

1.Java中变量的声明与使用

(同学可以先看一下这篇博客,强烈推荐)

https://blog.csdn.net/lxp18850413505/article/details/79482114?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540901816780262563533%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540901816780262563533&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-79482114.pc_search_all_es&utm_term=java%E5%8F%98%E9%87%8F%E7%B1%BB%E5%9E%8B&spm=1018.2226.3001.4187https://blog.csdn.net/lxp18850413505/article/details/79482114?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540901816780262563533%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540901816780262563533&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-79482114.pc_search_all_es&utm_term=java%E5%8F%98%E9%87%8F%E7%B1%BB%E5%9E%8B&spm=1018.2226.3001.4187https://blog.csdn.net/lxp18850413505/article/details/79482114?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540901816780262563533%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540901816780262563533&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-79482114.pc_search_all_es&utm_term=java%E5%8F%98%E9%87%8F%E7%B1%BB%E5%9E%8B&spm=1018.2226.3001.4187

2.Java中Scanner类的使用方法

https://blog.csdn.net/qq_40164190/article/details/81917208?ops_request_misc=&request_id=&biz_id=102&utm_term=Java%E4%B8%ADScanner%E7%B1%BB%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-81917208.nonecase&spm=1018.2226.3001.4187https://blog.csdn.net/qq_40164190/article/details/81917208?ops_request_misc=&request_id=&biz_id=102&utm_term=Java%E4%B8%ADScanner%E7%B1%BB%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-81917208.nonecase&spm=1018.2226.3001.4187https://blog.csdn.net/qq_40164190/article/details/81917208?ops_request_misc=&request_id=&biz_id=102&utm_term=Java%E4%B8%ADScanner%E7%B1%BB%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-81917208.nonecase&spm=1018.2226.3001.4187

3.Java格式化输出

https://blog.csdn.net/qq_44111805/article/details/112850550?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540640616780357263712%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540640616780357263712&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-112850550.pc_search_all_es&utm_term=java%E6%A0%BC%E5%BC%8F%E5%8C%96%E8%BE%93%E5%87%BA&spm=1018.2226.3001.4187https://blog.csdn.net/qq_44111805/article/details/112850550?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540640616780357263712%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540640616780357263712&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-112850550.pc_search_all_es&utm_term=java%E6%A0%BC%E5%BC%8F%E5%8C%96%E8%BE%93%E5%87%BA&spm=1018.2226.3001.4187https://blog.csdn.net/qq_44111805/article/details/112850550?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540640616780357263712%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540640616780357263712&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-112850550.pc_search_all_es&utm_term=java%E6%A0%BC%E5%BC%8F%E5%8C%96%E8%BE%93%E5%87%BA&spm=1018.2226.3001.4187

4.Java DecimalFormat的主要功能及使用方法

https://blog.csdn.net/evangel_z/article/details/7624503?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540655116780269835548%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540655116780269835548&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-7624503.pc_search_all_es&utm_term=java+decimalformat%E7%B1%BB%E5%BC%95%E7%94%A8&spm=1018.2226.3001.4187https://blog.csdn.net/evangel_z/article/details/7624503?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540655116780269835548%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540655116780269835548&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-7624503.pc_search_all_es&utm_term=java+decimalformat%E7%B1%BB%E5%BC%95%E7%94%A8&spm=1018.2226.3001.4187https://blog.csdn.net/evangel_z/article/details/7624503?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163540655116780269835548%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163540655116780269835548&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-7624503.pc_search_all_es&utm_term=java+decimalformat%E7%B1%BB%E5%BC%95%E7%94%A8&spm=1018.2226.3001.4187

三、开始实战

1.用户输入月薪,计算日薪(每月22个工作日)和年薪(一年13薪)

不多说,直接上代码:

import java.text.DecimalFormat;
import java.util.Scanner;//引入Scanner类
public class salay {


    public static void main(String[] args){
        System.out .println("***薪资转换工具v1.0***");
        System.out .println("请输入月薪(人民币):");
        Scanner sc=new Scanner(System.in);

        double mouthSalary=sc.nextDouble();//将月薪定义为scan
        System.out.format("您的日薪: ¥%,.2f",mouthSalary/22);//因为目标简单,所以直接使用数学方法完成
        System.out.format("您的年薪: ¥%,.2f",mouthSalary*13);//注意任务要求保留后两位小数,且有千分符
    }
    private static int scan() {
        Scanner scan=new Scanner(System .in);
        return scan.nextInt();
    }
}

运行演示:

  第一个任务很简单,直接用最简单的数学思路完成。

日薪=月薪/22

年薪=月薪*13

(注意保存小数点后两位)

至此任务1完成

2.三种方法使用Java实现两数交换

我们先来回答下面两个问题

1)变量使用前没有初始化可以吗?

2)如果有多个赋值运算时程序会怎么处理?

答:

1)不行,Java中每个变量必须先声明再使用。

详情大家可以参考下面这篇博文:

https://blog.csdn.net/weixin_41989775/article/details/103849945?utm_source=app&app_version=4.14.0&code=app_1562916241&ulinkId=usr1mkqgl919blenhttps://blog.csdn.net/weixin_41989775/article/details/103849945?utm_source=app&app_version=4.14.0&code=app_1562916241&ulinkId=usr1mkqgl919blenhttps://blog.csdn.net/weixin_41989775/article/details/103849945?utm_source=app&app_version=4.14.0&code=app_1562916241&ulinkId=usr1mkqgl919blen

(图片来自上述博文)

这篇博文详细列举了这些变量,得出以下规则:

成员变量只声明未初始化在类初始化时会赋予默认值可以直接使用;

局部变量必须赋值才可以使用,如果局部变量未赋值,编译无法通过。

2)我们实践出真知

(实践是检验真理的唯一标准)

代码:

public class test
{
    public static void main(String[] args){
        int  x,y,z;
        x=y=z=8;
        System.out.println(x+","+y+","+z);
    }
}

运行:

我们发现x,y,z的赋值都是8,它实质上进行了如下变化:

OK,明白了这两个问题我们再继续。

a.使用第三个变量进行已有两个变量值的交换

代码:

class Scratch {
    public static void main(String[] args) {
        int  x=3,y=9;
        System.out.format("交换前: x:%d,y:%d%n",x,y);
        int temp=x;
        x=y;
        y=temp;
        System.out.format("交换后: x%d,y:%d%n",x,y);
    }
}

运行:

b.通过数学方式(两数相加保存和值)解决问题

代码:

class Scratch {
    public static void main(String[] args) {
        int  x=3,y=9;
        System.out.format("交换前: x:%d,y:%d%n",x,y);
        x=x+y;
        y=x-y;
        x=x-y;
        System.out.format("交换后: x:%d,y:%d%n",x,y);
    }
}

运行:

 c.使用异或,通过两异或保存两数状态

代码:

class Scratch {
    public static void main(String[] args) {
        int  x=3,y=9;
        System.out.format("交换前: x:%d,y:%d%n",x,y);
        x=x^y;
        y=x^y;
        x=x^y;
        System.out.format("交换后: x:%d,y:%d%n",x,y);
    }
}

运行:

 我们来看一下这个变化过程:

至此任务2完成

3.解析四位正整数并求个位之和

代码:

import java.util.Scanner;//引入Scanner类

public class gwh {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入一个位整数:");
        long n = input.nextLong();
        long result = sumDigits(n);
        System.out.println("n"+result);
    }
    public static long sumDigits(long n){
        long result = 0;
        for(; n >= 1 ; n /= 10){//使用”%“来提取数字,用“/”去掉提取出来的数字。循环提取,直到所有位数都提取完为止
            result += n % 10;
        }
        return result;
    }
}

运行:

核心思想:

使用”%“来提取数字,用“/”去掉提取出来的数字。循环提取,直到所有位数都提取完为止。

这样即使超过四位也可以完美运行。

示例:

至此任务3完成


四、总结

今天的任务主要是Java基础及运算,还是比较简单的,但如何巧妙的设计运算,用最少的代码来更好的实现目标是一个值得我们思考的问题。还有最重要一点是一定要多实践!熟能生巧!实践是检验真理的唯一标准!

(完结撒花)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353232.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号