JAVA 矩阵类

Description

设计一个矩阵类,类中的方法能够对矩阵进行加法、减法和乘法运算,定义矩阵类对象,然后根据输入进行计算,并输出结果。


Input

输入不定组数的多组数据,每组由运算字符串("ADD"表示矩阵相加,"SUB"表示相减,"MUL"表示相乘)和用于确定矩阵的行数、列数的两个或三个整数(对于加法和减法,是两个整数,表示矩阵的行数和列数;而乘法则是三个整数,中间的整数是前一个矩阵的列数,也是后一个矩阵的行数),以及两个矩阵的具体数据组成。
数据中间用换行符或空格分隔。

Output
输出结果矩阵,每一行为矩阵的每一行数据,中间用一个空格分隔。 参见样例
Sample Input

ADD 2 2

1 1

2 2

3 3

4 4

MUL 1 2 1

1 2

2

1

Sample Output

4 4

6 6

4

import java.util.*;
class Matrix{
private int row;
private int column;
private int [][] matrix;

    Matrix(int r,int c){  
        row=r;  
        column=c;  
        matrix=new int[r][c];  
    } 
    
    Matrix(int[][] m,int r,int c){  
        row=r;  
        column=c;  
        matrix=m;  
    }
    
    Matrix(int[][] m){  
        row=m.length;  
        column=m[0].length;  
        matrix=m;  
    }
    
public int getrow() {
return row;
}
public int getcolumn() {
return column;
}

// public void Matrix (int row ,int column) {
// this.row = row;
// this.column = column;
// }

public Matrix ADD(Matrix m) {
Matrix tmp = new Matrix(row,column);
for(int i=0;i for(int j=0;j tmp.matrix[i][j]=matrix[i][j]+m.matrix[i][j];
}
}
return tmp;
}

public Matrix SUB(Matrix m) {
Matrix tmp = new Matrix(row,column);
for(int i=0;i for(int j=0;j tmp.matrix[i][j]=matrix[i][j]-m.matrix[i][j];
}
}
return tmp;
}

public Matrix MUL(Matrix m) {
        Matrix tmp=new Matrix(row,m.column);  
        for(int i=0;i             for(int j=0;j                 tmp.matrix[i][j]=0;  
                for(int k=0;k                     tmp.matrix[i][j]+=matrix[i][k]*m.matrix[k][j];  
            }  
        return tmp; 
}

public void print() {
for(int i=0;i //System.out.print(matrix[i][0]);
for(int j=0;j if(j==0) {
System.out.print(matrix[i][j]);
}
else
System.out.print(" "+matrix[i][j]);
}
System.out.println("");
}
}
}
public class Main {
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
String x;
int m,n,k;
int matrix1[][];
int matrix2[][];
int matrix3[][];
while(cin.hasNext())
{
x = cin.next();
if(x.charAt(0)=='A')
{
m = cin.nextInt();
n = cin.nextInt();
        matrix1=new int[m][n];  
        for(int i=0;i             for(int j=0;j                 matrix1[i][j]=cin.nextInt();  
        Matrix A=new Matrix(matrix1);  
        matrix2=new int[m][n];
        for(int i=0;i             for(int j=0;j                 matrix2[i][j]=cin.nextInt();  
        Matrix B=new Matrix(matrix2);
        matrix3=new int[m][n];
        Matrix C=new Matrix(matrix3);
        C=A.ADD(B);
        C.print();
        
}

if(x.charAt(0)=='M')
{
m=cin.nextInt();
n=cin.nextInt();
k=cin.nextInt();
        matrix1=new int[m][n];  
        for(int i=0;i             for(int j=0;j                 matrix1[i][j]=cin.nextInt();  
        Matrix A=new Matrix(matrix1);
        matrix2=new int[n][k];
        for(int i=0;i             for(int j=0;j                 matrix2[i][j]=cin.nextInt();  
        Matrix B=new Matrix(matrix2);
        matrix3=new int[m][m];
        Matrix C=new Matrix(matrix3);
        C=A.MUL(B);
        C.print();

}

if(x.charAt(0)=='S')
{
m = cin.nextInt();
n = cin.nextInt();
        matrix1=new int[m][n];  
        for(int i=0;i             for(int j=0;j                 matrix1[i][j]=cin.nextInt();  
        Matrix A=new Matrix(matrix1);
        matrix2=new int[m][n];
        for(int i=0;i             for(int j=0;j                 matrix2[i][j]=cin.nextInt();  
        Matrix B=new Matrix(matrix2);
        matrix3=new int[m][n];
        Matrix C=new Matrix(matrix3);
        C=A.SUB(B);
        C.print();
        
}
}
}

}


程序运行结果:
JAVA 矩阵类_第1张图片


你可能感兴趣的:(JAVA)