• 20145320《Java程序设计》第二次实验报告


    20145320《Java程序设计》第二次实验报告

    北京电子科技学院(BESTI)实验报告

    课程:Java程序设计

    班级:1453

    指导教师:娄嘉鹏

    实验日期:2016.04.12 15:30-18:30

    实验名称:Java开发环境的熟悉

    实验内容:

      1. 初步掌握单元测试和TDD
      1. 理解并掌握面向对象三要素:封装、继承、多态
      1. 初步掌握UML建模
      1. 熟悉S.O.L.I.D原则
      1. 了解设计模式

    使用TDD的方式设计关实现复数类Complex

    步骤:
    1.编写计算复数类Complex,分为加减乘置数四种情况。

    伪代码如下
    public class Complex {
      double real=0;//实部
      double imaginary=0;//虚部
     Complex(){}
      getComplex(double real,double imaginary)
     {
         this.real=real;
         this.imaginary=imaginary;
     }
      add(Complex c1){//加法
         c.real=c1.real+this.real;
         c.imaginary=c1.imaginary+this.imaginary;
         return c;
     }
     
      multi(Complex c1){//乘法
         c.real=c1.real*this.real-c1.imaginary*this.imaginary;
         c.imaginary=c1.imaginary*this.real+this.imaginary*c1.real;
         return c;
     }
     
      Minus(Complex c1){//减法
         c.real=c1.real-this.real;
         c.imaginary=c1.imaginary-this.imaginary;
         return c;
     }
    }
    
    产品代码如下
    package experiment2;
    public class Complex {
     private double real=0;//实部
     private double imaginary=0;//虚部
     Complex(){}
     public void getComplex(double real,double imaginary)
     {
         System.out.println("set");
         this.real=real;
         this.imaginary=imaginary;
     }
     public Complex add(Complex c1){//加法
         Complex c=new Complex();
         System.out.println("add");
         c.real=c1.real+this.real;
         c.imaginary=c1.imaginary+this.imaginary;
         return c;
     }
     
     public Complex multi(Complex c1){//乘法
         Complex c =new Complex();
         System.out.println("multi");
         c.real=c1.real*this.real-c1.imaginary*this.imaginary;
         c.imaginary=c1.imaginary*this.real+this.imaginary*c1.real;
         return c;
     }
     
     public Complex Minus(Complex c1){//减法
         System.out.println("Minus");
         Complex c =new Complex();
         c.real=c1.real-this.real;
         c.imaginary=c1.imaginary-this.imaginary;
         return c;
     }
      
     public double GetRealPatr(){//获得实部
         return this.real;
     }
     
      public double GetimaginaryPatr(){//获得虚部
         return this.imaginary;
     }
      
    public Object tostring(){//合成一个a+bi字符串
        Object a=new Object();
        if(imaginary>0)
             a=this.real+"+"+this.imaginary+"i";
         if(imaginary==0)
             a=this.real;
          if(imaginary<0)
            a=this.real+""+this.imaginary+"i";
          System.out.println(a);
        return a;
    }
    }
    

    test如下

    test1

    测试项目:

    • 实部赋负数
    • 虚部赋负数
    • 取c1实部与虚部
    • 输出字符串c2、x、y、z
    • 置数方法、加法方法、减法方法、乘法方法

    测试结果

    test2

    测试项目:

    • 虚部实部均为负数
    • 负复数与正复数相乘

    测试结果

    test3

    测试项目

    • 虚部实部输入负小数
    • 负复小数与正复小数相乘

    出现错误了!错误在这里,这里定义了虚、实部均为int,其实可为double型

    public void getComplex(int real,int imaginary)
     {
         System.out.println("set");
         this.real=real;
         this.imaginary=imaginary;
     }
    

    修改代码后测试结果

    建立的模型如下

    从模型中可以看见在Complex类中定义了如下方法:
    • 首先定义了实部real与虚部imaginary,并赋初值0
    • getComplex()方法用于置数
    • add()方法用于两个复数相加
    • multi()方法用于两个复数相乘
    • Minus()方法用于两个复数相减
    • GetRealPatr()方法得到实部
    • GetimaginaryPatr()方法得到实部
    • tostring()方法把复数结合成为a+bi形势的字符串

    PSP(Personal Software Process)时间

    步骤 耗时 百分比
    需求分析 24min 13.3%
    设计 36min 20%
    代码设计 60min 33.3%
    测试 40min 22.2%
    分析总结 20min 11.1%

    单元测试的好处

    • 减少问题出现,提高程序质量,在测试中进行项目,边改边写,可以将自己设计的项目不断优化

    • 更快地定位问题出现在哪个模块,提高效率,减少成本,这有助于实现模块的“块内高内聚,块间低耦合”

    • 可以放心修改部分代码

  • 相关阅读:
    Codeforces Round #639 Div2 A~D题解
    Codeforces Round #548 Div2 A~C题解
    Codeforces Round #581 Div2 A~D题解
    Educational Codeforces Round 69 Div2 A~D题解
    Codeforces Round #572 Div2 A~E题解
    Codeforces Round #663 Div2 A~D 题解
    44. 通配符匹配 leetcode 每日一题
    174. 地下城游戏 leetcode每日一题
    将有序数组转换为二叉搜索树 2020/7/3
    Multiplication 3 AtCoder
  • 原文地址:https://www.cnblogs.com/zqh20145320/p/5388999.html
Copyright © 2020-2023  润新知