Java第一次作业

(一)学习总结

1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明.

文本扫描类Scanner(Java.util.Scanner),可以使用不同的next方法输入的文本转换为不同类型的值.获取基本类型数据的方法是:

nextlnt():读取整型数据.
nextDouble():读取双精度数据.
next():读取输入的下一个单词(空格为分隔符)
nextLine():读取输入的下一行内容
构造Scanner对象,并与System.in关联
Scanner input=next Scanner(System.in);
调用Scanner的各种方法完成输入操作
Int num=input.nextInt();
例:


2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。

一.Random类生成随机数
语法 Random ran=new Random();
ran:Random类的实例对象。可以在实例化对象时,java编译器以系统当时作为随机数产生器的种子,因为每时每刻时间不同产生的随机数也不同.
二.Math类的random()方法
Math类的random()方法可以生成大于0.0、小于1.1的double型随机数,它可以获得多种类型、或任意范围的随机数.

public static void main(String[] args) {
    int x=(int)(Math.random()*100);
    Random rand=new Random();
    int y=rand.nextInt(3);
    System.out.println(a);
    System.out.println(b);
}

3.运行下列程序,结果是什么?查阅资料,分析为什么。


结果为不等于0.3

为了处理精度损失的问题,可以使用java.math.BigDecimal类,查阅JDK帮助文档或教材p378,对上述程序进行修改。

知识点:对于不需要任何准确计算精度的数字可以直接用float或double,但是如果需要精确的计算结果,则必须使用BigDecimal类.
错误原因:在加减的过程中,产生了浮点型误差,不能用==表示浮点类型数据的运算结果。
改正方法:

使用round方法确定精度范围,需要用到MathContext。

4.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。

学习Java需要有扎实的c语言功底,对于c语言学的不怎么好的我来说,得好好努力了。
写程序要有清晰的是路,把思路理清楚再写。

二)实验总结

1.猜商品价格

(1)随机生成价格
(2)输入所猜的价格
(3)用一个循环 1.机会有10次,如果机会用完就输出价格
2.比真实价格低:输出猜低了;比真实价格高:输出猜高了;如果猜对了,则输出真实价格。

2.万年历

(1).先判断闰年还是平年
(2).某年某月多少天:先确定除二月意外的月数,再确定2月的天数,是28,29。
(3).“距离1900年天数:先计算这个年到1900年天数+这几个月的天数
(4).其中判断某月天数时用到闰年方法:计算据1900年总天数会用到某月多少天的方法,用1+totaldays(year,month)%7,算出星期几

原文地址:https://www.cnblogs.com/-lyf/p/8595794.html