zoukankan      html  css  js  c++  java
  • 20182316胡泊 实验3报告

    20182316胡泊 2019-2020-1 《数据结构与面向对象程序设计》实验3报告

    课程:《程序设计与数据结构》
    班级: 1823
    姓名: 胡泊
    学号:20182316
    实验教师:王志强
    实验日期:2019年[9月27日]
    必修/选修: 必修

    1.实验内容

    1. 初步掌握单元测试和TDD

    2. 理解并掌握面向对象三要素:封装、继承、多态(自己去学!)

    3. 初步掌握UML建模

    4. 完成蓝墨云上 (1)-(5)实验。

    2. 实验过程及结果

    单元测试

    • 书写产品代码MyUtil.java
    • 书写测试代码MyUtilTest.java
      • project --- new --- Directory
      • test --- make directory as --- Test Source Root
    • TDD的运用
      • File --- settings --- plugins --- junit
      • 小灯泡 --- creat test
      • File --- Project Structure
    • 测试结果截图

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

    • 手动打出被测试程序StringBuffer,
    • 学习equals的方法assertEquals(),修改网页上的错误代码
    • 按照上面的方法书写测试代码,分别测试三种情况:normal正常情况,exception意外情况(>100/<0),boundary边界情况(0,60,100...)
    • 测试结果截图

    自主编写Complex程序

    • 伪代码(明确程序目的)
    复数运算:
    定义复数
    定义构造函数
    定义共有方法:加减乘除
    
    • 产品代码
    public class Complex {
       private double r;
       private double i;
       public Complex(){
    
       }
       public Complex (double c,double d){
       r=c;
       i=d;
       }
       public static double getreal(double r)
       {
           return r;
       }
       public static double getfake(double i)
       {
           return i;
       }
       public Complex complexadd(Complex c){
           return new Complex(r+c.r,i+c.i);
       }
       public Complex complexsub(Complex c){
           return new Complex(r-c.r,i-c.i);
       }
       public Complex complexcheng(Complex c){
           return new Complex(r*c.r-i*c.i,r*c.i+i*c.r);
       }
       public Complex complexchu(Complex c){
           return new Complex((r*c.r+i*c.i)/(c.r*c.r+c.i*c.i),(i*c.r-r*c.i)/(c.r*c.r+c.i*c.i));
       }
       public String toString(){
           if(i>0)
               return r+"+"+i+"i";
           else if(r==0)
               return r+"";
           else
               return r+""+i+"i";
       }
    
    }
    
    • 测试代码及结果

    uml建模

    上传码云

    3. 实验过程中遇到的问题和解决过程

    • 问题1:在编写test时出现

    • 问题1解决方案:

      • 在编写@Test时,下面定义的类名必须以test开头,然后再打上想要的字符,否则会报错
    • 问题2:在编写toString方法时,误解了复数实部与虚部的意义,讨论情况时,将负数的前面多打了一个“-”。

    • 问题2解决方案:

    • 问题3:每次在调用complex中的方法时,还要打Complex.xxxx

    • 问题3解决方法:实例化后的对象比如

    Complex c1 = new Complex(0, 4);
    

    然后就可以通过实例化的对象c1,调用Complex类中的方法:

    assertEquals(-1.0, c1.getreal(-1.0));
    
    • 问题4:复数运算
    • 解决方法:

    感悟

    • 在第一次使用了idea后,发现它各有利弊,优点数不胜数,比如可以用鼠标操作,有各种缩写,文件更加整齐,功能更强大。但相较于命令行,出现的错误种类与数量更多,而且很多都看不懂。
    • 在自学的过程中,按照博客一步步操作,到最终完成,虽然过程艰难,但让我有了很强的成就感,在帮助别人以及向别人请教的时候,都收获很大。
    • 感谢学长学姐的指导,给了我们很大的帮助,十分感谢。 (⊙ω⊙)

    参考资料

  • 相关阅读:
    DNS正向反向解析
    varnish-4.0.5的反向代理 缓存测试 负载均衡实验
    DS8700 硬盘更换略
    ftp虚拟用户
    maven mvn 命令行 编译打包
    linux下的springboot项目启动文件
    linux系统安装gcc
    linux系统下安装两个或多个tomcat
    linux系统的磁盘挂载
    常用linux命令
  • 原文地址:https://www.cnblogs.com/hp12138/p/11600702.html
Copyright © 2011-2022 走看看