《北科大2011java设计实验报告2》由会员分享,可在线阅读,更多相关《北科大2011java设计实验报告2(19页珍藏版)》请在金锄头文库上搜索。
1、Java 程序设计上机作业(二) 学号: 姓名:Java 程序设计上机题(二)1. 根据下面的要求编程实现复数类 ComplexNumber。(1) 复数类 ComplexNumber 的属性realPart: 实部,代表复数的实数部分。imaginPart: 虚部,代表复数的虚数部分。(2) 复数类 ComplexNumber 的方法ComplexNumber( ):构造函数,将实部、虚部都置为 0。ComplexNumber(double r, double i):构造函数,将实部和虚部分别置为 r 和i。getRealPart( ):获取复数对象的实部。getImaginaryPart(
2、 ):获取复数对象的虚部。setRealPart(double d): 把复数对象的实部设置为 d。setImaginaryPart(double d): 把复数对象的虚部设置为 d。complexAdd(ComplexNumber c):将当前对象与 c 相加,返回所得的结果。complexMinus(ComplexNumber c):将当前对象与形参复数对象相减,返回所得的结果。complexMulti(ComplexNumber c):将当前对象与形参复数对象相乘,返回所得的结果。complexSize():返回当前复数对象的大小,其值为 。toString( ):把当前复数对象的实部、
3、虚部组合成 a + bi 的字符串形式返回,其中 a 和 b 分别为实部和虚部的数据。创建复数类的对象,对以上方法进行调用。请将源程序文本填入下框:import javax.swing.JOptionPane;/定义复数类public class ComplexNumber double realPart;/实部Java 程序设计上机作业(二) 学号: 姓名:double imaginPart;/虚部/将实部、虚部都置为0public ComplexNumber()realPart = 0;imaginPart = 0;/将实部和虚部分别置为r和ipublic ComplexNumber(do
4、uble r, double i)realPart = r;imaginPart = i;/获取复数对象的实部public double getRealPart()String s = JOptionPane.showInputDialog(请输入实部 );return realPart = Double.parseDouble( s );/获取复数对象的虚部public double getImaginaryPart()String s = JOptionPane.showInputDialog(请输入虚部 );return imaginPart = Double.parseDouble(
5、s );/把复数对象的实部设置为dpublic double setRealPart(double d)return realPart = d;/把复数对象的虚部设置为dpublic double setImaginaryPart(double d)return imaginPart = d;/将当前对象与c相加,返回所得的结果public ComplexNumber complexAdd(ComplexNumber c)Java 程序设计上机作业(二) 学号: 姓名:ComplexNumber d = new ComplexNumber();d.realPart = this.realPar
6、t + c.realPart;d.imaginPart = this.imaginPart + c.imaginPart;return d;/将当前对象与形参复数对象相减,返回所得的结果public ComplexNumber complexMinus(ComplexNumber c)ComplexNumber d = new ComplexNumber();d.realPart = this.realPart - c.realPart;d.imaginPart = this.imaginPart - c.imaginPart;return d;/将当前对象与形参复数对象相乘,返回所得的结果p
7、ublic ComplexNumber complexMulti(ComplexNumber c)ComplexNumber d = new ComplexNumber();d.realPart = this.realPart * c.realPart -this.imaginPart * c.imaginPart;d.imaginPart = this.realPart * c.imaginPart +this.imaginPart * c.realPart;return d;/返回当前复数对象的大小public double complexSize()double d;d = this.r
8、ealPart * this.realPart + this.imaginPart * this.imaginPart;double r = Math.sqrt( d );return r;/把当前复数对象的实部、虚部组合成 a + bi的字符串形式返回public String toString()String r1 = Double.toString( this.realPart );String r2 = Double.toString( this.imaginPart );String s = r1 + + + r2 +i;return s;Java 程序设计上机作业(二) 学号: 姓
9、名:public static void main(String args) / 创建复数类对象ComplexNumber a = new ComplexNumber();ComplexNumber b = new ComplexNumber(1,2);ComplexNumber c = new ComplexNumber();ComplexNumber d = new ComplexNumber();ComplexNumber e = new ComplexNumber();ComplexNumber f = new ComplexNumber();ComplexNumber g = new
10、 ComplexNumber();/对方法进行调用c.getRealPart();c.getImaginaryPart();d.setRealPart( 3 );d.setImaginaryPart( 4 );e = plexAdd( c );f = plexMinus( c );g = plexMulti( c );/输出结果JOptionPane.showMessageDialog(null, a = + a.toString() + nb = + b.toString()+ nc = + c.toString() + nd = + d.toString() + n复数d 的大小是: +
11、plexSize() + ne = d + c = + e+nf = d - c = + f + ng = d * c = + g);System.exit( 0 );/end method main/end class ComplexNumber运行结果截图:Java 程序设计上机作业(二) 学号: 姓名:2. 设计一个抽象类 CompareObject,里面有抽象方法 CompareTo 用于比较两个对象;然后设计一个 CompareObject 类的子类 Position,有 x、y、z 分别表示其坐标位置,Position 类实现 CompareTo 方法,用于比较两个对象距离原点(0
12、,0,0)的距离之差。创建 Position 类的对象,对以上方法进行调用。请将源程序文本填入下框:/CompareObjectPosition.javaimport javax.swing.JOptionPane;/抽象类CompareObjectabstract class CompareObjectprivate double x,y,z;public CompareObject(double a, double b, double c)x = a;Java 程序设计上机作业(二) 学号: 姓名:y = b;z = c;public double getX()return x;publi
13、c double getY()return y;public double getZ()return z;/抽象方法CompareTopublic abstract double CompareTo( CompareObject d );/CompareObject类的子类Positionfinal class Position extends CompareObjectprivate double l;public Position(double a, double b, double c)super( a, b, c);/将坐标传送给CompareObject的构造函数/用于比较两个对象距
14、离原点(0,0,0)的距离之差public double CompareTo( CompareObject d )double a = Math.sqrt( Math.pow(super.getX(), 2) + Math.pow(super.getY(), 2) + Math.pow(super.getZ(), 2);/对象距离原点的距离double b = Math.sqrt( Math.pow(d.getX(), 2) + Math.pow(d.getY(), 2) + Math.pow(d.getZ(), 2);/d的坐标到原点的距离l = a - b;/两者距离之差return Ma
15、th.abs( l );Java 程序设计上机作业(二) 学号: 姓名:/end class Positionpublic class CompareObjectPosition public static void main(String args) Position p1 = new Position(2, 2, 2);Position p2 = new Position(3, 3, 3);JOptionPane.showMessageDialog(null, (2, 2, 2)与(3, 3, 3)分别距离原点 (0,0,0)的距离之差为: + p2.CompareTo( p1 );System.exit( 0 );/end method main/end class CompareObjectPosition运行结果截图:3. 将第 2 题中的功能改用接口来实现。请将源程序文本填入下框:/CompareObjectPosition.javaimport javax.swing.JOptionPane;/抽象类CompareObjectinterface CompareObjectpublic abstract double CompareTo(Position d);Java 程序设计上机作业(二) 学号: 姓名:/CompareObject类的子类Position