上机实验4

Java语言程序设计 上机实验4

尝试目标:

略知一二接口的功效,理解接口和达成接口的类的关系,领会注脚接口、2个类完结接口的扬言和平运动用办法;熟稔Java语言包和实用包中的常用类。

尝试内容:(*)为选做

  1. 注脚圆柱体类Cylinder,继承椭圆类Ellipse(完毕周长Perimeter接口和面积Area接口),为圆柱体类设计相比较完美的构造方法,并促成容积Volume接口,总括表面积和体量。
  2. 将Java的若干要害字(15个以上)保存在贰个字符串数组中,对其按升序排列,再利用顺序查找和二分法查找,判断3个字符串是不是是Java关键字。
  3. (*) 调节和测试和修改” 实验4-src.zip”中的源代码,使GroupSort程序能科学实施。再在GroupSort.java中扩展按姓名查找的模糊查询和按出生日期排序的机能。比如,在Person对象数组中模糊查找名字蕴含”小”字的靶子。

试行须要:

1. 在实验报告中提交程序运营结果截图。

  1. 源程序代码附到实验报告的末段。

  2. 当真填写实验报告并安妥存档,在下次上机实验课在此以前发送电子版实验报告至 wsycup@foxmail.com

注意,“邮件标题”与“附属类小部件实验报告文件名”均为:

Java2尝试报告N_学号_姓名

内部N为阿拉伯数字,指第几遍试行,例如:

Java2尝试报告3_ 2012010400_李雷

请严苛服从分明的格式发送邮件(注意标题中“Java”后的数字“2”),邮件标题不吻合格式供给一律未交作业,并在鲜明的时日发送实验报告邮件,过期无效。

  1. 电子版,实验报告雷同者将不能够收获相应的平日分。

 

 

附录:实验报告

试验标题__实验四___

学号_2014011329_   
姓名_许恺__     班级__计算机14-1____     时间__2016.4.26____

试行标题解答

一.

 电子版 1

二.

 电子版 2

附:源程序

一.

Cylinder.Java
package one;

public class Cylinder extends Ellipse implements IVolume{

    /**
     * @param args
     */
    int high;
    Cylinder(){
        this.high=6;
    }
    public double Volume(){
        return radius_a*radius_b*3.14*high;
    }
    public double Area(){
        return radius_a*radius_b*3.14*2+high*Perimeter();
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        IVolume A=new Cylinder();
        IVolume V=new Cylinder();
        System.out.println("表面积是"+A.Area());
        System.out.println("体积是"+V.Volume());
    }

}
Ellipse.java
package one;

public class Ellipse implements IPerimeter,IArea{ //椭圆类
    protected double radius_a; //a轴半径
    protected double radius_b; //b轴半径
    public Ellipse(double radius_a) { //构造方法
        this.radius_a = radius_a;
    }
    public Ellipse(double radius_a, double radius_b) { //构造方法
        this.radius_a = radius_a; this.radius_b = radius_b;
    }
    public Ellipse() { this(4,4); }
    public String toString() {
        return "a轴半径"+this.radius_a+",b轴半径"+this.radius_b;
    }
    public double Area() { //计算椭圆面积,覆盖父类的抽象方法
        return Math.PI*this.radius_a*this.radius_b;
    }
    public double Perimeter(){ //计算椭圆周长,覆盖父类的抽象方法
        return Math.PI*(this.radius_a+this.radius_b);
    }
}

IArea.java
package one;

public interface IArea {
    public double Area();
}

IPerimeter.java
package one;


public interface IPerimeter {
    public double Perimeter();
}

IVolume.java
package one;

public interface IVolume {
    public double Volume();
    public double Area();
}


二.
package two;
import java.util.Arrays;
public class Q2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String[] a=new String[20];
        String b=new String();
        String c=new String();
        b="g";
        a[0]="a";a[1]="b";a[2]="c";a[3]="d";a[4]="e";a[5]="f";a[6]="g";a[7]="h";
        a[8]="i";a[9]="j";a[10]="k";a[11]="l";a[12]="m";a[13]="n";a[14]="o";
        for(int i=0;i<15;i++){
            for(int j=i+1;j<15;j++){
                if(a[i].compareTo(a[j])>0){
                    c=a[i];
                    a[i]=a[j];
                    a[j]=c;
                }
            }
        }
        if(sxcz(b,a)){
            System.out.println("顺序查找法已查找到");
        }
        else{
            System.out.println("顺序查找未找到");
        }
        if(efcz(b,a)){
            System.out.println("二分法查找法已查找到");
        }
        else{
            System.out.println("二分法查找未找到");
        }
    }
    public static boolean sxcz(String b,String[] a){
        for(int i=0;i<20;i++){
            if(b==a[i]){
                return true;
            }
        }
        return false;
    }
    public static boolean efcz(String b,String[] a){
        int front=0;
        int end=14;
        int mid=7;
        for(;end>=front;){
            if(a[mid]==b)
                return true;
            else if(a[mid].compareTo(b)>0){
                end=mid-1;
                mid=(mid+front)/2;
            }
            else{ 
                front=mid+1;
                mid=(front+end)/2;
            }
        }
        return false;
    }
}

 

 

自省与总计:

本次实验练习了对于接口的利用,也让小编更是领悟接口的职能和在全部java种类中的地方和遵从,作者觉的对于接口的选择和明白还足以进一步的深切部分,让我们大家更为体会到java语言的精锐。

相关文章