一、实验过程:

1.先创建一个学号命名的文档:

2.一个百分制成绩转化为等级:

3.新建一个包,另一个测试:

4.打开UML,建模软件umbrello进行建模:

相关程序:

5.我的保存:

二、遇到的问题以及解决方法:

这次的实验总体上比较顺利,就是自己边做边想花费了很多的时间。但还是遇到了一些小问题。

比如说:实验指导上对于UML建模由Cat和Dog变为Animal包括Cat和Dog的模型图这一部分的变化讲的不是很详细,

所以我已开始不会做。但是后来明白Animal 也是需要自己新建立的,所以后来彻底明白了这个实验中UML的用法。

也会自己画连接线。

三、PSP时间统计:

步骤         耗时百分比

需求分析           40%

设计               20%

代码实现            10%

测试                10%

分析总结             20%

四、使用TDD的方法设计并实现复数类Complex

1.产品代码:

public class Complex {

//实部realpart,虚部imaginPart
   private double realPart;
   private double imaginPart;

//复数类Complex()构造函数,将实部虚部都置为0
   public Complex(){
           this.realPart = 0;
           this.imaginPart = 0;
    }

//Complex(double r,double i)创建复数对象的同时完成复数的实部,虚部的初始化
   public Complex(double r,double i){
          this.realPart = r;
          this.imaginPart = i;
   }

//getRealPart()获取实部
   public double getRealPart(){
         return realPart;
   }

//getImaginaryPart()获取虚部
   public double getImaginaryPart(){
          return imaginPart;
   }

//setRealPart(double d)设置实部
   public void setRealPart(double d){
         this.realPart = d;
   }

//setImaginaryPart(double d)设置虚部
         public void setImaginaryPart(double d){
         this.imaginPart = d;
   }

//add(Complex c)复数相加
          public void add(Complex c1,Complex c2){
          Complex c = new Complex(c1.realPart+c2.realPart,c1.imaginPart+c2.imaginPart);
           print(c);
   }

//minus(Complex c)复数相减
  public void minus(Complex c1,Complex c2){
         Complex c = new Complex(c1.realPart-c2.realPart,c1.imaginPart-c2.imaginPart);
         print(c);
  }

//ComplexMulti(Complex c)复数相乘
        public void ComplexMulti(Complex c1,Complex c2){
        Complex c = new Complex(c1.realPart*c2.realPart-c1.imaginPart*c2.imaginPart,c1.realPart*c2.imaginPart+c1.imaginPart*c2.realPart);
        print(c);
  }

//toString()把当前复数对象的实部,虚部组合成a+bi的字符串形式
  public void print(Complex c){
        double a = c.realPart;
        double b = c.imaginPart;
        System.out.println(a+"+"+b+"i");
  }

}

2.测试代码:

import org.junit.Test;

import junit.framework.TestCase;

public class ComplexTest extends Complex {

@Test
          public void printTest(){
          Complex c1 = new Complex(3.5,9);
          Complex c2 = new Complex(9,23);
          Complex c = new Complex();
          c.ComplexMulti(c1, c2);
          c.add(c1, c2);
          c.minus(c1, c2);
    }

}

五、体会

这次的实验并不难,但是内容很多,要看的东西也有很多。而且有了除Java编程之外,另外的东西,

例如UML建模软件。而且每次实验的感觉都是可以接触到很多新的东西,对我很有提高。

Java第二次实验20135204的更多相关文章

  1. 南京邮电大学java第二次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  2. java第二次实验报告

    课程:Java实验   班级:201352     姓名:池彬宁  学号:20135212 成绩:             指导教师:娄佳鹏   实验日期:15.05.05 实验密级:         ...

  3. Java 第二次实验20145104 张家明

    实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 (一)单元测试 ...

  4. Java第二次实验报告——Java面向对象程序设计

    北京电子科技学院(BESTI) 实    验    报    告 课程名称:java程序设计实验      班级:1352         姓名:洪韶武      学号:20135219 成绩:   ...

  5. java第二次实验

    1. 本章学习总结 答:学会在java中使用函数调用. 学会在Java程序中使用函数,使程序层次更清晰. 使用StringBuilder代替string拼接,减少内存空间的占用. 使用BigDecim ...

  6. java第二次实验报告20135231

    Java实验报告二:Java面向对象程序设计 20135231 何佳 实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉 ...

  7. 20165210 Java第二次实验报告

    20165210 实验二 Java面向对象程序设计 一.面向对象程序设计1--单元测试和TDD 实验要求 参考 http://www.cnblogs.com/rocedu/p/6371315.html ...

  8. 20145330《Java程序设计》第二次实验报告

    20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...

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

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

随机推荐

  1. jsonp封装方法二

    前言: 看到玉伯的聊聊jsonp的p,引发了另一种loader方式来跨域的方法,他把它叫做JSONM协议,原理和seajs相似,都是动态加载script,加载完成后执行callback, 同时还不用考 ...

  2. day 85 Vue学习之vue-cli脚手架下载安装及配置

      1. 先下载node.js,下载地址:https://nodejs.org/en/download/ 找个目录保存,解压下载的文件,然后配置环境变量,将下面的路径配置到环境变量中. 由于 Node ...

  3. [转]Docker 生产环境之配置容器 - 限制容器资源

    默认情况下,容器没有资源限制,可以使用主机内核调度程序允许的给定资源.Docker 提供了一些方法来控制容器可以使用多少内存.CPU 或块 IO,并设置 docker run 命令的运行时配置标志.本 ...

  4. 第五周 加分题-mybash的实现

    第五周 加分题-mybash的实现 使用fork,exec,wait实现mybash 产品代码 #include <stdio.h> #include <stdlib.h> # ...

  5. ubuntu 装 mysql

    sudo apt-get install mysql-server mysql-client

  6. Deep Learning 资料总结

    http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/ : 理解神经网络   ELU:

  7. setInterval只执行一次的原因

    setInterval(arrow(),) 改为: setInterval(arrow,) 原因: arrow()这是一个函数调用,函数调用就会有返回值, 而arrow()没有返回值,所以这里的arr ...

  8. Tomcat部署Web应用

    在Tomcat中部署Web有三种方法: 1,可以将Web应用文件直接复制到webapps目录下,也可以将Web应用打成war包放到webapps目录下,tomcat会自动解开war包,并在webapp ...

  9. 从《乱世王者》看腾讯SLG手游如何搭建完整安全服务

    WeTest 导读 <乱世王者>是由腾讯旗下天美工作室群自主研发的一款战争策略手游,在经历了2015年-2017年的SLG品类手游的爆发之势下,于2017年11月21日正式公测. < ...

  10. .net 分布式学习计划

    一: 1:.net分布式系统架构的思路     https://blog.csdn.net/slowlifes/article/details/53162014 2: nginx+iis实现负载均衡 ...