精華區beta NTUCH-HW 關於我們 聯絡資訊
功能 用到的觀念 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