1. 程式人生 > >實驗2 面向物件程式設計(6學時)

實驗2 面向物件程式設計(6學時)

  1. 設計一個名為figure的圖形軟體包(package)。包中包含三角形、矩形、圓三個類。要求:(1)每個類都要構造方法併為成員設定get和set方法;(2)每個類都要有計算周長和麵積的成員方法;(3)完成該軟體包後的編碼後,在另一個包的含有main方法的類中編寫程式碼,分別使用圖形軟體包中的三個類,生成三個物件,並打印出其周長和麵積。 ①圓類
    package figure;
    import java.math.*;
    public class Circle {
    	private double radius;
    	public Circle() {
    		
    	}
    	public Circle(double radius){
    		this.radius=radius;
    	}
    	public double getRadius() {
    		return radius;
    	}
    	public void setRadius(int radius) {
    		this.radius = radius;
    	}
    	public double getCircumference() {
    		return radius*Math.PI*2;
    	}
    	public double getArea() {
    		return radius*Math.PI*Math.PI;
    	}
    }
    

    ②矩形類  

    package figure;
    
    public class Rectangle {
    	private double length,width;
    	public Rectangle() {
    		
    	}
    	public Rectangle(double length,double width){
    		this.width=width;
    		this.length=length;
    	}
    	public double getLength() {
    		return length;
    	}
    	public void setLength(double length) {
    		this.length = length;
    	}
    	public double getWidth() {
    		return width;
    	}
    	public void setWide(double wide) {
    		this.width = wide;
    	}
    	public double getCircumference() {
    		return (length+width)*2;
    	}
    	public double getArea() {
    		return length*width;
    	}
    	
    }
    

    ③三角形類  

    package figure;
    import java.math.*;
    public class Triangle {
    	private double a,b,c;
    	public Triangle() {
    		
    	}
    	public Triangle(double a,double b,double c) {
    		this.a=a;
    		this.b=b;
    		this.c=c;
    	}
    	public double getA() {
    		return a;
    	}
    	public void setA(double a) {
    		this.a = a;
    	}
    	public double getB() {
    		return b;
    	}
    	public void setB(double b) {
    		this.b = b;
    	}
    	public double getC() {
    		return c;
    	}
    	public void setC(double c) {
    		this.c = c;
    	}
    	public double getCircumference() {
    		return a+b+c;
    	}
    	public double getArea() {
    		double p=(a+b+c)/2;
    		double S=Math.sqrt(p*(p-a)*(p-b)*(p-c));
    		return S;
    	}
    	public boolean judge() {
    		if(a+b<=c||a+c<=b||b+c<=a||Math.abs(a-b)>=c||Math.abs(a-c)>=b||Math.abs(b-c)>=a||a<=0||b<=0||c<=0) {
    			return false;
    		}
    		else {
    			return true;
    		}
    	}
    
    }
    

    ④測試類:

    package Main;
    import figure.*;
    import java.util.Scanner;
    public class Main {
    	static Scanner cin=new Scanner (System.in);
    	public static void main(String[] args) {
    			Triangle tri=new Triangle(1,2,3);
    			System.out.println("Triangle:");
    			if(tri.judge()==true) {
    				System.out.println("Circumference: "+tri.getCircumference());
    				System.out.println("Area         : "+tri.getArea());
    			} else {
    				System.out.println("不能構成三角形");
    			}
    			Rectangle rec=new Rectangle(1,1);
    			System.out.println("Rectangle:");
    			System.out.println("Circumference: "+rec.getCircumference());
    			System.out.println("Area         : "+rec.getArea());
    			Circle cir=new Circle(1);
    			System.out.println("Circle:");
    			System.out.println("Circumference: "+cir.getCircumference());
    			System.out.println("Area         : "+cir.getArea());
    	}
    
    }
    

 2.設計一個帶表頭的雙向連結串列(連結串列中資料的具體型別可以隨意),提供以下方法:(1)insert:在某個位置插入物件;(2)insert:在連結串列的最後插入物件;(2)delete:在某個位置刪除物件;(3)delete:刪除連結串列中與x相同的元素;(4)size:返回當前連結串列中物件的個數;(5)isEmpty:判斷連結串列是否為空;(6)traverse:遍歷連結串列,打印出所有的元素;(7)getData:取得某個位置的物件。構造main函式進行測試。

①DLinkList類

