功能
用到的觀念
CODE
#include <iostream>
#include <iomanip>
using namespace std;
#include <string>
#include <fstream>
#include <cstdlib>
class matrix
{
public:
void enterbykey(int[10][10],int[10][10],int&,int&);
void enterbykey1(int[10][10],int[10][10],int&,int&,int&);
void inputfromfile(string,int&,int&,int[10][10]);
void calplus(int[10][10],int[10][10],int,int,int[10][10]);
void calminus(int[10][10],int[10][10],int,int,int[10][10]);
void calmultiple(int[10][10],int[10][10],int&,int&,int&,int [10][10]);
void outfile(string,int,int,int[10][10]);
};
void matrix::enterbykey(int number[10][10],int numB[10][10], int& row, int&
column)
{
int i,j;
cout<<"enter the row and the column"<<endl;
cout<<"row:";
cin>>row;
cout<<"column:";
cin>>column;
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
cout<<"A "<<"["<<i<<"]"<<"["<<j<<"]= ";
cin>>number[i][j];
}
}
cout<<"matrixA"<<endl;
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
cout<<setw(3)<<number[i][j];
}
cout<<endl;
}
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
cout<<"B "<<"["<<i<<"]"<<"["<<j<<"]= ";
cin>>numB[i][j];
}
}
cout<<"matrixB"<<endl;
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
cout<<setw(3)<<numB[i][j];
}
cout<<endl;
}
}
void matrix::enterbykey1(int number[10][10],int numB[10][10],int& m,int&
n,int& l)
{
int i,j;
cout<<"enter the content of matrixA(mXn) and matrixB(nXl)"<<endl;
cout<<" m: ";
cin>>m;
cout<<" n: ";
cin>>n;
cout<<" l: ";
cin>>l;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<"A "<<"["<<i<<"]"<<"["<<j<<"]= ";
cin>>number[i][j];
}
}
cout<<"matrixA"<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<setw(3)<<number[i][j];
}
cout<<endl;
}
for(i=0;i<n;i++)
{
for(j=0;j<l;j++)
{
cout<<"B "<<"["<<i<<"]"<<"["<<j<<"]= ";
cin>>numB[i][j];
}
}
cout<<"matrixB"<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<l;j++)
{
cout<<setw(3)<<numB[i][j];
}
cout<<endl;
}
}
void matrix::calplus(int numA[10][10],int numB[10][10],int row,int column,int
numC[10][10])
{
int i,j;
//numC[10][10]={0};
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
numC[i][j]=numA[i][j]+numB[i][j];
}
}
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
cout<<setw(3)<<numC[i][j];
}
cout<<endl;
}
}
void matrix::calminus(int numA[10][10],int numB[10][10],int row,int
column,int numC[10][10])
{
int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
numC[i][j]=numA[i][j]-numB[i][j];
}
}
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
cout<<setw(3)<<numC[i][j];
}
cout<<endl;
}
}
void matrix::calmultiple(int numa[10][10],int numb[10][10],int& m,int& n,
int& l,int numC[10][10])
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<l;j++)
{
for(int k=0;k<n;k++)
{
numC[i][j]+=numa[i][k]*numb[k][j];
}
}
}
for(i=0;i<m;i++)
{
for(j=0;j<l;j++)
{
cout<<setw(3)<<numC[i][j];
}
cout<<endl;
}
}
void matrix::inputfromfile(string filename,int& deter_row,
int& deter_column,int numA[10][10])
{
char check;
int sum=0,row=0,column=0,k;
ifstream read;
read.open(filename.c_str());
if (read.fail()) // check for a successful open
{
cout << "\nThe file was not successfully opened
<< "\n Please check that the file currently exists." <<endl;
system("pause");
exit(0);
}
cout << "\nThe file has been successfully opened for reading"<< endl;
do
{
read>>numA[row][column];
column=column+1;
if((check=read.get())=='\n')
{
row=row+1;
column=0;
}
}while(read.good());
for(int ii=0;ii<=row;ii++)
{
for(int jj=0;jj<column;jj++)
{
cout<<setw(3)<<numA[ii][jj];
}
cout<<endl;
}
deter_row=row+1;
deter_column=column;
}
void matrix::outfile(string filename,int row,int column,int numA[10][10])
{
ofstream out;
int sum=0,k;
out.open(filename.c_str());
if (out.fail()) // check for a successful open
{
cout << "\nThe file was not successfully opened"
<< "\n Please check that the file currently exists." <<endl;
exit(0);
}
cout<< "\nThe file has been successfully saved"<< endl;
for(int i=0;i<row;i++)
{
for(int j=0;j<column;j++)
{
out<<numA[i][j]<<setw(3);
}
out<<'\n';
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.7.59