类设计实验

实验三:类设计实验

一、实验目的

练习并掌握根据具体需求设计类,并且设计可运行程序来验证设计的正确性。

二、实验内容

先创建一个类Complex设计复数运算程序,其中包括求模、加法、减法、乘法和显示,以此来进行|(37.4+29i)*(73.2-85.2i)+(-52+73i)-(25.4-27i)|的运算,然后创建另一个类TestComplex来调用Complex类里的方法,并输出结果。

三、实验设计

设计原理:类和方法的构造,测试程序的设计,调用类的方法。

设计方法:创建一个Complex类,写出求模、加法、减法、乘法和显示函数,再创建一个TestComplex类调用Complex类实现复数的运算以及输出结果。

设计过程:创建类Complex,定义实部和虚部,利用构造方法this构造实部和虚部,设计求模、加法、减法、乘法和显示的函数。创建程序TestComplex,设计主函数,调用Complex类,实现测试的实例数据计算,并输出结果。

设计结果:输出“|(37.4+29i)*(73.2-85.2i)+(-52+73i)-(25.4-27i)|”的字符串,并显示出结果。

四、实验过程

1.创建一个项目和包;

2.设计一个复数类,写出五个方法,复数的求模,加法、减法,乘法和显示;

3.设计一个可运行程序TestComplex,调用Complex类完成计算,并输出结果。

问题:两个类之间的联系关系不是很明确,尤其是在TestComplex中使用Complex的方法,在测试时对于数据的实现及结果的实现并不是很清楚。

解决方案:通过上课老师所讲的,解决了问题并且成功实现了复数的计算。

五、实验结果

测试数据:|(37.4+29i)*(73.2-85.2i)+(-52+73i)-(25.4-27i)|

实验现象:屏幕上显示  37.4+37.4i

73.2+73.2i

-52.0+-52.0i

25.4+25.4i

266.87999999999965+266.87999999999965i

214.87999999999965+214.87999999999965i

189.47999999999965+189.47999999999965i

 

实验分析:首先设计Complex类,其中包括加法,减法,乘法,求模,输出结果等五种方法,再设计一个可运行程序TestComplex类,调用Complex类里的方法,实现了复数的计算,输出结果,以此验证了Complex类的正确性。

 

 

详细测试结果分析

1:需要验证的复数有四部分,相乘,相加,相减,首先输出每部分复数,此时并未进行计算,只是赋值给复数

Complex类:

TestComplex类:

测试结果:

2:调用Complex类里面的乘法函数,进行第一部分与第二部分相乘,调用Complex类中乘法函数,然后输出计算结果

Complex类:

TestComplex类:

测试结果:

 

3:调用Complex类里面的加法函数,进行前面乘法的计算结果与第三部分相加,调用Complex类中加法函数,然后输出计算结果

Complex类:

TestComplex类:

测试结果:

4:调用Complex类里面的减法函数,进行前面加法的计算结果与第四部分相减,调用Complex类中减法函数,然后输出计算结果,这样就验证了Complex类设计的正确性,完成实验。

Complex类:

 

TestComplex类:

测试结果:

 

 

六、讨论与分析

知识理解:构造函数的定义与使用,类的定义与使用,如何测试数据,复数不同计算方法的实现;

结果分析:复数的运算可以很好地实现结果,并且利用可运行程序TestComplex来调用复数类完成表达式的运算,并输出结果

 

七、附录:关键代码(给出适当注释,可读性高)

package java57;

 

public class Complex {//Complex

    double realpart,virtualpart;//定义实部和虚部

    Complex (double realpart,double virtualpart){

    this.realpart =realpart;//用构造方法构造实部,虚部

    this.virtualpart =virtualpart;

    }

    double mod() {//求模的方法

        double modlength;

    modlength=Math.sqrt(realpart*realpart+virtualpart*virtualpart);

        return modlength;

    }

    Complex multiply(Complex b){//复数乘法

        Complex result = new Complex(this.realpart*b.realpart -this.virtualpart *b.virtualpart ,this.realpart *b.virtualpart +this.virtualpart *b.virtualpart );

        return result;

    }

    Complex plus(Complex b){//复数加法

        Complex result = new Complex(this.realpart +b.realpart ,this.virtualpart +b.virtualpart );

        return result;

    }

    Complex minus(Complex b){//复数减法

        Complex result = new Complex(this.realpart -b.realpart ,this.virtualpart -b.virtualpart );

        return result;

    }

    void show(){//显示输出的内容

        if(realpart==0){

           System.out.println(virtualpart);

        }

        if(virtualpart==0){

           System.out.println(realpart);

        }

        else {

           System.out.println(realpart+"+"+realpart+"i");

        }

    }

}

 

 

package java57;

 

public class TestComplex {//创建一个TestComplex类用于测试数据

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Complex c1=new Complex(37.4,29);//调用复数类

        Complex c2=new Complex(73.2,85.2);

        Complex c3=new Complex(-52,73);

        Complex c4=new Complex(25.4,-27);

        double ret = c1.multiply(c2).plus(c3).minus(c4).mod();

        c1.show();

        c2.show();

        c3.show();

        c4.show();

        c1.multiply(c2).show();

        c1.multiply(c2).plus(c3).show();

        c1.multiply(c2).plus(c3).minus(c4).show();//实现复数类中的不同方法并输出结果

        }

 

}

 

 

 

