目录

一、实验任务

二、实验思路

三、涉及知识点

1. Java基本结构

2. Java控制台输入

3. Java控制台输出

4. 基本数据类型

5. 变量

6. while循环

7. 异常捕捉

8. 注释

四、实验过程

1. 创建Java类

2. 获取用户输入值

3. 计算并输出

五、实验测试

1. 控制台输入

2. 参数输入

六、生成文档


一、实验任务

用户输入月薪,程序内部实现薪资转换(每月工作22天,一年13薪),并输出到控制台中。

二、实验思路

  1. Scanner类接收用户输入月薪/通过输入参数给main函数中的接收参数数组args[],并判断输入类型是否正确,如不正确,需要重新获取。
  2. 使用计算公式将需要的日薪、年薪算出来:day=month/22, year=month*13。
  3. 使用System.out.format()方法将日薪、月薪使用固定格式输出。

三、涉及知识点

1. Java基本结构

类结构:第1行和第5行构成了最外层结构,由一对大括号(“{}”)组成,称之为类结构。“public”,“class”称之为Java中的关键字,表示公共的类,所有人能获取。目前情况下,这两个关键字时必选项,“HelloWorld”是类名。Java代码都是以类为基本单位进行组织,类中可以包含属性和方法。

main方法:第2行和第4行是类“HelloWorld”中的方法,同时这也是最特殊的一个方法,所有Java程序都是从main方法开始运行的,因此被称为Java程序的入口。“main”方法必须要用“public”,“static”进行限定,表示公共的,静态的(无需创建对象,就能调用)。“void”代表不返回任何类型,小括号中的“String[] args”是一个参数,代表一个字符串数组,该数组从类外部传入,数组名叫“args”(可自行替换,只是习惯用args)。除了“args”,其他都是固定的,用一个“{}”代表一个方法的开始与结束。

  程序层次结构:代码之间存在嵌套和对齐的情况,Java代码中,指令之间的空格和换行不影响程序的正常执行,IDEA会自动完成代码对齐,使源代码看起来层次结构清晰,类和方法定义时要用大括号进行范围限定,单个语句要用";"结尾,表示语句的结束。

2. Java控制台输入

从控制台接收用户输入需要三步走:第一步,通过导入包指定Scanner类(“import java.util.Scanner;”),该代码需要写在一开始类的上面;第二步,创建Scanner的对象input,以后用input就可以(“Scanner input = new Scanner(System.in);”),目前阶段暂时将该代码写在“mian”方法中;第三步,通过input对象的不同方法接收用户输入开始使用,注意不同方法的返回数据类型不同,见下图所示。

3. Java控制台输出

System.out.println()的作用是向控制台(也称命令行窗口)输出文本。“System”是系统定义好的类名,“out”是其中的一个静态成员,为“PrintStream”类型,其中有一个方法是“printf”,用于输出文本。“println”表示输出之后换行,“print”不换行。小括号和双括号中间的内容就是要输出的文本,可以输出字符串(用“”),也可以输出变量,中间用“+”连接。

特定格式输出:使用System.out.format

在控制台输出时基于格式考虑需要进行相关数字的显示方式进行限定,比如为了对其设置整体显示宽度,比如小数点后留几位数?比如是否按照千位进行逗号隔开等。这里介绍两个可以实现的途径。

“format”方法与“printf”方法基本效果都一样,都可以向控制台输出内容。但是“format”方法进行一定的格式修饰。

格式占位符:“%d”表示一个整数;“%f”表示一个浮点数。

在“%”和“d”(或者是“f”)中间可以指定对齐方式(减号是左对齐)、是否需要千分位分隔符(逗号)、是否指定宽度(整型长度)、小数点后留几位等设置。看如下代码示例。

输出结果是:“12,345.68 测试”。代码中减号(“-”)表示左对齐;逗号(“,”)表示需要千分位分割;10表示整体占位宽度;“.2”表示小数点后留两位。

4. 基本数据类型

(1)整数类型

