![]() |
#2
fishviv2010-09-10 19:29
![]() #include<iostream> 这是我刚刚调出来的,不知道是否符合题意?各位看看,说说两句吧。using namespace std; class juzhen { public: juzhen (int l,int r){line=l;row=r; }//构造函数 juzhen(juzhen*ju){line=ju->line;row=ju->row;p=ju->p;}//****************************88拷贝构造函数 void input(juzhen* Pju);//赋值函数 void output(juzhen* Pju);//输出函数 void add(juzhen* Pju1,juzhen* Pju2,juzhen* Pju3) ;//计算两矩阵之和 void minu(juzhen* Pju1,juzhen* Pju2,juzhen* Pju3);//计算两矩阵之差 ~juzhen(){delete[] p;}//析构函数 private: int line,row;//矩阵大小属性 int (*p)[10];//指向矩阵的指针 }; void juzhen::input(juzhen* Pju) { int i,j; int (*p1)[10]=new int[line][10]; Pju->p=p1;//给指针一个地址 cout<<" 请依次输入矩阵的值"<<endl; for(i=0;i<line;i++) for(j=0;j<row;j++) { //cin>>*(*(Pju->p+i)+j); //逐个输入矩阵中的每一个元素 *(*(Pju->p+i)+j)=1;//依次赋值 } Pju->output(Pju);//输出各矩阵 } void juzhen::output(juzhen* Pju) { int i,j; for(i=0;i<line;i++) { for(j=0;j<row;j++) cout<<*(*(Pju->p+i)+j)<<" ";//逐个输出矩阵中的每一个元素 cout<<endl; //每输完一行就换行 } } void juzhen::add(juzhen* Pju1,juzhen* Pju2,juzhen* Pju3) //计算两矩阵之和 { int i,j; for(i=0;i<line;i++) for(j=0;j<row;j++) *(*(Pju3->p+i)+j)=*(*(Pju1->p+i)+j)+*(*(Pju2->p+i)+j);//计算每一个新矩阵中的元素值 Pju3->output(Pju3); //输出新矩阵 } void juzhen::minu(juzhen* Pju1,juzhen* Pju2,juzhen* Pju3)//计算两矩阵之差 { int i,j; for(i=0;i<line;i++) for(j=0;j<row;j++) *(*(Pju3->p+i)+j)=*(*(Pju1->p+i)+j)-*(*(Pju2->p+i)+j);//计算每一个新矩阵中的元素值 Pju3->output(Pju3); //输出新矩阵 } int main() { int l,r; cout<<"请输入矩阵的行列"<<endl; cin>>l>>r; juzhen* Ptr1=new juzhen(l,r); juzhen* Ptr2=new juzhen(l,r); juzhen* Ptr3=new juzhen(l,r);//动态给矩阵申请空间 Ptr1->input(Ptr1); Ptr2->input(Ptr2); Ptr3->input(Ptr3); //各个赋值 cout<<"A3=A1+A2 :"<<endl; Ptr1->add (Ptr1,Ptr2,Ptr3);//计算两矩阵之和 cout<<"A3=A1-A2 :"<<endl; Ptr1->minu (Ptr1,Ptr2,Ptr3);//计算两矩阵之差 system("pause"); return 0; |
编写C++程序完成以下功能:
用类来实现矩阵,定义一个矩阵的类,属性包括:
矩阵大小,用 lines, rows(行、列来表示);
存贮矩阵的数组指针,根据矩阵大小动态申请(new)。
矩阵类的方法包括:
构造函数,参数是矩阵大小,需要动态申请存贮矩阵的数组;
析构函数,需要释放矩阵的数组指针;
拷贝构造函数,需要申请和复制数组;
输入,可以从cin中输入矩阵元素;
输出,将矩阵格式化输出到cout;
矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵类,但必须矩阵大小相同;
矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵类,但必须矩阵大小相同。
定义三个矩阵:A1、A2、A3;
初始化A1、A2;
计算并输出A3 = A1加A2,A3=A1减A2;
用new动态创建三个矩阵类的对象:pA1、pA1、pA3;
初始化pA1、pA2;
计算并输出pA3=pA1加pA2,pA3=pA1减pA2;
释放pA1、pA1、pA3。
看一下下这个吧,题目都读不懂,麻烦了
[ 本帖最后由 fishviv 于 2010-9-11 08:58 编辑 ]