zoukankan      html  css  js  c++  java
  • 20155205 《Java程序设计》实验二(Java面向对象程序设计)实验报告

    20155205 《Java程序设计》实验二(Java面向对象程序设计)实验报告

    一、实验内容及步骤

    (一)单元测试

    (1)三种代码

    • 举例:我们要在一个MyUtil类中解决一个百分制成绩转成“优、良、中、及格、不及格”五级制成绩的功能。

    • 测试结果:

    (2)TDD(Test Driven Devlopment, 测试驱动开发)

    • 测试结果:

    (二)面向对象三要素

    (1) 抽象

    (2) 封装、继承与多态

    • 使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印。

    (三)设计模式初步

    对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式。让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印。

    二、实验练习:使用TDD的方式设计关实现复数类Complex

    1. 伪代码
    复数运算:
    定义复数
    定义构造函数
    定义共有方法:加减乘除
    
    1. 产品代码
    public class Complex{
        private double r;
        private double i;
    
        public Complex(double r, double i) {
            this.r = r;
            this.i = i;
        }
    
        public static double getRealPart(double r) {
            return r;
        }
    
        public static double getImagePart(double i) {
            return i;
        }
    
        public Complex ComplexAdd(Complex a) {
            return new Complex(r + a.r, i + a.i);
        }
        public Complex ComplexSub(Complex a) {
            return new Complex(r - a.r, i - a.i);
        }
        public Complex ComplexMulti(Complex a) {
            return new Complex(r * a.r - i * a.i, r * a.i + i * a.r);
        }
        public Complex ComplexDiv(Complex a) {
            return new Complex((r * a.i + i * a.r)/(a.i * a.i + a.r * a.r), (i * a.i + r * a.r)/(a.i * a.i + a.r * a.r));
        }
    
        public String toString() {
            String s = " ";
            if (i > 0)
                s =  r + "+" + i + "i";
            if (i == 0)
                s =  r + "";
            if (i < 0)
                s = r + " " + i + "i";
            return s;
        }
    }
    
    1. 测试代码

    三、总结与分析

    (一)遇到的问题及解决方案

    • 问题1:在自己的file里找不到settings,上网查也找不到。
    • 问题1解决方案:后来在开始页面的configure设置里找到了plugins,再选其中的browse,就能设置了

    • 问题2:在测试stringbuffer时,总是出现这样的情况:

    • 问题2解决方案:看了一下Intellj IDEA 简易教程中的测试代码,更改了一下test里类的名字,把T改成t,便能成功运行。

    • 问题3:在starUML中add一个operation时找不到type

    • 问题3解决方案:直接写名字的时候加上。但是()就会出现在最后而不是中间。

    (二)PSP

    步骤 耗时 百分比
    需求分析 20min 16%
    设计 30min 24%
    代码实现 50min 40%
    测试 5min 4%
    分析总结 20min 16%

    (三)总结单元测试的好处

    • 就我个人的感受而言,单元测试提供了一种高效快速的测试代码正确性的方法。一开始不知道怎么做,参考了关于单元测试。自己有了很多思考,成长了许多。
  • 相关阅读:
    29
    28
    27
    950. 按递增顺序显示卡牌
    25
    20190624
    409. 最长回文串
    636. 函数的独占时间
    LeetCode 1046. 最后一块石头的重量(1046. Last Stone Weight) 50
    LeetCode 942. 增减字符串匹配(DI String Match) 49
  • 原文地址:https://www.cnblogs.com/haoliberale/p/6750198.html
Copyright © 2011-2022 走看看