Wednesday , 29 September 2021
Home » Tự học Lập Trình » Hướng đối tượng » Xây dựng lớp Matrix trong VC++

Xây dựng lớp Matrix trong VC++

lop-matran

Xây dựng lớp Matrix trong VC++ 

a. Tạo lớp Matrix để mô tả các đối tượng ma trận, lớp gồm các thành phần:

– Số hàng, số cột: n, m

– Một con trỏ **v trỏ đến các phần tử dữ liệu.

– Hàm thiết lập

– Hàm thiết lập sao chép.

– Hàm huỷ bỏ.

– Hàm nhập các phần tử của ma trận

– Hàm hiển thị các phần tử dữ liệu của ma trận

– Hàm kiểm tra hai ma trận có cùng số hàng, số cột hay không

– Khai báo toán tử + là hàm bạn của lớp Matrix, dùng để cộng hai ma trận, kết quả trả về là một ma trận

b. Định nghĩa toán tử +

c. Viết chương trình nhập vào hai ma trận. Tính và in ra màn hình tổng hai ma trận nếu 2 ma trận cùng số hàng, số cột. Ngược lại, thông báo ra màn hình 2 ma trận không cùng cấp.

Download Code “Xây dựng lớp Matrix trong VC++  ”  (Project VC++ 2010 Express)  tại đây:  

#include<iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std;
class Matrix
{
private:
int n,m;
float **v;
public:
Matrix();
Matrix(int size1,int size2);
Matrix(Matrix &a);
~Matrix();
void display();
int ktra(Matrix &a);
friend Matrix operator +(Matrix a,Matrix b);
};Matrix::Matrix()
{
int i,j;
cout<<“Nhap so hang: “;cin>>n;
cout<<“Nhap so cot: “;cin>>m;
v= new float *[n];
for (i=0;i<n;i++)
v[i]= new float [m];
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
cout<<“v[“<<i<<j<<“]: “;
cin>>v[i][j];
}
}
Matrix::Matrix(int size1,int size2)
{
int i,j;
n=size1; m=size2;
v= new float *[n];
for (i=0;i<n;i++)
v[i]=new float [m];
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
cout<<“v[“<<i<<j<<“]: “;
cin>>v[i][j];
}
}
Matrix::Matrix(Matrix &a)
{
int i,j;
n=a.n; m=a.m;
v= new float *[n];
for (i=0;i<n;i++)
v[i]=new float [m];
for (i=0;i<n;i++)
for (j=0;j<m;j++)
v[i][j]=a.v[i][j];
}

Matrix::~Matrix()
{
int i;
for (i=0;i<n;i++)
delete v[i];
delete v;
}
void Matrix::display()
{
int i,j;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
cout<<v[i][j]<<”      “;
cout<<“\n”;
}
}
int Matrix::ktra(Matrix &a)
{
if ((n==a.n)&&(m==a.m)) return 1;
return 0;
}
Matrix operator +(Matrix a,Matrix b)
{
int i,j;
Matrix c=a;
for (i=0;i<a.n;i++)
for (j=0;j<a.m;j++)
c.v[i][j]=a.v[i][j]+b.v[i][j];
return c;
}
void main()
{
cout<< (“Nhap ma tran A:\n”);
Matrix a;
cout <<(“Nhap ma tran B:\n”);
Matrix b;
if (a.ktra(b)==1)

{
a.display();
cout<<” + \n”;
b.display();
cout<<” =\n “;
(a+b).display();}
else cout<<“Hai ma tran k cung cap!”;
getch();
}

Kết quả chương trình Xây dựng lớp Matrix trong VC++

class-matrix

Lượt xem (6465)

About Nhat MInh

Nhat MInh
Love Computer

Xem thêm

header in c++

Tách chương trình lớn thành các file riêng

Tại sao cần phải tách Khi lập trình với bất cứ ngôn ngữ nào thì …

Để lại bình luận:

Loading Facebook Comments ...

Leave a Reply

Your email address will not be published. Required fields are marked *