1、实验报告一 JAVA 程序设计基础及算法设计班级_ 学号_ 姓名_ 专业_一、 实验目的:(1) 掌握 JAVA 语言的语法,理解数组和对象的引用模型,理解类的封装、继承和多态(2) 掌握类的设计方法(3) 掌握异常处理方法和标准输出方法,了解标准输入方法(4) 熟悉算法的描述方法、算法时间复杂度的分析和计算方法(5) 理解数据和算法的基本概念二、 实验内容:1、 采用二维数据输出杨辉三角形,二维数据的结构如图 1 所示:0 1 2 3 4 5mat mat0mat1mat2mat3mat4mat5图 1 杨辉三角形的二维数组结构请粘贴源程序及运行测试结果:源程序:import java.ut
2、il.Scanner;public class Ex public static void pri( int a, int x)for(int i=0;ixia)min=xia;if(max=min)return max;return 0;public static void main(String args) int x=new int66;int a=0;x=Def(5,5);a=Find(x);if(a!=0)System.out.printf(“此数组鞍点为+%4d“,a);elseSystem.out.printf(“此数组没有鞍点“);结果: 3、 设计复数类,成员变量包括实部和虚
3、部,成员方法包括实现复数加法、减法、比较、转换成字符串等运算或操作。测试数据(1)Z1=0,Z2=0;(2)Z1=4,Z2=3i;(3)Z1=3+1.5i ,Z2=8-1.5i ;(4)Z1=-4+3.4i ,Z2=-6-8.1i ;(5)Z1=-5.4+1.2i ,Z2=5.4+3.2i;(6)Z1 的共轭复数:public class complex private double realPart;private double imaginPart;public complex()realPart=0;imaginPart=0;public complex(double a, double
4、 b)this.realPart=a;this.imaginPart=b;public double getrealPart()return realPart;public void setrealPart(double a)this.realPart=a;public double getimaginPart()return imaginPart;public void setimaginPart(double b)this.imaginPart=b;public complex complexAdd(complex c)complex x=new complex();x.realPart=
5、this.realPart+c.realPart;x.imaginPart=this.imaginPart+c.imaginPart;return x;public complex complexMinus(complex c)complex x=new complex();x.realPart=this.realPart-c.realPart;x.imaginPart=this.imaginPart-c.imaginPart;return x;public complex complexG(complex c)complex x=new complex();double a=(double)
6、this.imaginPart;x.realPart=this.realPart;x.imaginPart=a*-1;return x;public String toString()return realPart+“+“+imaginPart+“i“;import java.util.Scanner;public class Test static double x1=0;static double y1=0;static double x2=0;static double y2=0;static Scanner scan=new Scanner(System.in);static comp
7、lex z1=new complex();static complex z2=new complex();public static void Def()System.out.println(“输入Z1 的实部:“);x1=scan.nextDouble();System.out.println(“输入Z1 的虚部:“);y1=scan.nextDouble();System.out.println(“输入Z2 的实部:“);x2=scan.nextDouble();System.out.println(“输入Z2 的虚部:“);y2=scan.nextDouble();z1.setrealP
8、art(x1);z1.setimaginPart(y1);z2.setrealPart(x2);z2.setimaginPart(y2);public static void Pri()System.out.println(“z1=“+z1.toString();System.out.println(“z2=“+z2.toString();System.out.println(“z1+z2=“+plexAdd(z2).toString();System.out.println(“z1-z2=“+plexMinus(z2).toString();System.out.println(“z1的共轭
9、z3=“+plexG(z1 ).toString();public static void main(String args) Def();Pri();粘贴测试结果4、 数组逆置。将一个已知数组中所有元素的次序颠倒为相反次序,求算法的时间复杂度和空间复杂度。请粘贴源程序并写出时间复杂度和空间复杂度:public class EX4public static int Def(int a)int x=new inta;for(int i=0;i10;i+)xi=(int)(10*Math.random();System.out.printf(“%2d“,xi);return x;public st
10、atic void Pri(int x)int y;for(int i=0;ix.length/2;i+)y=xi;xi=x(int)x.length-1-i;x(int)x.length-1-i=y;for(int i=0;ix.length;i+)System.out.printf(“%2d“,xi);public static void main(String args)int x=new int10;x=Def(10);System.out.println();Pri(x);空间复杂度:1时间复杂富:O(n)三、 心得体会:(含上机中所遇问题的解决办法,所使用到的编程技巧、创新点及编程的心得)