//每一个小问单独写我会写.但像题目那样把他们综合一起运行该怎么组合啊.定义一个类ArrayClass,满足:
1 构造函数
(1)public ArrayClass(int n)
给定数组的个数,对数组元素逐个进行赋值(要求键盘输入)(2)public ArrayClass(int[] haha)
直接给定数组的元素值(如:new int[]{1,3,4,2}) 
2 成员函数
(1)public void descent()对数组进行降序排列(从大到小排列)
(2)public void ascent()对数组进行升序排列(从小到大排列)
(3)public int max()返回数组中最大的数
(4)public int min()返回数组中最小的数
(5)public int jicha()返回数组中最大的与最小的元素之差
(6)public void displayInfo()
列举数组中所有的元素(注意结果要用空格分开)
3 成员变量:private int[] array
二 定义一个新的测试类ArrayTest测试ArrayClass类,要求:
1 采用以上1(1)的构造函数定义一个对象
2 采用以上1(2)的构造函数再定义一个对象
3 分别利用以上2(1)—2(5)做相应的操作,利用2(6)显示2(1)—2(2)排序后的结果。

解决方案 »

  1.   

    /**
     * project_name: Test
     * package_name: netsource
     * package_declaration: package netsource;
     * filename: ArrayClass.java
     * author: yuhaiming
     * date: 2007-11-9
     */
    package netsource;
    import java.io.*;
    /**
     * //每一个小问单独写我会写.但像题目那样把他们综合一起运行该怎么组合啊.  定义一个类ArrayClass,满足: 
    1   构造函数 
    (1)public   ArrayClass(int   n) 
    给定数组的个数,对数组元素逐个进行赋值(要求键盘输入)
    (2)public   ArrayClass(int[]   haha) 
    直接给定数组的元素值(如:new   int[]{1,3,4,2})   
    2   成员函数 
    (1)public   void   descent()对数组进行降序排列(从大到小排列) 
    (2)public   void   ascent()对数组进行升序排列(从小到大排列) 
    (3)public   int   max()返回数组中最大的数 
    (4)public   int   min()返回数组中最小的数 
    (5)public   int   jicha()返回数组中最大的与最小的元素之差 
    (6)public   void   displayInfo() 
    列举数组中所有的元素(注意结果要用空格分开) 
    3   成员变量:private   int[]   array 
    二   定义一个新的测试类ArrayTest测试ArrayClass类,要求: 
    1   采用以上1(1)的构造函数定义一个对象 
    2   采用以上1(2)的构造函数再定义一个对象 
    3   分别利用以上2(1)—2(5)做相应的操作,利用2(6)显示2(1)—2(2)排序后的结果。 
     * @author yuhaiming
     *
     */
    public class ArrayClass {

    //变量数组
    private   int[]   array;

    /**
     * 初始化长度为N的数组
     * @param n
     */
    public ArrayClass(int n){
    array = new int[n];
    System.out.println("请输入数组值,长度为"+n);
    try{
    for(int i=0;i<n;i++){
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    int inputvalue = Integer.parseInt(reader.readLine());
    //System.out.println("输入值:"+inputvalue);
    array[i] = inputvalue; }
    }catch(Exception e){
    e.printStackTrace();
    }
    //displayInfo();
    }

    /**
     * 给定赋值好了的数组
     * @param haha
     */
    public ArrayClass(int[] haha){
    array = haha;
    }

    /**
     * 对数组进行降序排列(从大到小排列)
     */
    public   void   ascent(){
    int temp;
    for(int i=0;i<array.length;i++){
    for(int j=0;j<array.length-1;j++){
    if(array[j]>array[j+1]){
    temp = array[j];
    array[j] = array[j+1];
    array[j+1] = temp;
    }
    }
    }
    }

    /**
     * 对数组进行降序排列(从大到小排列)
     */
    public   void   descent(){
    int temp;
    for(int i=0;i<array.length;i++){
    for(int j=0;j<array.length-1;j++){
    if(array[j]<array[j+1]){
    temp = array[j];
    array[j] = array[j+1];
    array[j+1] = temp;
    }
    }
    }
    }
    /**
     * 取数组最大值
     * @return
     */
    public int   max(){
    int maxvalue = array[0];
    for(int i=1;i<array.length;i++){
    if(maxvalue<array[i]){
    maxvalue = array[i];
    }
    }
    return maxvalue;
    } /**
     * 取数组最大值
     * @return
     */
    public int   min(){
    int minvalue = array[0];
    for(int i=1;i<array.length;i++){
    if(minvalue>array[i]){
    minvalue = array[i];
    }
    }
    return minvalue;
    }

    /**
     * 返回数组中最大的与最小的元素之差
     * @return
     */
    public   int   jicha(){
    int maxvalue = this.max();
    int minvalue = this.min();
    return (maxvalue-minvalue);
    }

    /**
     * 列举数组中所有的元素(注意结果要用空格分开)
     */
    public   void   displayInfo() {
    for(int i=0;i<array.length;i++){
    System.out.print(array[i]+" ");
    }
    System.out.println();
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    ArrayClass arrayClass = new ArrayClass(4);

    System.out.println("原有数组序列:");
    arrayClass.displayInfo();

    arrayClass.descent();
    System.out.println("降序排列:");
    arrayClass.displayInfo();


    arrayClass.ascent();
    System.out.println("升序排列:");
    arrayClass.displayInfo();

    System.out.println("数组最大值:"+arrayClass.max());
    System.out.println("数组最小值:"+arrayClass.min());
    System.out.println("数组最大值与最小值之差:"+arrayClass.jicha());

    }}