Java第一次作业

(一)学习总结

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

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

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

以下代码使 long 类型可以通过 myNumbers 文件中的项分配:

Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}

2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。

Math类的random()方法
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
public static double random()
第一次调用该方法时,它将创建一个新的伪随机数生成器, 之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。

new java.util.Random

Random类的random()方法

创建一个新的随机数生成器。此构造方法将随机数生成器的种子设置为某个值,该值与此构造方法的所有其他调用所用的值完全不同。

使用单个 long 种子创建一个新的随机数生成器。该种子是伪随机数生成器的内部状态的初始值,该生成器可通过方法 next(int) 维护。
调用 new Random(seed) 等效于:

Random rnd = new Random();
rnd.setSeed(seed);

public double nextDouble() 生成一个随机的double值,数值介于[0,1.0)之间。
public int nextInt() 生成一个随机的int值,该值介于int的区间(-231~231-1)。
public int nextInt(int n) 生成一个随机的int值,该值介于[0,n)之间,包含0不包含n。

(二)实验总结

1.猜数游戏.
程序设计思路:
(1),利用Random类产生一个[0--100]以内的随机数。
(2),利用循环比较玩家输入数字与产生随机数的大小,若大于随机数则输出猜大了,反之则猜小了
(3),玩家猜对之后该轮游戏结束,询问玩家是否开始下一轮游戏。

出现的问题:一轮猜完之后不能返回继续游戏
解决:函数结尾返回 answer = sc.next();从新判断是否继续

2.万年历.
程序设计思路:
根据1900年1月1日为星期一,由今天日期减去1900的日期算出总天数,然后和7求余算出星期
错误:日期与星期不匹配
解决:忽略了整百年的时候闰年
原因:对于闰年时的判断以及2月份的日子

(三)代码托管
截图;

网页链接:
http://git.oschina.net/hebau_cs15/Java-CS02wcy/tree/master/ex01?dir=1&filepath=ex01&oid=094ec2dc21a31ba53940aace5a32a01fff293a50&sha=fe60b9736181a2993fe4ea03bc7a13b07218a50d

(四)学习进度

代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
目标 5000行 300小时
第2-4周 130/300 20
第5周
第6周
posted @ 2017-03-16 15:28  烟火、木夏  阅读(136)  评论(1编辑  收藏  举报