(一)学习总结
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?
Scanner是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。 Scanner使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
例如从System.in中读取一个数:
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.print("输入数据:");
String str=scan.next();
System.out.println("输入的数据为:"+str);
}
- nextInt(): 读取整型数据。
- nextDouble():读取双精度数据。
- next() :读取输入的下一个单词(空格作为分隔符)。
- nextLine(): 读取输入的下一行内容。
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?
Random类:是在一个指定的范围内产生随机数,是创建一个新的随机数生成器。此构造方法将随机数生成器的种子设置为某个值,该值与此构造方法的所有其他调用所用的值完全不同。相同种子数的Random对象,对应相同次数生成的随机数字是完全相同的。
import java.util.Random;
public class RandomDemo01 {
public static void main(String[] args){
Random r=new Random();
for (int i=0;i<10;i++){
System.out.print(r.nestlnt(100)+"\t");
}
}
}
Math类:java.lang包中的Math类,包含了许多用来进行科学计算的类方法,涉及大多数学函数。直接调用Math.random()产生一个(0,1)之间的随机数,为double型的小数。在猜数程序中,需要1900-2099之间的随机数,则强制转换为int,先乘199再加1900。
3.本次学习要点中其他需要总结的内容
1.java的{位置与C++语言不同。Java的错误提示比C++语言更清楚,甚至还有修改建议,很不错。
2.Java的特点:跨平台性,支持视化图形界面 。
3.Java源代码的书写不拘泥于特定的环境,可以用记事本、文本编辑器等编辑软件来实现,然后将源文件进行编译,编译通过后可直接运行,通过调试则可得到想要的结果。Java有丰富的类库。Java的8种基本类型 :4种整型 (byte ,short , int ,long )2种浮点类型 ( float,double )1种Unicode编码的字符单元 (char)1种真值类型 (boolean)
(二)实验总结
1.猜价格游戏
程序设计思路:产生一个随机数,用户通过键盘对此随机数进行猜测,直到猜对为止,中间给出猜大猜小的提示。如果用户通过键盘输入的数字不合法,则捕获异常,通知用户重新输入合法字符,直到输入合法字符,再进行比较大小。
问题:不能输出用户是猜了几次猜出价格的
解决方案:加了一个count用来记录次数
问题:程序出现各种各样的错误,形参实参搞不清楚
解决方案:翻了翻以前的书,问了问舍友,才算马马虎虎写完
2.万年历
程序设计思路:1.总天数的算法:判断1900年到输入的年份之间的每一年是否为闰年,是闰年,该年的总天数为366,否则为365.然后判断输入的年份是否为1900年,若是则令总天数为1.否则用累加法算出1900年到输入年份的总天数。再把输入年的一月到要输出的月份的总天数累加起来。若该月是闰年中的月份,再使总天数加1,否则不加 。就可以算出1900年一月一日到输入年输入月一日之间的天数。 2.输出月份第一天为星期几的算法:使总天数除以七取余加2得几就是星期几,若是7,就是星期日。算出输出月份第一天为星期几后,前面的日期用空格补上,并从该日起一次输出天数到月底。该月中的天数加上该月一日是星期几的数字再除以七得0换行,这样就可以完整的输出该月的日历啦! 3.如果年份小于1900年则程序不予判断。
问题:算总天数总是出现误差。
解决方案:百度了一下,知道了怎么判断闰年
问题:输出月份的第一天是星期几总是输不对
解决方案:后来询问同学知道了方法,总天数除以七取余加2得几就是星期几,若是7,就是星期日。
(三)代码托管
(四)学习进度条
目标 | 5000行 | 300小时 | |
第2-4周 | 200/200 | 30/30 | 看光盘学习了Java前两章 |
第5周 | | | |
第6周 | | | |