package LinkList;
import java.util.*;
public class DLinkList {

	private class Node {
		private Node prior;
		private Node next;
		private Object data;

		public Node() {
			this.data = null;
			this.prior = null;
			this.next = null;
		}

		public Node(Object data, Node prior, Node next) {
			this.data = data;
			this.prior = prior;
			this.next = next;
		}
	}

	private int size;
	private Node head;
	private Node tail;

	/*
	 * 初始化連結串列
	 */
	public DLinkList() {
		head = new Node(null, null, null);
		tail = new Node(null, head, null);
		head.next = tail;
		// head=head.next;
		size = 0;
	}

	/*
	 * 查詢第index個節點並返回
	 */
	public Node getNode(int index) {
		if (index < 0 || index >= size) {
			throw new IndexOutOfBoundsException();
		}
		Node p = head;
		for (int i = 0; i < index; i++) {
			p = p.next;
		}
		
		return p;
		
		
	}

	/*
	 * (1)insert:在某個位置插入物件;
	 */
	public int insert(int index, Object data) {
		if (index < 0 || index >= size) {
			throw new IndexOutOfBoundsException();
		}
		if (index == 0) {
			Node p = new Node(data, head, head.prior);
			head.next.prior = p;
			head.next = p;
			size++;
			return 1;
		}
		Node q = getNode(index - 1);
		Node p = new Node(data, q, q.next);
		q.next.prior = p;
		q.next = p;
		size++;
		return 1;
	}

	/*
	 * (2)insert:在連結串列的最後插入物件;
	 */
	public int insert(Object data) {
		Node p = new Node(data, null, null);
		tail.prior.next = p;
		p.prior = tail.prior;
		p.next = tail;
		tail.prior = p;
		size++;
		return 1;
	}

	/*
	 * (2)delete:在某個位置刪除物件;
	 */
	public int delete(int index, Object data) {
		if (index < 0 || index >= size)
			throw new IndexOutOfBoundsException();
		Node q = getNode(index);
		q.prior.next = q.next;
		q.next.prior = q.prior;
		size--;
		return 1;
	}

	/*
	 * (3)delete:刪除連結串列中與x相同的元素;
	 */
	public int delete(Object data) {
		Node q = head;
		for (int i = 0; i < size; i++) {
			if (q.data.equals(data)) {
				this.delete(i, data);
			}
			q = q.next;
		}
		return 1;
	}

	/*
	 * (4)size:返回當前連結串列中物件的個數;
	 */
	public int Getsize() {
		return size;
	}

	/*
	 * (5)isEmpty:判斷連結串列是否為空;
	 */
	public boolean isEmpty() {
		if (size == 0)
			return true;
		else
			return false;
	}

	/*
	 * (6)traverse:遍歷連結串列,打印出所有的元素;
	 */
	public void traverse() {
		Node q = head;
		for (int i = 0; i < size; i++) {
			q = q.next;
			if (i == 0)
				System.out.print(q.data);
			else
				System.out.print(" " + q.data);
		}
		System.out.print("\n");
	}

	/*
	 * (7)getData:取得某個位置的物件。
	 */
	public Object getData(int index) {
		Node p = head;
		for (int i = 0; i < index; i++) {
			p = p.next;
		}
		return p.data;
	}

}

②測試類:

package Main;
import LinkList.DLinkList;;
public class Main {

	public static void main(String[] args) {
		int x = 0;
		DLinkList list=new DLinkList();
		System.out.println("獲取初始連結串列長度:\n"+list.Getsize());
		System.out.println("在連結串列依次新增元素1,3,4,5,3,並列印連結串列:");
		for(int i=1;i<=5;i++) {
			if(i!=2)
				list.insert(i);
		}list.insert(3);
		list.traverse();
		System.out.println("在連結串列第2個位置新增元素2,並列印連結串列:");
		list.insert(2,2);
		list.traverse();
		System.out.println("獲取連結串列中第5個元素:\n"+list.getData(5));
		System.out.println("刪除連結串列中第4個元素,並列印連結串列:");
		list.delete(4,x);
		list.traverse();
		System.out.println("刪除連結串列中第一個值為3的元素,並列印連結串列:");
		list.delete(3);
		list.traverse();
		System.out.println("判斷連結串列是否為空:\n"+list.isEmpty());
		System.out.println("獲取連結串列長度:\n"+list.Getsize());
		
	}

}

