(一)学习总结
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
Scanner函数就是用来进行语句输入的,下面举例的是数值型。
不同的类型要用不同的函数
String 输入的就是字符串
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个数值:");
int length=input.nextInt();//输入一个正整数
System.out.println("输入的数字是:"+length);}
}
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
Math类的random()返回的只是从0到1之间的小数。
Random类产生的随机数,相同次数生成的随机数字是完全相同的。
import java.util.Random;
public class Random;{
pubilc static void main(String[] arge){
int i,j;
Random n=new Random();
i=rand.nextInt(100);
j=rand.nextInt(100);
system.out.printIn(x+""+y+"="+(x+y));
}
}
3.运行下列程序,结果是什么?查阅资料,分析为什么。
public class Test {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c) == 0.3){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}
}
答案为不等于0.3
原因 :存在极小误差 精准度缺失
改进方法使用BigDecinmal
import java.math.BigDecimal;
import java.math.MathContext;
public class Test {
public static void main(String args[]) {
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.1");
BigDecimal c = new BigDecimal("0.1");
if((ic.add(a.add(b))).round(new MathContext(1)).equals(new BigDecimal("0.3"))){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}
}
为了处理精度损失的问题,可以使用java.math.BigDecimal类,查阅JDK帮助文档或教材p378,对上述程序进行修改。
4.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。
(二)实验总结
1.猜数游戏
程序设计思路:
1.生成随机价格
2.输入猜的价格
3.比较两个价格,若猜错且机会没有用完,回到2
4.输入是否继续,若继续,回到1;
2.万年历
程序设计思路:
1.输入年份year,月份month
2.调用yeardays求1990到year之间的整年的天数
3.调用monthdays求1到moth之间的整月的天数
4.总天数%7取余数判断1号为星期几
3.互评成绩
程序设计思路:
1.设计求数组最值函数
2.在求平均值函数中,调用求最值函数,将每个元素求和,最后减去最值求平均
3.调用sort函数排序,输出成绩
注意:输出制表符时,应该用双引号
(三)代码托管