zoukankan      html  css  js  c++  java
  • # 《Java技术》第一次作业

    (一)学习总结

    1.Scanner类数据的使用方法
    需要导入java.util.Scanner
    每种数据都有对应的输入方法:
    需要留意的是String类型,next()方法碰到空格或者回车即结束输入,如果需要输入一整行,包含空格,应该用nextLine();
    char 类型,没有输入的方法;

    package java练习;
    import java.util.Scanner;
    public class S1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner in = new Scanner(System.in);
    		int x=in.nextInt();  // 10
    		System.out.println(x);   //10
    		double y=in.nextDouble();  //2.2
    		System.out.println(y);  //2.2
    		float z=in.nextFloat();  //1.2
    		System.out.println(z);  //1.2
    		String a=in.nextLine(); //hello world
    		System.out.println(a);  //hello world
    		String b=in.next(); //hello world
    		System.out.println(b); //hello
    	}
    }
    

    2.Random类和Math类的random()方法
    java.lang.Math,Math.random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0;
    如果要产生一个在80~100之间的整数应

    package java练习;
    public class S1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int x=(int)(Math.random()*20+80);
    		System.out.println(x); //80
    	}
    }
    

    如果用Random类,产生一个在80~100之间的整数应

    package java练习;
    import java.util.Random;
    public class S1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Random rand = new Random(); 
    		int x=rand.nextInt(20)+80; 
    		System.out.println(x); //93
    	}
    }
    

    如果产生double类型随机数,则使用nextDouble(),值是0~1.0;
    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”,原因是浮点数类型在运算时,有极小误差。
    修改方法一:使用BigDecimal类
    可以使用equals方法和compareTo方法
    区别:对于BigDecimal的大小比较,用equals方法的话会不仅会比较值的大小,还会比较两个对象的精确度,而compareTo方法则不会比较精确度,只比较数值的大小。equals的返回值是boolean,而compareTo的返回值为int,相等返回0;

    package java练习;
    import java.math.BigDecimal;
    import java.math.MathContext;
    public class S1 {
    	   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(a.add(b).add(c).round(new MathContext(1)).equals(new BigDecimal("0.3"))){
    	            System.out.println("等于0.3");
    	        }else {
    	            System.out.println("不等于0.3");
    	        }
    	    }
      
    	}
    

    结果:“等于0.3”;
    注意:使用round方法确定精度范围,需要用到MathContext类。
    在定义new BigDecimal("0.3")时,用String类型构造,若用int类型,看下例:

    package java练习;
    import java.math.BigDecimal;
    import java.math.MathContext;
    public class S1 {
    	   public static void main(String args[]) { 
    		   BigDecimal a = new BigDecimal(0.3);
    		   BigDecimal b = new BigDecimal("0.3");
    		   System.out.println(a);
    		   System.out.println(b);
    	    }
      
    	}
    

    结果:

    修改方法二:

    package java练习;
    import java.math.BigDecimal;
    import java.math.MathContext;
    public class S1 {
    	    public static void main(String args[]) { 
    	        double a = 0.1;
    	        double b = 0.1;
    	        double c = 0.1;
    	        if((a + b + c) -0.3<1e-6){
    	            System.out.println("等于0.3");
    	        }else {
    	            System.out.println("不等于0.3");
    	        }
    	    }     
    	}
    

    (二)实验总结

    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函数排序,输出成绩
    注意:输出制表符时,应该用双引号

    (三)代码托管

  • 相关阅读:
    Linux编程make命令(转)
    如何处理Global symbol * requires explicit package name编译错误,以及use strict用法
    6235与旧版本的区别
    Linux下动态链接库的使用
    MTK Socket学习——HTTP请求
    指针和指针的引用
    VC/MFC Combo Box控件的用法
    makefile教程
    常用数据类型使用转换详解
    Linux发送与接收信息
  • 原文地址:https://www.cnblogs.com/TX980502/p/8571040.html
Copyright © 2011-2022 走看看