3.設計一個教師類Teacher(屬於cn.net.sdkd包),要求:

1)屬性有編號(int no)、姓名(String name)、年齡(int age)、所屬學院(String seminary),為這些屬性設定相應2)的get和set方法。

3)為Teacher類重寫equals方法,要求:當兩個教師物件的no相同時返回true。

4)重寫Teacher類的toString方法,通過該方法可以返回“編號為**、姓名為**、年齡為**的**學院老師”形式的字串。

5)由多個Teacher物件所形成的陣列可以以兩種方法排序(編號由低到高排序):1)使用Arrays.sort(Object[] a)方法;2)6)使用Arrays.sort(Object[] a, Comparator c)方法。

7)再定義一個類TeacherManagement(屬於cn.sd包),提供方法search,方法可以在一組給定的教師中,根據姓名(或年齡)返回等於指定姓名(或年齡)的教師的字串資訊,資訊格式為:“編號為**、姓名為**、年齡為**的**學院老師”。如果沒有滿足條件的教師,則返回“沒有符合條件的教師”。

8)構造main方法進行測試。 ①Teacher類

package cn.net.sdkd;
import java.util.Arrays;
import java.util.Comparator;
public class Teacher implements Comparable{
	private int no;
	private int age;
	private String name;
	private String seminary;
	public Teacher() {
		
	}
	public Teacher(int no,int age,String name,String seminary) {
		this.no=no;
		this.age=age;
		this.name=name;
		this.seminary=seminary;
	}
	public int getNo() {
		return no;
	}
	public int getAge() {
		return age;
	}
	public String getName() {
		return name;
	}
	public String getSeminary() {
		return seminary;
	}
	public void setTeacher(int no,int age,String name,String seminary) {
		this.no=no;
		this.age=age;
		this.name=name;
		this.seminary=seminary;
	}
	public boolean equals(Teacher tea){
		if(this.no==tea.no)
			return true;
		else
			return false;
	}
	public String toString() {
		String s;
		s = "編號為" + no + "、姓名為" + name + "、年齡為" + age + "的" + seminary + "學院老師";
		return s;
	}
	public int compareTo(Object o) {
		int no2=((Teacher)o).no;
		if(no<no2) {
			return -1;
		} else {
			return 1;
		}
	}
}

②TeacherManagement類  

package cn.sd;
import cn.net.sdkd.Teacher;
public class TeacherManagement {
	/*
	 * 按年齡查詢
	 */
	public static void search(Teacher[] teachers,int age) {
		int len=teachers.length;
		for(int i=0;i<len;i++) {
			if(age==teachers[i].getAge()) {
				System.out.println(teachers[i].toString());
				break;
			}
			else if(i==len-1) {
				System.out.println("沒有符合條件的老師");
			}
		}
	}
	/*
	 * 按姓名查詢
	 */
	public static void search(Teacher[] teachers,String name) {
		int len=teachers.length;
		for(int i=0;i<len;i++) {
			if(name==teachers[i].getName()) {
				System.out.println(teachers[i].toString());
				break;
			}
			else if(i==len-1) {
				System.out.println("沒有符合條件的老師");
			}
		}
	}
}

 ③測試類:  

package Main;
import cn.sd.TeacherManagement;
import java.util.Arrays;
import java.util.Comparator;

import cn.net.sdkd.*;

public class Main {

	public static void main(String[] args) {
		Teacher[] teachers = new Teacher[3];
		teachers[0] = new Teacher(3, 30, "Tom", "外國語");
		teachers[1] = new Teacher(1, 28, "張三", "化工");
		teachers[2] = new Teacher(2, 59, "小明", "計算機");
		System.out.println("未排序:");
		for (int i = 0; i < 3; i++) {
			System.out.println(teachers[i].toString());
		}
		System.out.println("按編號排序:");
		Arrays.sort(teachers);
		Arrays.sort(teachers, new SortByNo());
		for (int i = 0; i < 3; i++) {
			System.out.println(teachers[i].toString());
		}
		System.out.println("查詢姓名為小明的老師:");
		TeacherManagement.search(teachers, "小明");
		System.out.println("查詢年齡為18歲的老師:");
		TeacherManagement.search(teachers, 18);
	}

}
class SortByNo implements Comparator<Teacher>{
    public int compare(Teacher o1, Teacher o2) {
    	if(o1.getNo()<o2.getNo()){
			return -1;
		} else {
			return 1;
		}
         
    }
     
}

