1、JAVA实验2复习1. 设计一个名为figure的图形软件包(package)。包中包含三角形、矩形、圆三个类。要求:(1)每个类都要构造方法并为成员设置get和set方法;(2)每个类都要有计算周长和面积的成员方法;(3)完成该软件包后的编码后,在另一个包的含有main方法的类中编写代码,分别使用图形软件包中的三个类,生成三个对象,并打印出其周长和面积。 *package figure;public class juxing/矩形的计算函数 private double lenth,width; public juxing() lenth=0; width=0; public juxing
2、(double x,double y) lenth=x; width=y; public void setLenth(double lenth) this.lenth=lenth; public double getLenth() return lenth; public void setWidth(double width) this.width=width; public double getWidth() return width; public double perimeter() return lenth*width; public double Area() return (len
3、th+width)*2; *package figure;import java.math.*;public class sanjiaoxing /三角形的计算函数 private double side1; private double side2; private double side3; public sanjiaoxing() side1=0; side2=0; side3=0; public sanjiaoxing(double x,double y,double z) side1=x; side2=y; side3=z; public void setSide1(double s
4、ide1) this.side1=side1; public double getSide1() return side1; public void setSide2(double side2) this.side2=side2; public double getSide2() return side2; public void setSide3(double side3) this.side3=side3; public double getSide3() return side3; public double perimeter() return side1+side2+side3; p
5、ublic double Area() double p=(side1+side2+side3)/2; return Math.sqrt(p*(p-side1)*(p-side2)*(p-side3); *package figure;import java.math.*;public class yuanxing /圆形的计算函数 private double radius; public yuanxing() radius=0; public yuanxing(double x) radius=x; public void setRadius(double radius) this.rad
6、ius=radius; public double getRadius() return radius; public double perimeter() return 2*Math.PI*radius; public double Area() return Math.PI*radius*radius; *package figure_show;import figure.juxing;import figure.sanjiaoxing;import figure.yuanxing;public class main public static void main(Stringargs)
7、sanjiaoxing t=new sanjiaoxing(3,4,5); System.out.println(三角形的周长:+t.perimeter(); System.out.println(三角形的面积:+t.Area(); juxing r=new juxing(3,4); System.out.println(矩形的周长:+r.perimeter(); System.out.println(矩形的面积:+r.Area(); yuanxing c=new yuanxing(5); System.out.println(圆形的周长;+c.perimeter(); System.out.
8、println(圆形的面积:+c.Area(); 2. 设计一个教师类Teacher(属于.sdkd包),要求:1) 属性有编号(int no)、姓名(String name)、年龄(int age)、所属学院(seminary),为这些属性设置相应的get和set方法。2) 为Teacher类重写equals方法,要求:当两个教师对象的no相同时返回true。3) 重写Teacher类的toString方法,通过该方法可以返回“编号为*、姓名为*、年龄为*的*学院老师”形式的字符串。4) 由多个Teacher对象所形成的数组可以以两种方法排序(编号由低到高排序):1)使用Arrays.sor
9、t(Object a)方法;2)使用Arrays.sort(Object a, Comparator c)方法。5) 再定义一个类TeacherManagement(属于cn.sd包),提供方法search,方法可以在一组给定的教师中,根据姓名(或年龄)返回等于指定姓名(或年龄)的教师的字符串信息,信息格式为:“编号为*、姓名为*、年龄为*的*学院老师”。如果没有满足条件的教师,则返回“没有符合条件的教师”。6) 构造main方法进行测试。*package .sdkd;public class Teacher implements Comparable private int no; priv
10、ate String name; private int age; private String seminary; public Teacher(int no,String name,int age,String seminary) this.no=no; this.name=name; this.age=age; this.seminary=seminary; public void setNo(int no) this.no=no; public int getNo() return no; public void setName(String name) this.name=name;
11、 public String getName() return name; public void setAge(int age) this.age=age; public int getAge() return age; public void setSeminary(String seminary) this.seminary=seminary; public String getSeminary() return seminary; public boolean equals(Object o) boolean result=false; Teacher t = (Teacher)o;
12、if(this.no=t.no) return true; return result; public String toString() return 编号为+getNo()+,姓名为+getName()+,年龄为+getAge()+的+getSeminary()+学院老师; /compareTo接口 public int compareTo(Object o) Teacher otherTea = (Teacher)o; if(nootherTea.no) return 1; return 0; package .sdkd;import java.util.Arrays;import cn
13、.sd.*;public class main public static void main(String args) Teacher t1 = new Teacher(0001,白玉,28,信息); Teacher t2 = new Teacher(0002,李兰馨,36,地科); Teacher t3 = new Teacher(0003,张成宇,40,材料); Teacher TeaArray = new Teacher3; TeaArray0 = new Teacher(1001,白玉,28,信息); TeaArray1 = new Teacher(1005,李兰馨,42,地科);
14、TeaArray2 = new Teacher(1003,张成宇,40,材料); System.out.println(t1.toString(); System.out.println(t2.toString(); System.out.println(t3.toString(); System.out.print(n); t1.setNo(t2.getNo(); System.out.println(*临时修改教师t3的信息*); System.out.println(教师t1与教师t2是否相同?); System.out.println(t1.equals(t2); System.out
15、.println(教师1与教师t3是否相同?); System.out.println(t1.equals(t3); System.out.print(n); System.out.println(按编号升序排列:); Arrays.sort(TeaArray); for(int i=0;iTeaArray.length;i+) System.out.print(编号为+TeaArrayi.getNo()+、姓名为+TeaArrayi.getName()+、年龄为+TeaArrayi.getAge()+的+TeaArrayi.getSeminary()+学院老师); System.out.pr
16、intln(); System.out.println(); System.out.println(年龄为28的教师的信息:); System.out.println(TeacherManagement.search(28,TeaArray); 4. 一个公司有三种不同类型的员工,他们的薪水分别按年(计算方法:年薪*工作年数)、按月(计算方法:月薪*工作月数)、按周(计算方法:周薪*工作周数)结算。编写类Company,提供计算所有员工总薪水的方法getEarnings,该方法能够根据输入的一组员工(包含各类员工)返回这组员工的总薪水。package pay;public class pay
17、public int wages; public int day; public pay(int wages,int day) this.wages = wages; this.day = day; public pay() public int show() return wages*day; class pay_a extends pay public pay_a(int a,int b) wages = a; day = b; public pay_a() public int show() return (int)(double)day/365)*wages); class pay_b
18、 extends pay public pay_b(int a,int b) wages = a; day = b; public pay_b() public int show() return (int)(double)day/30)*wages); class pay_c extends pay public pay_c(int a,int b) wages = a; day = b; public pay_c() public int show() return (int)(wages*day); *package pay;import pay.pay;import pay.pay_a
19、;import pay.pay_b;import pay.pay_c;public class teat24 public static int getEarings(payp,int length) int sum=0; for(int i=0;ilength;i+) sum+=pi.show(); return sum; public static void main(String args) pay pp = new pay5; pp0 = (new pay_a(8, 2000); pp0 = (pay_a)pp0; pp1 = new pay_b(2, 500); pp1 = (pay
20、_b)pp1; pp2 = new pay_c(10, 15000); pp2 = (pay_c)pp2; pp3 = new pay_a(12, 5000); pp3 = (pay_a)pp3; pp4 = new pay_c(5, 1100); pp4 = (pay_c)pp4; int sum = getEarings(pp, 5); for(int i=0;i4;i+) System.out.println(第+i+个员工的薪水为:+ppi.show(); System.out.println(员工的总薪水为:+sum); 5. 编码实现一个类:(1)提供一个静态方法,可以将输入的一个
21、int数组按照从小到大的顺序排列;(2)提供静态方法,对排好序的数组使用折半查找(使用递归和非递归两种形式分别实现)查找某一个整数。package shiyaner5;import java.util.Scanner;public class myArray public static void sort(int a,int n) int temp; for(int i=0;in;i+) for(int j=0;jai) temp = aj; aj = ai; ai = temp; public static int BinarySearch(int array,int x,int n) in
22、t left = 0; int right = n-1; while(leftarraymiddle) left = middle+1; else right = middle-1; System.out.println(未找到!); return -1; public static void main(String args) int s = new int6,8,2,9,4,11,1,7,12,10; int n; Scanner scan = new Scanner(System.in); for(int i=0;i10;i+) System.out.print(si+ ); /排序 s
23、ort(s,10); System.out.println(); System.out.println(-); for(int i=0;i-1) e = arraytop; arraytop = null; top-; return e; public Object getTop() Object e = null; if(top-1) e = arraytop; return e; *package shiyaner6;import java.util.Scanner; public class main public static void main(String args) Stack stack = new Stack(32); Scanner scan = new Scanner(System.in); System.out.print(请输入一个正整数:); int n = scan.nextInt(); /测试Stack类 stack.push(n); System.out.print
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1