《Java技术》第一次作业

(一)学习总结
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
要引入包import java.util.Scanner;,使用不同的 next 方法将得到的标记转换为不同类型的值。 程序执行到这些next 方法时都会造成堵塞,等待用户在命令行输入数据回车确认

import java.util.Scanner;
public class Cdd {
public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    System.out.print("请输入一个数:");
    int a=input.nextInt();
    System.out.println("输入的数为:"+a);}
}

2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
random()方法是java.lang.Math的方法,作用是返回大于等于 0.0 且小于 1.0的 double 值,
Random类是一个类(java.util.Random),里面含有很多方法.

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");
        }
    }     
}

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

import org.omg.CORBA.PUBLIC_MEMBER;

public class Cdd {
    public static void main(String args[]) { 
        double a = 0.1;
        double b = 0.1;
        double c = 0.1;
        if(add( a, b, c ) == 0.3){
            System.out.println("等于0.3");
        }else {
            System.out.println("不等于0.3");
        }
    }     
    public static double add( double d1, double d2, double d3 ) {
    	BigDecimal b1 = new BigDecimal( Double.toString(d1) );
    	BigDecimal b2 = new BigDecimal( Double.toString(d2) );
    	BigDecimal b3 = new BigDecimal( Double.toString(d3) );
    	return b1.add( b2 ).add( b3 ).doubleValue();
    }
}

4.java中许多和C类似的地方,但是java中对数据对方法的使用要比C更灵活更方便。

(二)实验总结
1.看商品猜价格
程序设计思路:通过赋给一个int型变量随机数作为商品价格,利用循环语句来对商品价格进行多次猜测,利用break语句跳出循环;
2.万年历
程序设计思路:判断闰年,判断输入年份与1900年差多少天,闰年2月是29天,而平年是28天,利用天数%7+1,可以判断出当前月份的1号是周几,接着就可以打印出当前年份当前月份的日历;
3.评分系统
程序设计思路:创建一个二维数组保存选手的分数,利用二重循环与随机数来给选手打分,求出各个选手分数的最大值与最小值,将其赋值为0,求平均分时除8即是选手平均分,接着顺序输出即可;

(三)代码托管
码云提交历史截图

posted @ 2018-03-18 21:39  UUZsama  阅读(142)  评论(0编辑  收藏  举报