4.編碼實現一個類:(1)提供一個靜態方法,可以將輸入的一個int[]陣列按照從小到大的順序排列;(2)提供靜態方法,對排好序的陣列使用折半(二分)查詢(使用遞迴和非遞迴兩種形式分別實現)查詢某一個整數。

①FTest類

package Find;

public class FTest {
	private static int []arr;
	public FTest(int []a,int n) {
		arr=new int[n];
		for(int i=0;i<a.length;i++) {
			arr[i]=a[i];
		}
	}
	/*
	 * 1)提供一個靜態方法,可以將輸入的一個int[]陣列按照從小到大的順序排列;
	 */
	public static void sort() {
		for(int i=0;i<arr.length-1;i++) {
			for(int j=0;j<arr.length-1;j++) {
				if(arr[j]>arr[j+1]) {
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
	}
	/*
	 * (2)提供靜態方法,對排好序的陣列使用折半(二分)查詢
	 * (使用遞迴和非遞迴兩種形式分別實現)查詢某一個整數。
	 */
	//非遞迴
	public static int search(int x) {
		int left=0;
		int right=arr.length-1;
		while(left <= right) {
			int middle = (left + right)/2;
			if(x==arr[middle]) {
				return middle;
			}else if (x < arr[middle]) {
				right = middle - 1;
			}else {
				left = middle + 1;
			}
		}
		return -1;
	}

	// 遞迴
	public static int search(int x, int left, int right) {
		int middle = (left + right) / 2;
		if (x < arr[left] || x > arr[right]) {
			return -1;
		}
		if (x == arr[middle]) {
			return middle;
		} else if (x < arr[middle]) {
			search(x, left, middle - 1);
		} else {
			search(x, middle + 1, right);
		}
		return -1;
	}
	public static void Print() {
		for(int i=0;i<arr.length;i++) {
			if(i==0) {
				System.out.print(arr[i]);
			}
			else {
				System.out.print(" "+arr[i]);
			}
		}
		System.out.print("\n");
	}
}

②測試類

package Main;
import Find.FTest;
import java.math.*;
public class Main {

	public static void main(String[] args) {
		int []arr=new int[5];
		for(int i=0;i<5;i++) {
			arr[i]=5-i;
		}
		FTest A=new FTest(arr,arr.length);
		System.out.println("排序前:");
		A.Print();
		A.sort();
		System.out.println("排序後: ");
		A.Print();
		int ans=A.search(5);
		System.out.println("迴圈查詢數值為5的元素:");
		if(ans==-1) {
			System.out.println("該元素不在陣列中。");
		}
		else {
			System.out.println("該元素在第"+ans+"個位置。");
		}
		ans=A.search(10, 0, arr.length-1);
		System.out.println("遞迴查詢數值為10的元素:");
		if(ans==-1) {
			System.out.println("該元素不在陣列中。");
		}
		else {
			System.out.println("該元素在第"+ans+"個位置。");
		}
	}

}

5.使用一維陣列編碼實現一個棧(Stack)類,要求提供以下操作:(1)boolean isEmpty():判斷棧當前是否為空;(2)入棧操作void push(obj):把資料元素obj插入堆疊;(3)出棧操作Object pop():出棧,並返回刪除的資料元素;(4)Object getTop():取堆疊當前棧頂的資料元素並返回;(5)利用Stack類實現一個方法:輸入一個正整數,輸出該整數所對應的二進位制數。

①Stack類

package Test;
/*
 * 一維陣列編碼實現一個棧(Stack)類
 */
public class Stack {
	private static Object []arr;
	private static int length;
	private int size=4;
	public static int getLength() {
		return length;
	}
	public Object getArr(int index) {
		return arr[index];
	}
	private int addsize=10;

	public Stack() {
		arr = new Object[size];
		length = 0;
	}
	/*
	 * (1)boolean isEmpty():判斷棧當前是否為空;
	 */
	public boolean isEmpty() {
		return length==0;
	}
	/*
	 * 陣列擴容
	 */
	public void addLengthArray() {
		Object []brr=new Object[size+addsize];
		System.arraycopy(arr, 0, brr, 0, arr.length);
		size=size+addsize;
		arr=brr;
	}
	/*
	 * (2)入棧操作void push(obj):把資料元素obj插入堆疊;
	 */
	public void push(Object obj) {
		//陣列記憶體不足時,進行擴容操作
		if(length+1>size) {
			addLengthArray();
		}
		arr[length]=obj;
		length++;
	}
	/*
	 * (3)出棧操作Object pop():出棧,並返回刪除的資料元素;
	 */
	public Object pop() {
		Object data=arr[length-1];
		arr[length-1]=0;
		length--;
		return data;
	}
	/*
	 * (4)Object getTop():取堆疊當前棧頂的資料元素並返回;
	 */
	public Object getTop() {
		return arr[length-1];
	}
	/*
	 * 列印棧內元素
	 */
	public void print() {
		for(int i=0;i<length;i++) {
			System.out.print(arr[i]);

		}
		System.out.print("\n");
	}
}

②測試類

package Main;
import Test.Stack;
public class Main {

	public static void change(int data) {
		Stack s=new Stack();
		while(data!=0) {
			int x=data%2;
			s.push(x);
			data/=2;
		}
		for(int i=s.getLength()-1;i>=0;i--) {
			System.out.print(s.getArr(i));

		}
		System.out.print("\n");
	}
	public static void main(String[] args) {
		Stack s=new Stack();
		for(int i=1;i<6;i++) {
			s.push(i);
		}
		s.push("sss");
		System.out.println("元素插入棧中後:");
		s.print();
		s.pop();
		System.out.println("一次出棧操作後:");
		s.print();
		System.out.println("取堆疊當前棧頂的資料元素:");
		System.out.println(s.getTop());
		System.out.println("判斷棧當前是否為空:");
		System.out.println(s.isEmpty());
		System.out.println("將十進位制26轉為二進位制:");
		change(26);
		
	}

}

6.按照要求使用Java編碼。 1)以型別int[][]宣告一個叫matrix的二維陣列變數,將矩陣初始化為一個5個元素的陣列。 2)以下列方式為matrix的內部元素賦值:matrix從零開始迴圈到其長度值;例如索引為i,在每次迭代中,將matrix[i]指向一個新的整數陣列,其長度為i。然後用索引變數j,對陣列中的每一個元素進行迴圈。在每次內部迴圈中,將matrix[i][j]賦值為(i*j)。 3)通過迴圈列印matrix中的所有元素,結果為:

