《Java技术》第一次作业——Java语言基础

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

   Scanner这个类,可以很方便的从控制台读取内容,导入所需类的文件夹(包)import java.util.Scanner;拿出你要使用的工具.Scanner,实例化Scanner对象。使用键盘输入功能,注意:in为普通变量,可以随便改Scanner in=new Scanner(System.in);提示键盘输入内容。 输入正确值后按回车结束.System.out.println("请输入整数");开始利用键盘输入值in,并存贮到定义的变量中.int num=in.nextInt();根据所输入的数字进行相关的运算.(调用变量中值开始使用);System.out.println("你所输入的数字的平方数是:"+(num*num));

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

util的random是一个类:包含nextInt(),nextDouble ()等类似的方法。
math的random只是一个方法:返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
例如,对比两种方法产生的随机数:


两种方法都能够起到相同的作用,但是,如果许多线程需要以极高的速率生成伪随机数,Math.random()可能会减少每个线程对拥有自己伪随机数生成器的争用。所以很多应用程序会发现 Math.random() 方法更易于使用。

3.运行下列程序,结果是什么?查阅资料,分析为什么。

为了处理精度损失的问题,可以使用java.math.BigDecimal类,查阅JDK帮助文档或教材p378,对上述程序进行修改。
浮点型数据在进行运算时有极小误差。
可以使用java.math.BigDecimal类,只进行数值的运算。
如下:

结果为:

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

.本次的学习总结
1、运行程序时经常会出现这种情况,请老师指点一下:

2、对方法的调用过程还是不太熟练,总是将一些问题想得太过于简单。
3运用输入、随机数等都需要导入所需类的文件包才可;
Java和c在逻辑有着很多共同点,只是在语法方面有所不同,但Java比c增加了更多的功能,适用性更加广泛,所以学过c再接触Java并不会有太多的难点。
4、运用数组时,一定要注意数组的下标是否会越界的问题。尽量使用系统自带的.length的方法表示长度。

1、看商品猜价格
程序设计思路:
运用Random函数产生随机数,输入价格进行判断,并把猜测的结果输出。
实验问题分析:
问题:初期对java程序的输入和输出不是很熟练,在输入和输出的时候经常会出错。
原因:没有对输入和输出的方式进行很好的理解。
解决方案:看书看课件充分理解了java程序的基本格式。

2.万年历

程序设计思路:
判断用户输入的年份是否是闰年,再计算出距1990年有多少年并通过用户输入的月份计算出距1990年1月1日有多少天,可以得到日期对应的是星期几,之后计算月初对应的星期以及月份对应的天数并一一对应输出。

实验问题分析:

问题:输入的万年历每月的1号和周几对不上
原因:调用函数时出现了问题
解决方案:对程序进行了修改,在恰当的地方调用了函数

3、评分系统
程序设计思路:
定义方法求出最大值最小值平均值,在主函数中进行控制和调用。最后输出对个人的评分。
实验问题分析:
问题:双层循环套用,却只进行内层循环
原因:丢掉了外层for循环的大括号
解决方案:在对应位置加上了大括号
问题:评分中不会运用数组接收每个人的最大最小值
原因:定义评分最大最小值只能是一维数组。每个人的分数均有最大最小值
解决方案:用一维数组来接收最值以及分均值

码云提交历史截图

posted @ 2018-03-18 14:08  Shirley软妹  阅读(178)  评论(1编辑  收藏  举报