zoukankan      html  css  js  c++  java
  • 20172319 2018.04.11 《Java程序设计教程》第7周课堂测验(补写博客)

    20172319 2018.04.11 《Java程序设计教程》第7周课堂测验

    • 课程:《程序设计与数据结构》
    • 班级:1723
    • 学生:唐才铭
    • 学号:20172319
    • 指导老师:王志强
    • 日期:2018.04.11
    • 必修/选修:必修

    目录


    测试内容

    • 完成编程项目PP7.4:具体参考《java程序设计教程》(第八版)
    • Compareble接口的实现

    测试要求


    实验步骤

    前期准备

    • 敲好课本上的例7.3(RationalTester2.java-测试)及例7.4(RationalNumber2.java-类),编译运行看其是否有误,若有误,对照课本对两个代码一一进行排查,无误后即可开始着手编程项目。

    需求分析

    1. 需要理解接口的基本知识
    2. 掌握如何实现接口
    3. 理解Comparable接口及其包含的compareTo方法(唯一一个方法)

    代码实现及解释

    1. 实现接口的类要在类声明头部使用保留字implements,接着再给出接口名。在RationalNumber类的头部尾端加上implements Comparable<RationalNumber2>声明要实现Comparable接口。
      public class RationalNumber2 implements Comparable<RationalNumber2>
    2. 若类声明要实现某个接口,必须提供实现这个接口中所有方法的实现代码。因此,要完整地实现接口需要在RationalNumber2类中提供实现接口中所有方法的代码。public int compareTo(RationalNumber2 op2)
    3. 将RationalNumber2中的对象数值转化为浮点值,再与定义好的误差标准比较(理由:参考week5学习总结中的浮点数值比较时的较好方法
    double n1, n2, difference;
    
          n1 = (double) numerator / denominator;
          n2 = (double) op2.getNumerator() / op2.getDenominator();
          difference = Math.abs(n2 - n1);
          if(difference < 0.0001)
             return -1;
          else
             if (difference > 0.0001)
                return 1;
             else
                return 0;
    
    1. 测试程序代码
    public class RationalTester2
    {
       //----------------------------------------------------------------------
       // Creates some rational number objects and performs various
       // operations on them.
       //----------------------------------------------------------------------
       public static void main(String[] args)
       {
          RationalNumber2 r1 = new RationalNumber2(1, 3);
          RationalNumber2 r2 = new RationalNumber2(1, 9);
          RationalNumber2 r3, r4, r5, r6, r7;
    
          System.out.println("First rational number: " + r1);
          System.out.println("Second rational number: " + r2);
          if (r1.isLike(r2))
              System.out.println("r1 and r2 are equal.");
          else
              System.out.println("r1 and r2 are NOT equal.");
    
          if (r1.compareTo(r2) == 1 )
                System.out.println(" r1 > r2 ");
            else
                if (r1.compareTo(r2) ==-1)
                System.out.println(" r1 < r2 ");
            else
                System.out.println("r1 = r2");
    
          r3 = r1.reciprocal();
          System.out.println("The reciprocal of r1 is: " + r3);
    
          r4 = r1.add(r2);
          r5 = r1.subtract(r2);
          r6 = r1.multiply(r2);
          r7 = r1.divide(r2);
    
          System.out.println("r1 + r2: " + r4);
          System.out.println("r1 - r2: " + r5);
          System.out.println("r1 * r2: " + r6);
          System.out.println("r1 / r2: " + r7);
    
       }
    }
    
    

    程序运行结果及代码截图





    测试过程及遇到的问题

    • 问题1:条件语句的未知及关系运算符的错误使用导致输出错误。
    • 解决:学习完条件语句,然后进行代码调试,找到不合理的地方进行修改。
    • 问题2:对类编写的相关知识还存在模糊、概念不清等情况,导致初期编程工作有阻碍。
    • 解决:查找资料,在编类时认真分析思考各个语句的作用,定义适合的方法名以便于调用。
    • 返回目录

    代码链接


    参考资料

  • 相关阅读:
    OMFCL 使用
    客户化 Summary 页的 Properties
    瑞星升级包下载
    观察者模式Observer
    单例模式Singleton
    java中8大排序
    向上转型和向下转型
    瀑布流的实现
    [转]降级论
    Grid的使用
  • 原文地址:https://www.cnblogs.com/Tangcaiming/p/8799258.html
Copyright © 2011-2022 走看看