<>

<0>

<0 2>

<0 3 6>

<0 4 8 12>

package Test;

public class Matrix {

	public static void main(String[] args) {
		int [][]matrix=new int[5][];
		for(int i=0;i<5;i++) {
			matrix[i]=new int[i];
			for(int j=0;j<i;j++) {
				matrix[i][j]=i*j;
			}
		}
		for(int i=0;i<5;i++) {
			System.out.print("<");
			for(int j=0;j<i;j++) {
				if(j==0)
					System.out.print(matrix[i][j]);
				else
					System.out.print(" "+matrix[i][j]);
			}
			System.out.println(">");
		}

	}

}

 7.利用二維陣列(double[])實現一個矩陣類:Matrix。要求提供以下方法:(1)set(int row, int col, double value):將第row行第col列的元素賦值為value;(2)get(int row,int col):取第row行第col列的元素;(3)width():返回矩陣的列數;(4)height():返回矩陣的行數;(5)Matrix add(Matrix b):返回當前矩陣與矩陣b相加後的矩陣;(6)Matrix multiply(Matrix b):返回當前矩陣與矩陣b相乘後的矩陣。(7)Matrix transpose():返回當前矩陣的轉置矩陣;(8)getMax():返回矩陣中的最大值及其所在行和列;(9)print():以行和列的形式打印出當前矩陣。

①Matrix類

