#《Java技术》第一次作业

(一)学习总结

1..在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法 java.util.Scanner
例如:

import java.util.Scanner;
	    Scanner in=new Scanner(System.in);
        int x=in.nextInt();

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

Random random = new Random();
int r = (int)(Math.random() * n);

Random类中的nextXxxx系列方法生成0-n的随机数;

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

3.学会了Random的使用方法import java.util.Random;

import java.util.Random;
	    Random rand=new Random();
	    int a=rand.nextInt(100);

还学会了boolean类型的使用

boolean flag=true;

但是在函数这一部分还有很多欠缺,不会调用函数,不会写函数,不过我会多练习,把这一部分补回来。

(二)实验总结

1.猜数游戏

  • 程序设计思路:使随机产生一个数据,然后让用户输入自己的数据,最多能够输入五次,与随机产生的数据相比较,若大于随机数,则输出猜大了并输出还剩几次机会,若小于随机数则输出猜小了并输出还剩几次机会,若猜对了则输出猜对并输出成绩,若五次都没有猜对则输出成绩为0,再由用户选择是否继续游戏,继续输入Y,退出输入N。

  • 实验问题分析:

  • 问题1:在写用户选择继续还是退出的语句的时候,不知道应该用什么能够继续游戏。

    原因:想到用while,但不知道应该怎么能够表示为真。

    解决方案:经过从网上查了一些资料,以及问同学,可以用boolean类型来表示真假。
    2.万年历

  • 程序设计思路:计算从1900年到输入年的总天数,用循环计算平年和闰年,平年加365,闰年加366,在计算月的天数1、3、5、7、8、10、12为31天,4、6、9、11为30天,平年2月为28天,闰年2月为29天,用总天数计算出周几,每七个一换行,打印出日历来。

  • 问题1:

     if(year>=1900){
     	for(j=1900;j<year;j++){
     		if((j%4==0&&j%100!=0)||(j%400==0))
     			tday+=366;
     		else
     			tday+=365;
     	}
     		}
     else
     	System.out.print("输入错误");
    

    原因:

     if((j%4==0&&j%100!=0)||(j%400==0))
    

错写成了

if((year%4==0&&year%100!=0)||(year%400==0))

解决方案:在计算天数的时候总是差二十多天,然后就分开输出,发现月的天数,日期天数都正确,但是年的天数有错,后来发现是计算的都是同一年,然后把year改成j,就输出正确了。

问题2:

System.out.println("日	一	二	三	四	五	六");
	for(int d=1;d<=week;d++){
		System.out.print("	");	
		y++;
		}
	for(int a=1;a<=days;a++){
		y++;
	System.out.print(a+"	");
	if(y%7==0){
		System.out.println();
	}

原因:不知道第一天前面应该怎么加空格,不知道换行应该怎么写

解决方案:通过查了一些网上的资料,问同学,以及自己琢磨,想出空格可以用周来表示,用y来表示输出的空格以及输出的日期,使每七个一换行,问题得以解决。

(三)代码托管

  • 码云commit历史截图

(四)学习进度条

代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
目标 5000行 300小时
第2-4周 300/300 30/30 学习了Scanner,Random,boolean
第5周
第6周
原文地址:https://www.cnblogs.com/yang-yonghui/p/6572257.html