(一)学习总结
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("日\t一\t二\t三\t四\t五\t六");
for(int d=1;d<=week;d++){
System.out.print("\t");
y++;
}
for(int a=1;a<=days;a++){
y++;
System.out.print(a+"\t");
if(y%7==0){
System.out.println();
}
原因:不知道第一天前面应该怎么加空格,不知道换行应该怎么写
解决方案:通过查了一些网上的资料,问同学,以及自己琢磨,想出空格可以用周来表示,用y来表示输出的空格以及输出的日期,使每七个一换行,问题得以解决。
(三)代码托管
- 码云commit历史截图
(四)学习进度条
代码行数(新增/累积) | 学习时间(新增/累积) | 本周学习内容 | |
---|---|---|---|
目标 | 5000行 | 300小时 | |
第2-4周 | 300/300 | 30/30 | 学习了Scanner,Random,boolean |
第5周 | |||
第6周 |