package Matrix;
import java.awt.Point;
import java.util.Vector;
public class Matrix {
	private double[][] matrix;
	private int n,m;
	public Matrix(int n,int m) {
		this.n=n;
		this.m=m;
		matrix=new double [n][m];
	}
	public Matrix(double arr[][],int n,int m) {
		this.n=n;
		this.m=m;
		matrix=new double [n][m];
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				matrix[i][j]=arr[i][j];
			}
		}
	}
	/*
	 * (1)將第row行第col列的元素賦值為value;
	 */
	public void set(int row, int col, double value){
		matrix[row-1][col-1]=value;
	}
	/*
	 * (2)取第row行第col列的元素;
	 */
	public double get(int row,int col){
		return matrix[row-1][col-1];
	}
	/*
	 * (3)返回矩陣的列數;
	 */
	public int width() {
		return m;
	}
	/*
	 * (4)返回矩陣的行數;
	 */
	public int  height() {
		return n;
	}
	/*
	 * (5)返回當前矩陣與矩陣b相加後的矩陣;
	 */
	public Matrix add(Matrix b) {
		Matrix c=new Matrix(this.matrix,n,m);
		if(n!=b.n||m!=b.m) {
			throw new IndexOutOfBoundsException();
		}
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				c.matrix[i][j]+=b.matrix[i][j];
			}
		}
		return c;
	}

	/*
	 * (6)返回當前矩陣與矩陣b相乘後的矩陣。
	 */
	public Matrix multiply(Matrix b) {
		if (m != b.n) {
			throw new IndexOutOfBoundsException();
		}
		Matrix c = new Matrix(n, b.m);
		for (int i = 0; i < c.n; i++) {
			for (int j = 0; j < c.m; j++) {
				for (int k = 0; k < m; k++) {
					c.matrix[i][j] += matrix[i][k] * b.matrix[k][j];
				}
			}
		}
		return c;
	}
	/*
	 * (7)返回當前矩陣的轉置矩陣;
	 */
	public Matrix transpose() {
		Matrix c=new Matrix(m,n);
		for(int i=0;i<c.n;i++) {
			for(int j=0;j<c.m;j++) {
				c.matrix[i][j]=matrix[j][i];
			}
		}
		return c;
	}
	/*
	 * (8)返回矩陣中的最大值及其所在行和列;
	 */
	public Vector<Point> getMax(){
		Vector<Point> points = new Vector<Point>(100);
		double max=Double.MIN_EXPONENT;
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				if(matrix[i][j]>max) {
					max=matrix[i][j];
				}
			}
		}
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				if(matrix[i][j]==max) {
					Point p = new Point(i, j);
					points.add(p);
				}
			}
		}
		return points;
	}
	/*
	 * (9)以行和列的形式打印出當前矩陣。
	 */
	public void print(){
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				if(j==0) {
					System.out.print(matrix[i][j]);
				}else {
					System.out.print(" "+matrix[i][j]);
				}
			}
			System.out.print("\n");
		}
	}
}

②測試類

package Main;
import java.awt.Point;
import java.util.Vector;

import Matrix.Matrix;
public class Main {

	public static void main(String[] args) {
		int n=2,m=3;
		double [][]arr=new double[10][10];
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				arr[i][j]=(i*i+j*j)%9+1;//隨便取的值
			}
		}
		Matrix matrix = new Matrix(arr, n, m);
		System.out.println("列印原始矩陣:");
		matrix.print();
		System.out.println("將第1行第2列元素更改為6,並列印矩陣:");
		matrix.set(1, 2, 6);
		matrix.print();
		System.out.println("獲取矩陣第1行第2列元素:");
		System.out.println(matrix.get(1, 2));
		System.out.println("獲取矩陣的行數與列數: ");
		System.out.println(matrix.height()+" , "+matrix.width());
		double [][]brr=new double[10][10];
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				brr[i][j]=1;
			}
		}
		Matrix matrix2 = new Matrix(brr, n, m);
		System.out.println("矩陣matrix與matrix2相加,並列印所得矩陣:");
		matrix.add(matrix2).print();
		double [][]crr=new double[10][10];
		for(int i=0;i<m;i++) {
			for(int j=0;j<2*n;j++) {
				crr[i][j]=0;
			}
		}
		Matrix matrix3 = new Matrix(crr, m, 2*n);
		System.out.println("矩陣matrix與matrix3相乘,並列印所得矩陣:");
		matrix.multiply(matrix3).print();
		System.out.println("列印matrix的轉置矩陣:");
		matrix.transpose().print();
		System.out.println("獲取matrix矩陣的最大值及所在行和列:");
		Vector<Point> points = matrix.getMax();
		System.out.print(matrix.get((int)points.get(0).getX()+1, (int)points.get(0).getY()+1));
		for(Point p:points) {
			System.out.print("\t( "+(int)(p.getX()+1)+", "+(int)(p.getY()+1)+" )");
		}
	}

}