在程序中需要整数类型有四种选择,最常用的是“int”类型,最小值为-2 31,最大值为2 31 -1。其次是“long”类型和“short”类型,取值范围分别是-2 63至2 63 -1和-32,768至32,767(含)。byte类型最小值为-128,最大值为127(含),常用于文件操作。

(2)浮点类型

程序中遇到有小数点的操作经常用的是double类型(同时也是默认的小数类型),双精度浮点型,取值范围1.797693E+308~ 4.9000000E-324(E+308表示是乘以10的308次方,E-324表示乘以10的负324次方)。float是单精度浮点型,取值范围3.402823E+38 ~ 1.401298E-45。

(3)字符类型

“char”是单个16位Unicode字符。最小值为'\u0000'(或0),最大值为'\uffff'(或65,535,含该值)。char类型的数据需要用单引号括起来,存储的是单个字符。

(4)布尔类型

“boolean”数据类型只有两个可能的值:“true”和“false”,代表“真”和“假”两种状态。通常用于逻辑判断。

5. 变量

程序中所处理的数据值会被保存到变量中,通过变量名可以取值和赋值。因为Java语言是一个强类型语言,所以类型决定变量可以存储什么样的值。要使用变量必须要先声明是什么类型,然后才能够使用。

声明变量的语法:数据类型  变量名;

可以在声明的时候也支持直接给变量名赋值,例如:数据类型  变量名 = 值;

6. while循环

当while括号内条件为true时,进入循环,当false时,退出循环;另可在程序内部加“break”终止循环。

7. 异常捕捉

        try -- 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。
        catch -- 用于捕获异常。catch用来捕获try语句块中发生的异常。
        throw -- 用于抛出异常。

8. 注释

Java代码中的注释分为三种类型,分别是:单行注释、多行注释和文档注释。

(1)单行注释

