第一次Java作业试验报告
第一次Java作业试验报告
(一)学习总结
1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
import java.util.*;
public class Q123 {
public static void main(String[] args) {
int a;
Scanner in=new Scanner(System.in);
a=in.nextInt();
System.out.println(a);
}
事实上,由于Java属于面向对象的语言,标准输入流(System.in)的调用并不常见。如果要从控制台输入数据,则如上创建Scaaner型变量进行使用。
2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
在生成随机数上,Math类可以在限定范围内生成随机数,也可以生成随机字符等,Random()在直接使用时是以当前时间即System.currentTimeMillis()做为发生器的种子来生成随机数,也可以使用其它种子。
Math类:
int x=(int)(Math.random()*x+y);
则产生一个x-y之间的数。
Random类:
Random rand = new Random();
int x=rand.nextInt(x)+y;
则产生一个x-y之间的数。
3.运行下列程序,结果是什么?查阅资料,分析为什么。
public class Q123 {
public static void main(String args[]) {
double a = 0.1;
double b = 0.1;
double c = 0.1;
if((a + b + c)-0.3<1e-6){
System.out.println("等于0.3");
}else {
System.out.println("不等于0.3");
}
}
}
输出结果是不等于0.3,因为在计算double类型数据时会产生精度损失。
比较两个double类型的数据相等时,其原理是看二者相减是否无限趋近于0。
(二)实验总结
实验内容:
码云根目录链接(HTTPS)
SSH:git@gitee.com:ddd222game/java-hebau.git;
1.看商品猜价格
码云链接
样例图片:
鉴于随机性太强,实在猜不着......
程序设计思路:以Random类随机数来完成价格的生成,以简单的循环与选择框架完成。
有关随机数的事如上文所言。
问题:无
2.万年历
码云链接
样例图片:
这个其实也没啥大问题,主要是换了编译器之后和windons自己的控制台比例不一样,排版有点麻烦。
程序设计思路:利用原始的数据推算出对应的年份日历,以分支结构囊括所有情况。
问题:无
3.评分系统
码云链接
样例图片:
繁杂的输入画面就先免了吧,纯粹人工随机的评分。
程序设计思路:鉴于Java没有结构体,采用双数组同步记录编号和平均分的方式,进行排序以及输出。
问题:无
试验总结
总的来说,作为面向对象的语言,Java很多地方都和cpp系列有极大的不同。但是,无论工具如何,算法始终是一个程序的灵魂与基础,从这一点上来讲,这两者并无大的区别。当然,Java在习惯之后似乎更加方便一些。以上。