• 《java技术》第一次作业


    (一)、学习总结
    1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
    Scanner的使用:先声明import java.util.Scanner,用Scanner input =new Scanner(System,in);int a=input nextInt();读入一个数。对输入类型没有要求。关于nextInt()、next()和nextLine():nextInt()只读取数值,剩下” ”还没有读取,并将光标放在本行中。next()只读空格之前的数据,并且光标指向本行,遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,即获得第一个扫描到的不含空格、换行符的单个字符串。使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。

    运行结果:

    如果把程序修改:
    s1=input.next();
    s2=input.nextLine();
    结果:

    nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法给s2从键盘输入值。
    2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
    Random类的随机方法是设定随机种子的,(如:new Random().nextInt(10)),这里的10就是随机种子,根据随机数的原理,相同随机种子在相同的随机次数中产生的随机数是一样的,如果看Math的random方法的实现代码的话,就会发现,该方法就是调用的Random类的nextDouble()方法。math的random只能获得一个随机数,而Random类里边还提供了很多对随机数处理的方法。

    结果:

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

                public class Test {
    public static void main(String args[]) { 
        double a = 0.1;
        double b = 0.1;
        double c = 0.1;
        if((a + b + c) == 0.3){
            System.out.println("等于0.3");
        }else {
            System.out.println("不等于0.3");
        }
    }     
    

    }

    为了处理精度损失的问题,可以使用java.math.BigDecimal类,查阅JDK帮助文档或教材p378,对上述程序进行修改。
    结果:

    改进

    结果是正确的,但是书上的还是没看懂。
    4.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。
    c和java有点混,多写程序比只看书效率要高,对知识理解也更深入,主要还是多实践。
    (二)、实验总结
    1、看商品猜价格
    程序设计思路:先产生一个随机数,并输出(为了检验程序),然后用for循环十次比较输入的价格,在循环内用if判断猜大、猜小以及猜对的情况,并做出相应输出。
    问题:只要没猜够十次,不论猜对与否,都可以一直猜。
    原因:猜对后,没有跳出循环。
    解决方案:在循环中猜对了后面使用return跳出循环。
    2、万年历
    程序设计思路:编写四个方法:1判断闰年,2求每个月天数(需调用第一个方法),3求距离1900.1.1的总天数(调用1,2方法);4输出当月日历(需调用第2、3方法)。用主方法调用四个方法并输出。
    问题1:日历对不齐。
    原因:使用英文表示星期,每个单词所占字符有长有短导致。
    解决方案:用空格填补,使长度相同。
    问题2:求距离1900.1.1的天数不对
    原因:参数调用有问题
    解决方案:改参数为表示月份的变量。
    3、评分系统
    程序设计思路:编写一个5行10列的矩阵,用于保存输入的是个评委对五个选手的评分,编写三个方法:求矩阵每行数的最大值,最小值,去掉最大值和最小值后的平均值。在主方法中分别对五个选手调用方法求出分数,用arrays进行排序。
    问题1:输出有误差

    原因:多次尝试,无法找出原因
    解决方案:……~~~~

    码云提交记录截图:

  • 相关阅读:
    链表补充及链表和数组的区别
    单链表(不带头结点)
    动态数组
    【笔记】SQL语言的设计与编写
    netty 学习笔记一:感受 IO编程 NIO编程 与 Netty 编程
    分享系列——Thread#join() 在 Java 源码中并没有 notify ,被阻塞线程是如何唤醒的?答案在 JVM
    RabbitMQ 安装 图笔记版
    RabbitMQ 安装——RPM 和 TAR 两种方式
    学原理脱坑 之 centos 6/7 更新 UTC 以及 设置系统时区
    数据结构和算法篇——散列表
  • 原文地址:https://www.cnblogs.com/yimeixiaodanke/p/8596669.html
Copyright © 2020-2023  润新知