通过两个连续的斜杠(“//”)将单行后面出现的内容进行注释,如下图所示。单行注释一般用于方法内部某一个代码行的解释说明。

在IDEA中,单行注释的快捷键是<Ctrl+/>,再次按撤销注释。

(2)多行注释

以“/*”两个符号开始,“*/”两个符号结尾,中间的内容都是被注释的内容,可以跨多行,当然单行使用也是可以的。如下图所示,在程序开始部分和“main”方法中间分别使用了多行注释,这些被注释的代码不会被执行。多行注释可用于标记修改记录、复杂代码块的实现说明等等场景。

在IDEA中,多行注释的快捷键是< Ctrl+shift+/>,再次按撤销多行注释。

(3)文档注释

以“/**”两个符号开始,“*/”两个符号结尾,看上去跟多上注释没什么区别。不一样的地方在于使用“javadoc”工具(JDK 自带的工具)来生成信息,并输出到HTML文件中。常常用于类、方法、属性、常量、接口、静态数据的说明,同时提供了很多预定义标签,用“@”符号开始。编写程序的时候有一套特定的标签作注释,程序编写完成后,通过“javadoc”就可以同时形成程序的开发文档了。如下图所示在“HelloWorld”类和“main”方法上面分别写了文档注释。随着Java学习的深入,对于文档注释的使用场景会越来越清楚。

       后续有详细步骤。

四、实验过程

1. 创建Java类

按图示创建Java工程。

之后在创建好的Java工程src目录下创建Java类。

输入类名称就可以进行敲代码啦。如下图,定义两个全局变量,分别是float类型的表示月薪的monthSalary、日薪的daySalary、年薪的yearSalary,并且初始化为0。

2. 获取用户输入值

方法一:控制台获取用户输入。使用while循环可以检测用户输入是否正确,如果不正确,可以让其重复输入;输入正确,退出输入。使用Scanner获取用户输入。使用try、catch捕捉错误情况。代码及注释如下:

while (true) {//System是系统定义好的类名,“out”是其中一个静态成员System.out.print("请输入月薪(人民币):");//通过System.in获取控制台输入内容,传给创建的Scanner对象,并用Scanner类型变量(input)接收Scanner input = new Scanner(System.in);//try里面的代码是正常运行时的try {//Scanner对象(input)接收下一个浮点型,赋值给月薪monSalary = input.nextFloat();//原先的Exception没有检查负数的,所以自己设立条件,并将错误throw出去//NegativeFloatException为自行创建的Exception继承类if (monSalary <=0){throw new NegativeFloatException();}break;//catch捕捉错误类型,当发生该类型错误时,不执行try中后续步骤,执行花括号内的代码}catch (Exception e){//输出错误信息System.out.println("输入有误,请输入正数!");}}

方法二:利用main方法的args数组实现参数传递。注意:NegativeFloatException类不在Java苦中的Exception中,因此需要自己创建该类,自设条件,并throw出去。

 //如果没有输入参数,提示if(args.length == 0){System.out.println("您未传递参数");return;}try {//args[0]是字符串类型,转换成数字monSalary=Float.parseFloat(args[0]);//System是系统定义好的类名,“out”是其中一个静态成员System.out.println("您输入的月薪(人民币):"+monSalary);//try里面的代码是正常运行时的//原先的Exception没有检查负数的,所以自己设立条件,并将错误throw出去//NegativeFloatException为自行创建的Exception继承类if (monSalary <=0){throw new NegativeFloatException();}//catch捕捉错误类型,当发生该类型错误时,不执行try中后续步骤,执行花括号内的代码}catch (Exception e){//输出错误信息System.out.println("输入有误,请输入正数!");return;}

3. 计算并输出

        daySalary = monSalary/22;yearSalary = monSalary*13;System.out.format("您的日薪:¥%,.2f",daySalary);System.out.println();System.out.format("您的月薪:¥%,.2f",yearSalary);

五、实验测试

1. 控制台输入

正常输入结果

输入非正浮点数

2. 参数输入

不同集成器输入的步骤不同。

此处以IDEA为例,按图示点击菜单栏中的"Run"中的"Run"选项。

点击“Edit Configurations”。

正常参数的输出结果。

非正浮点数输出结果(负数):

非正浮点数输出结果(非数字):

六、生成文档

使用文档注释自动生成文档。

通过IDEA提供的“javadoc”生成功能可以很方便直观的得到文档注释的输出效果。接下里说明一下操作步骤。首先,如下图所示,单击菜单中的“Tools→Generate JavaDoc…”

在“Generate JavaDoc”对话框中进行相关配置,如图所示。

上图中标记为1的地方选择了单个文件;标记为2的地方指定输出“THML”文件(网页文件)的路径;标记为3的地方勾选了文档注释中指定的两个标签复选框;标记为4的地方填写向“Javadoc.exe”程序传递的参数。参数需要写在一行,为了方便解释以换行形式展示。

  1. “-encoding UTF-8”表示你的源代码是基于 UTF-8 编码的,以免处理过程中出现乱码;
  2. “-charset UTF-8”表示在处理并生成网页文档时使用的字符集也是以“UTF-8”进行编码;
  3. “-windowtitle”表示生成的网页文档在浏览器中打开时,浏览器窗口标题栏要显示的文字;
  4. “-link”表示如果生成的文档会中涉及到对其他外部Java类的引用,通过指定“https://docs.oracle.com/en/java/javase/11/docs/api”参数,可以直接指向官方API对应的详细文档地址。
  5. 单击图2-7的“OK”按钮后开始生成说明文档,如图所示。

 


结语

每一门语言的基础是一定要打牢的,希望此博客对大家有用!

C1实训-Java薪资转换(适合初学者)相关推荐

  1. C1实训-动态令牌(二次验证码)原理及实现

    目录 一.概念理解 二.所需资料 三.实验过程 四.深入理解 1. 安全性原因 2. 不联网原因 3. 优势 五.总结 本文介绍了动态令牌的概念.来源.国内外现状,用实验模拟"基于时间的动态 ...

  2. c语言和java哪个有前途_C语言和Java哪个更适合初学者?

    目前,无论是从应用范围还是流行程度来看,C语言和Java都是当下最为火热的编程语言.想要零基础入门编程的学习者在一开始的学习中都会碰到这样的难题:C语言和Java哪个更适合初学者?的确,编程语言的选择 ...

  3. 为什么常有人向Java初学者推荐“Thinking in Java“这种不适合初学者的书籍?

    分两部分回答. 一. 我在我的群里经常跟一些非常牛掰的java界内的大牛讨论读书的问题.他们在给新手推荐书籍的时候想也不想就会推荐Think in java. java书籍说句实话,入门级的书很多,但 ...

  4. 企业实训Java课程第一天学习内容

    一.环境搭建: jdk myeclipse eclipse idea:编写代码 二.第一个程序: 新建工程---->新建java文件---->写代码 三.注释: 注释分为三种://单行注释 ...

  5. java内存管理(适合初学者)

    java的内存分配: java在运行时的内存结构分为:stack(栈内存),heap(堆内存),codesegment(方法区内存). 1.stack(占内存)有局部变量,操作数,帧数据组成. 2.h ...

  6. 大连东软信息学院附近java_大连东软信息学院暑期实训java项目答辩答案

    1.足球联赛系统中所使用的后台数据库是?使用的编程语言是?你的程序中所采用的数 据库连接方式是?登录数据库时所使用的超级用户名是? 2.SQL语句中,创建数据库的关键字是?创建数据表的关键字?varc ...

  7. Educoder/头歌JAVA实训——JAVA面向对象:类与对象

    第1关:什么是类,如何创建类 什么是类 类:类是一个模板,它描述一类对象的行为和属性. 对象:对象是类的一个实例,有 属性 和 行为 . 举个例子: 人是一个 "类",小明就是人的 ...

  8. CSDN实训 - Java模拟二次验证码(动态令牌)

    文章目录 前言 一.什么是动态令牌? 二.使用的Jar包 1. 生成二维码Jar包 2. Apache Commons Codec 3. 项目工具类 4. 下载链接 三.IDEA导入外部Jar包 四. ...

  9. java ean13 计算_实训java第三课 for 逻辑运算符 条件判断 商品条形码Ean-13验证码生成...

    package com.tarena.day03; public class SwitchDemo { /** * Switch */ public static void main(String[] ...

最新文章

  1. 图片管理之更新SKU表数据
  2. 谷歌最新论文:手机端的实时3-D目标检测
  3. Unity3d 网络编程(一)(Unity3d内建网络Network介绍)
  4. 20.三层技术之OSPF区域划分与路由重分发(2)
  5. 二 DeepinV20版本安装
  6. 清华体质优良可降5分录取;窃取密钥者奖百万;阿里投入1亿保护方言;腾讯不正当竞争被罚;这就是今天的大新闻...
  7. java json 去除空_详解Java去除json数据中的null空值问题
  8. 强制好评,付费去广告,诈骗应用横行AppStore
  9. golang实现RPC的几种方式
  10. 阿里云服务器ECS Ubuntu18.04 首次使用配置教程(图形界面安装)
  11. Ps 原来排版证件照如此简单(╹ڡ╹ )
  12. 国内常用开源镜像站点【推荐使用阿里巴巴开源镜像站】
  13. HTML基础知识笔记
  14. 中文汉字错别字纠错方法
  15. WIN7 SP1 windbg安装符号文件
  16. 鸿蒙可能超越安卓吗,华为鸿蒙能超越安卓吗?或一统江湖?任正非已志在必得...
  17. 常用计算机硬件品牌,介绍几个常用的电脑硬件检测工具
  18. keil5 添加芯片支持包(pack)
  19. Aforge做图像处理
  20. VMware Workstation 安装centOS

热门文章

  1. C语言之数组按协议存储与按协议解析
  2. Redis:MySQL 算老几?
  3. C#读写Excel的4种方案(OpenXml、NPOI、EPPlus、Spire.Office)
  4. 视频编解码-----理论基础(3)
  5. 【PS】Adobe Photoshop 2020中扣名字
  6. 阿里新零售中的智能补货(I)— 库存模型
  7. Bootstrap中jumbotron属性
  8. 秀智商,答对12题平分百万-《百万英雄》
  9. HTML+JavaScript实现网页秒杀倒计时效果
  10. git本地用户配置,及邮箱配置