Java实验报告三类和对象.doc
10页计算机与信息学院实验报告系 软件系专业软件工程年级08级成绩姓名学号实验室T312 机号48实验时间2010年11月1日下午3、4节教师签字实验(三) 类和对象一、实验目的和要求1. 掌握类的构造函数的重载2. 深入理解类和对象3. 学习NetBeans中UML项目的创建类并生成相应代码的方法二、实验内容和原理设计一个复数类,能够完成复数之间的基本运算,重写方法toString(),使其能输出此复数(形式为: 实部 + 虚部i)要求设计的复数类必须有三个构造函数,分别为无参数、1个参数和2个参数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数三、实验环境1. 硬件环境:2. 软件环境:JDK1.5四、算法描述及实验步骤1. 算法描述(可以用类图、流程图、伪代码或源程序描述)2. 实验步骤l 创建一个UML项目,并设计类Complex如下图l 创建一个Java应用项目l 把UML项目中的Complex自动生成代码到Java应用项目中l 实现Complex类中的方法l 进行编译l 进行测试,使用的测试用例:输入: 预期输出:…五、调试过程1. 编译过程记录算法实现中发现的语法错误及改正以下代码不能实现预期的结果:应该改成如下代码:2. 调试过程记录算法实现中发现的逻辑错误及改正,对每个测试用例,记录实际输出,并与预期输出进行比较,如果不同,分析产生错误的原因并改正。
输入: 预期输出:实际输出:分析 与预期结果一致六、实验结果用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确第一组输入: 第二组输入: 第一组输出结果:第二组输出结果:结果分析:两组的输出结果都正确七、总结不应该一开始就考虑怎么编写代码,而是应该想好其框架注意语法上的错误,而逻辑上的错误在改正上有很大的难度,在这方面要多加交流附录:public class Complex { private double realPart; private double imaginaryPart; public Complex(){ realPart = Double.parseDouble(JOptionPane.showInputDialog("Please enter the realpart:")); imaginaryPart = Double.parseDouble(JOptionPane.showInputDialog("Please enter the imaginarypart:")); } public Complex(double realPart){ this.realPart = realPart; this.imaginaryPart = 0; } public Complex(double realPart,double imaginaryPart){ this.realPart = realPart; this.imaginaryPart = imaginaryPart; } public double getRealPart(){ return this.realPart; } public void setRealPart(double val){ realPart = val; } public double getimaginaryPart(){ return this.imaginaryPart; } public void setimaginaryPart(double val){ imaginaryPart = val; } public Complex plus(Complex complex){ Complex c = new Complex(realPart + complex.realPart, imaginaryPart + complex.imaginaryPart); return c; } public Complex minus(Complex complex){ Complex c = new Complex(realPart - complex.realPart, imaginaryPart - complex.imaginaryPart); return c; } public Complex times(Complex complex){ Complex c = new Complex(realPart * complex.realPart - imaginaryPart * complex.imaginaryPart, realPart * complex.imaginaryPart + imaginaryPart * complex.realPart); return c; } public Complex divideBy(Complex complex){ double t = complex.realPart * complex.realPart + complex.imaginaryPart * complex.imaginaryPart; Complex c = new Complex((realPart * complex.realPart + imaginaryPart * complex.imaginaryPart)/t ,(imaginaryPart * complex.realPart - realPart * complex.imaginaryPart) / t); return c; } public Complex conjugate(){ Complex c = new Complex(realPart,-imaginaryPart); return c; } public String toString(){ String str = ""; if(realPart != 0 && imaginaryPart > 0) return str+realPart+"+"+imaginaryPart+"i"+"\n"; if(realPart != 0 && imaginaryPart < 0) return str+realPart+imaginaryPart+"i"+"\n"; if(realPart == 0 && imaginaryPart != 0){ return str+imaginaryPart+"i"+"\n"; } if(realPart == 0 && imaginaryPart == 0){ } return str+realPart+"\n"; } public static void main(String[] args){ Complex c1 = new Complex(); Complex c2 = new Complex(); String output = "两个复数:\n"+c1+"\n"+c2+"\n"+"两个复数相加:\n"+c1.plus(c2)+ "两个复数相减:\n"+c1.minus(c2)+"两个复数相乘:\n"+c1.times(c2)+ "两个复数相除:\n"+c1.divideBy(c2)+"c1的共厄复数:\n"+ c1.conjugate()+"c2的共厄复数:\n"+c2.conjugate();JOptionPane.showMessageDialog(null,output); }}。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