注:每个部分根据情况可以再分子标题,前提是层次清晰、逻辑性强。

 

 

 

 

实验三:类设计实验

一、实验目的

练习并掌握根据具体需求设计类,并且设计可运行程序来验证设计的正确性。

二、实验内容

先创建一个类Complex设计复数运算程序,其中包括求模、加法、减法、乘法和显示,以此来进行|(37.4+29i)*(73.2-85.2i)+(-52+73i)-(25.4-27i)|的运算,然后创建另一个类TestComplex来调用Complex类里的方法,并输出结果。

三、实验设计

设计原理:类和方法的构造,测试程序的设计,调用类的方法。

设计方法:创建一个Complex类,写出求模、加法、减法、乘法和显示函数,再创建一个TestComplex类调用Complex类实现复数的运算以及输出结果。

设计过程:创建类Complex,定义实部和虚部,利用构造方法this构造实部和虚部,设计求模、加法、减法、乘法和显示的函数。创建程序TestComplex,设计主函数,调用Complex类,实现测试的实例数据计算,并输出结果。

设计结果:输出“|(37.4+29i)*(73.2-85.2i)+(-52+73i)-(25.4-27i)|”的字符串,并显示出结果。

四、实验过程

1.创建一个项目和包;

2.设计一个复数类,写出五个方法,复数的求模,加法、减法,乘法和显示;

3.设计一个可运行程序TestComplex,调用Complex类完成计算,并输出结果。

问题:两个类之间的联系关系不是很明确,尤其是在TestComplex中使用Complex的方法,在测试时对于数据的实现及结果的实现并不是很清楚。

解决方案:通过上课老师所讲的,解决了问题并且成功实现了复数的计算。

五、实验结果

测试数据:|(37.4+29i)*(73.2-85.2i)+(-52+73i)-(25.4-27i)|

实验现象:屏幕上显示  37.4+37.4i

73.2+73.2i

-52.0+-52.0i

25.4+25.4i

266.87999999999965+266.87999999999965i

214.87999999999965+214.87999999999965i

189.47999999999965+189.47999999999965i

 

实验分析:首先设计Complex类,其中包括加法,减法,乘法,求模,输出结果等五种方法,再设计一个可运行程序TestComplex类,调用Complex类里的方法,实现了复数的计算,输出结果,以此验证了Complex类的正确性。

 

 

详细测试结果分析

1:需要验证的复数有四部分,相乘,相加,相减,首先输出每部分复数,此时并未进行计算,只是赋值给复数

Complex类:

TestComplex类:

测试结果:

2:调用Complex类里面的乘法函数,进行第一部分与第二部分相乘,调用Complex类中乘法函数,然后输出计算结果

Complex类:

TestComplex类:

测试结果:

 

3:调用Complex类里面的加法函数,进行前面乘法的计算结果与第三部分相加,调用Complex类中加法函数,然后输出计算结果

Complex类:

TestComplex类:

测试结果:

4:调用Complex类里面的减法函数,进行前面加法的计算结果与第四部分相减,调用Complex类中减法函数,然后输出计算结果,这样就验证了Complex类设计的正确性,完成实验。

Complex类:

TestComplex类:

测试结果:

 

 

六、讨论与分析

知识理解:构造函数的定义与使用,类的定义与使用,如何测试数据,复数不同计算方法的实现;

结果分析:复数的运算可以很好地实现结果,并且利用可运行程序TestComplex来调用复数类完成表达式的运算,并输出结果

 

七、附录:关键代码(给出适当注释,可读性高)

package java57;

 

public class Complex {//Complex

    double realpart,virtualpart;//定义实部和虚部

    Complex (double realpart,double virtualpart){

    this.realpart =realpart;//用构造方法构造实部,虚部

    this.virtualpart =virtualpart;

    }

    double mod() {//求模的方法

        double modlength;

    modlength=Math.sqrt(realpart*realpart+virtualpart*virtualpart);

        return modlength;

    }

    Complex multiply(Complex b){//复数乘法

        Complex result = new Complex(this.realpart*b.realpart -this.virtualpart *b.virtualpart ,this.realpart *b.virtualpart +this.virtualpart *b.virtualpart );

        return result;

    }

    Complex plus(Complex b){//复数加法

        Complex result = new Complex(this.realpart +b.realpart ,this.virtualpart +b.virtualpart );

        return result;

    }

    Complex minus(Complex b){//复数减法

        Complex result = new Complex(this.realpart -b.realpart ,this.virtualpart -b.virtualpart );

        return result;

    }

    void show(){//显示输出的内容

        if(realpart==0){

           System.out.println(virtualpart);

        }

        if(virtualpart==0){

           System.out.println(realpart);

        }

        else {

           System.out.println(realpart+"+"+realpart+"i");

        }

    }

}

 

 

package java57;

 

public class TestComplex {//创建一个TestComplex类用于测试数据

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Complex c1=new Complex(37.4,29);//调用复数类

        Complex c2=new Complex(73.2,85.2);

        Complex c3=new Complex(-52,73);

        Complex c4=new Complex(25.4,-27);

        double ret = c1.multiply(c2).plus(c3).minus(c4).mod();

        c1.show();

        c2.show();

        c3.show();

        c4.show();

        c1.multiply(c2).show();

        c1.multiply(c2).plus(c3).show();

        c1.multiply(c2).plus(c3).minus(c4).show();//实现复数类中的不同方法并输出结果

        }

 

}

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值