当前位置:首页 > C++面向对象程序设计实验报告
阵里,但必须矩阵大小相同;
矩阵相减的函数:实现两个矩阵相减的功能,结果保存在另一个矩阵里,但必须矩阵大小相同。 主函数功能:
定义三个矩阵: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。
(2)构思过程(可用文字、流程图、UML图等方式表达) 首先,由题目中得到矩阵程序中要求方法,为保证调理清晰,在类中先声明,在类外具体写内容,动态构建矩阵要用到指针和关键字new,明确每个方法的要求,按要求编写程序,主函数实现为初始化以及动态构建矩阵两个内容实现程序功能。 (3)程序源码
#include
#include
int lines;int rows;int size; public: int*p; public :
Marix();
Marix(int ,int ); ~Marix();
Marix(Marix&r); public:
void in (); void out ();
Marix add(Marix r); Marix sub( Marix r); };
Marix::Marix(){lines=rows=3;size=9;p=p=new int [9];}; Marix::Marix(int a,int b) {
lines=a;rows=b; size=lines*rows; p=new int [size]; }
Marix::~Marix() {
delete []p; }
Marix::Marix(Marix&r) {
this->lines=r.lines; this->rows=r.rows; this->size=r.size;
this->p=new int [this->size]; for (int i=0;i void Marix::in () { for (int i=0;i for (int j=i*rows;j cin>>p[j]; } } } void Marix::out () { for (int i=0;i for (int j=i*rows;j cout < cout< Marix Marix::add(Marix r) { cout<<\矩?阵ó相à加ó---\ Marix a(r.lines,r.rows); for (int i=0;i for(int j=i*r.rows;j a.p[j]=this->p[j]+r.p [j]; } } return a; } Marix Marix::sub(Marix r) { cout<<\矩?阵ó相à减?-----\ Marix a(r.lines,r.rows); for (int i=0;i for(int j=i*r.rows ;j a.p[j]=this->p[j]-r.p [j]; } } return a; } int _tmain(int argc, _TCHAR* argv[]) { Marix A1(2,2); Marix A2(2,2); int a[4]={1,2,3,4}; for(int i=0;i<4;i++) { A1.p[i]=a[i]; } for(int i=0;i<4;i++) { A2.p[i]=a[i]; } cout<<\矩?阵ó1----------\ A1.out (); cout<<\矩?阵ó2--------\ A2.out(); Marix A3=A1.add(A2); A3.out (); cout<<\请?输?入?要癮编括?辑-行D列镈---------\ int x,y; cin >>x>>y; cout<<\输?入?元a 素?---------------\ Marix pA1( x,y); Marix pA2( x,y); pA1.in(); cout <<\您ú输?入?的?矩?阵ó1为a:阰----\ pA1.out (); pA2.in();
共分享92篇相关文档