一、实验过程:

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. Disruptor时序调用

    接下来,我会对disruptor的设计和源码上进行讲解,先来一篇时序图,简单理解下disruptor的工作过程

  2. python基础之import模块导入和包的调用

    模块概念 在Python中,一个.py文件就称之为一个模块(Module).使用模块组织代码,最大的好处是大大提高了代码的可维护性 模块一共三种:python标准库.第三方模块.应用程序自定义模块. ...

  3. Matlab zeros ones

    zeros函数——生成零矩阵 ones函数——生成全1阵 [zeros的使用方法] B=zeros(n):生成n×n全零阵. B=zeros(m,n):生成m×n全零阵. B=zeros([m n]) ...

  4. switch...case 语句

    var a = 6;switch(a){ case 1:   alert("1111");   break; case 2:   alert("2222");  ...

  5. 【转载】怎样在C++工程中集成C#窗口

    原文:http://www.cnblogs.com/clever101/archive/2009/12/14/1624204.html 本文转自博客园,此文作者依据codeproject英文版本翻译! ...

  6. TMS320VC5509的USB口通信

    1. 硬件如下,直接连接5509A的USB口即可 2. 测试如下,选择完器件型号之后会多出一个cmd文件,需要删除 3. 运行程序,电脑会出现USB安装驱动的提示 不过安装驱动遇到问题,应该是我电脑是 ...

  7. Python中re模块详细介绍

    正则的介绍及应用实例详解 """ 1.什么是正则 正则就是用一系列具有特殊含义的字符组成一套规则,该规则用来描述具有某一特征的字符串, 正则就是用来去一个大的字符串中匹配 ...

  8. .Net Core和.Net Standard直观理解

    .NET framework和.NET Core里面有一些部分,内容是相同的. 这部分相同的内容,就被称为标准库...即NET Standard Library. 而那些不同的部分,则分别叫做.NET ...

  9. UWP 滚动条私人定制

    最近突然发现微软自带的滚动条好挫哦 微软哒(棒棒哒) 网上找的(美美哒) 好了. 如果你想要棒棒哒,那么就不用往下看了(手动再见). 如果你想要美美哒,就需要下面的神秘代码. <Style Ta ...

  10. node.js学习笔记(二)——回调函数

    Node.js 异步编程的直接体现就是回调. 那什么是回调呢?回调指的是将一个函数作为参数传递给另一个函数,并且通常在第一个函数完成后被调用.需要指明的是,回调函数不是由该函数的实现方直接调用,而是在 ...