JAVA技术第一次作业

《Java技术》第一次作业

(一)学习总结

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

Scanner是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的next方法将得到的标记转换为不同类型的值。
例如:

import java.util.Scanner;
public class caishu {
    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类:此类的实例用于生成伪随机数流。

  • Math类的random():public static double random()
    返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

  • Math.random() 方法生成[0, 1)范围内的double类型随机数;

      Random random = new Random();
      int z=(int)(Math.random() * n);
    
  • Random类中的nextXxxx系列方法生成0-n的随机数;

      Random random = new Random();
      int z=random.nextInt(n);
    

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

  • JDK:Java Development Kit(Java开发工具包)
  • JRE:Java Runtime Environment(Java运行时环境)
  • JVM:Java Virtual Machine(Java虚拟机)
  • JAVA-HOME:配置JDK安装路径
  • PATH:配置JDK命令文件的位置
  • CLASSPATH:配置类库文件的位置

(二)实验总结

1.猜数游戏

  • 程序设计思路:用Random产生价格的随机数,然后用for循环确定循环次数是5次,之后用if判断猜大了还是猜小了,然后switch循环确定得分情况,最后选择是继续游戏还是退出。

  • 实验问题分析:
    问题:不会让游戏继续还是退出。
    原因:没有很理解java,不知道要用什么来退出。
    解决方案:通过询问同学之后,知道了要使用布尔类型。

    boolean flag=true;

2.万年历

  • 程序设计思路:用Scanner输入年份和月份,然后用if判断是闰年还是平年,之后用swith循环确定每个月份的天数,计算出从1900年到输入年份以及月份的天数,用总天数确定周几,然后输入空格,使数字与与星期对应,每七个一换行,最后输出万年历。

  • 实验问题分析:
    问题1:总天数计算不对。
    原因:在用if循环判断闰年时,已经定义了变量i,但是还用year。
    解决方案:将year换成了变量i。
    问题2:最后万年历的输出格式不对。
    原因:没有设置好换行,导致出现错误。
    解决方案:让输出的空格和日期求和之后对7求余,为0的话换行。

      System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
      for(a=0;a<fday;a++){
      	System.out.print("\t");
      }
      for(b=1;b<=days;b++){
      	System.out.print(b+"\t");
      	if((a+b)%7==0){
      		System.out.println();
      	}
      }
    

(三)代码托管

  • 码云commit历史截图

(四)学习进度条

代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
目标 5000行 300小时
第2-4周 300/300 32/32 学习了Scanner,Random,boolean,java课程前三章
第5周
第6周
posted @ 2017-03-19 08:03  luhan1  阅读(216)  评论(1编辑  收藏  举报