一、学习总结
1、注意在定义变量时精度的损失问题:int到float,long到float,long到double,都有精度的损失
2、Scanner类实现基本数据输入的方法是: import java.util.Random;
Scanner input=new Scanner(System.in); int num =input.nextInt(); int double=input.nextDouble();
3、Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别
Math类的random()方法:
可以生成大于等于0.0、小于1.0的double型随机数。
Math.random()方法语句基础上处理可获得多种类型、或任意范围的随机数。
随机生成a~z之间的字符(char)('a'+Math.random()('z'-'a'+1));
随机生成cha1~cha2的字符(char)(cha1+Math.random()(cha2-cha1+1));
Random类生成随机数
Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间都不可能相同,所以产生的随机数也不同。如果运行速度太快,也会产生两次运行结果相同的随机数。
4、运行下列程序,结果是什么?查阅资料,分析为什么。
import java.math.BigDecimal;
public class Test {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal c1 = new BigDecimal(c);
System.out.println(a1.add(b1).add(c1).doubleValue());
if((a1.add(b1).add(c1).doubleValue()) == 0.3){
System.out.println("等于0.3");
}
else {
System.out.println("不等于0.3");
}
}
}
这是精度的损失问题, 可以在前面加上import java.manth.BigDecimal;类,并用string构造
二、实验总结
1、看商品猜价格
程序设计思路:系统产生一个随机数,即为商品的价格price,输入你猜的价格guess,进行比较,猜对了进行加分,最后输出你的分数,猜五次后可以继续也可以退出
问题以及解决方案:
1)、字符串的比较用str.equals()
2)、注意局部变量附初始值
2、万年历
程序设计思路:输入年月查看是否为闰年,判断闰年的方法year%40&&year%100!=0||year%4000,再判断这个月是几月有多少天,输出距离1900年有多少天,先计算有闰年的个数j,(年-1900)*365+j+月的天数,输出万年历,先计算有多少天,在计算为星期几,判断这个月有几天,注意间距
问题以及解决方案:
1)、判断闰年时只需判断你输入的是否为闰年,不需要从1900年开始判断
2)、在计算到1900年有几天时,for循环中的值应为i的变量值,不是year
3)、输出万年历时,判断星期几应该是总天数加1取余7,不是月天数
4)、注意局部变量附初始值
3、评分系统
程序设计思路:五个选手的所有分数应定义一个二维数组,数值可以用随机数产生,求出最大值先定义a【i】【0】为第一个进行一行的比较删除最大值,求出最小值比较最小的删除
在求平均值时,可以定义一个一维数组将分均分放进去,在返回数组,进行排序时可用Arrays.sort()。
. 问题以及解决方案:
1)、再返回数组时应定义为double【】
2)、排序有具体的方法可以调用
3)、注意局部变量附初始值
三、代码托管