import java.io.IOException;
import java.util.Scanner;
/*该程序的功能是:
* 提供两种方法:
* 实现两个矩阵的加法和乘法运算:
* 具体由用户输入矩阵的行数和列数以及矩阵中的每个元素;
* 系统实现自动运算,并输出加法和乘法的结果;
* 软件0801班 0808010119 蔡攀亮
* 2010年10月2日;
*/
public class MatrixApp{
final static int MAX=3;
public static void main (String args[]) throws IOException{
int i,j,k;
char flag ;
int a[][]=new int [MAX][MAX];
int b[][]=new int [MAX][MAX];
int c[][]=new int [MAX][MAX];
int d[][]=new int [MAX][MAX];
//初始化矩阵a,b;
System.out.println("请您选择初始化矩阵的方式:");
System.out.println("1.系统将产生随机数,并以次作为矩阵的元素初始化矩阵。");
System.out.println("2.由用户自己按自己的要求输入数据元素,并以此作为矩阵元素初始化矩阵。");
System.out.println("您的选择是:");
Scanner sc=new Scanner(System.in);
flag=(char) System.in.read();
if(flag=='1')
{
System.out.println("系统将随机产生矩阵的元素并完场矩阵的基本运算!");
for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
{
a[i][j]=(int)(Math.random()*10);
b[i][j]=(int)(Math.random()*10);
}
}
}
else
if(flag=='2'){
System.out.println("请以次输入矩阵的元素:");
Scanner scanner=new Scanner(System.in);
for( i=0;i<MAX;i++){
for(j=0;j<MAX;j++){
a[i][j]=scanner.nextInt();
b[i][j]=scanner.nextInt();
}
}
}
//求矩阵的和
for(i=0;i<MAX;i++){
for(j=0;j<MAX;j++){
c[i][j]=a[i][j]+b[i][j];
}
}
//求矩阵的成乘积;
for(i=0;i<MAX;i++){
for(j=0;j<MAX;j++){
d[i][j]=0;
for(k=0;k<MAX;k++)
d[i][j]+=a[i][k]*b[k][j];
}
}
//输出各个矩阵;
System.out.println("矩阵A:");
for(i=0;i<MAX;i++){
for(j=0;j<MAX;j++)
System.out.print(a[i][j]+"\t");
System.out.println();
}
System.out.println("矩阵B:");
for(i=0;i<MAX;i++){
for(j=0;j<MAX;j++)
System.out.print(b[i][j]+"\t");
System.out.println();
}
System.out.println("矩阵AB的和运算的结果为:");
for(i=0;i<MAX;i++){
for(j=0;j<MAX;j++)
System.out.print(c[i][j]+"\t");
System.out.println();
}
System.out.println("矩阵AB的乘积运算的结果为:");
for(i=0;i<MAX;i++){
for(j=0;j<MAX;j++)
System.out.print(d[i][j]+"\t");
System.out.println();
}
}
}