作业帮 > 综合 > 作业

怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/08 13:16:15
怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,
要求达到以下三点功能:
1、可手动输入矩阵的内容
2、分别求出矩阵正反对角线之和
3、以4*4的形式输出矩阵
#include <stdio.h>
#include <string.h>

class Matrix
{
\x05double m_Data[16];
\x05double* m_pRowhead[4];
public:
\x05Matrix()
\x05{
\x05\x05memset(m_Data, 0, 16*sizeof(double));
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05\x05m_pRowhead[i] = m_Data + i*4;\x05\x05
\x05}
\x05Matrix(const double* pArr)
\x05{
\x05\x05CopyFrom(pArr);
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05\x05m_pRowhead[i] = m_Data + i*4;
\x05}
\x05Matrix(const Matrix& mat)
\x05{
\x05\x05CopyFrom(mat.m_Data);
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05\x05m_pRowhead[i] = m_Data + i*4;
\x05}
\x05void CopyFrom(const double* pArr)
\x05{
\x05\x05memcpy_s(m_Data, 16*sizeof(double), pArr, 16*sizeof(double));
\x05}
\x05double* operator[] (int nRowIndex)
\x05{
\x05\x05return m_pRowhead[nRowIndex];
\x05}
\x05const double* operator[] (int nRowIndex) const
\x05{
\x05\x05return m_pRowhead[nRowIndex];
\x05}
\x05double GetDiagonalSum(bool bMainDiagonal = true) const
\x05{
\x05\x05double sum = 0.0;
\x05\x05int i;
\x05\x05if(bMainDiagonal)
\x05\x05{
\x05\x05\x05for(i = 0; i < 4; i++)
\x05\x05\x05\x05sum += m_pRowhead[i][i];
\x05\x05}
\x05\x05else
\x05\x05{
\x05\x05\x05for(i = 0; i < 4; i++)
\x05\x05\x05\x05sum += m_pRowhead[i][3-i];
\x05\x05}
\x05\x05return sum;
\x05}
\x05void PrintMatrix() const
\x05{
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05{
\x05\x05\x05for(int j = 0; j < 4; j++)
\x05\x05\x05\x05printf_s("%.2lf\t", m_pRowhead[i][j]);
\x05\x05\x05printf_s("\n");
\x05\x05}
\x05}
};

void main()
{
\x05double a[16] = {1.0, 2.0, 3.0, 4.0,
\x05\x05\x05\x05\x055.0, 6.0, 7.0, 8.0,
\x05\x05\x05\x05\x059.0, 8.0, 7.0, 6.0,
\x05\x05\x05\x05\x055.0, 4.0, 3.0, 2.0};
\x05Matrix mat(a);
\x05mat[0][0] = 2.5;
\x05printf_s("主对角线之和为:%.4lf\n", mat.GetDiagonalSum());
\x05printf_s("副对角线之和为:%.4lf\n", mat.GetDiagonalSum(false));
\x05printf_s("打印矩阵:\n");
\x05mat.PrintMatrix();
}
 
定义一个描述复数的类,数据成员包括实部和虚部;成员函数包括输出复数以及构造函数的初始化. 编写一个三角形类,数据成员为三边长,成员函数计算周长、面积,定义两个重载的构造 c++ 用point类公有派生一个line类,其数据成员为起点和终点,给出完整的line类定义,其中包括构造拷贝析构函数 1.在一个类的定义中,包含有( )成员的定义.A.数据 B.函数 C.数据和函数 D.数据或函数 定义一个描述复数的类,数据成员包括实部和虚部;成员函数包括:输出复数、置实部、 定义钟表类clock,要求:(1)定义私有成员变量2,定义成员函数3,定义有参数的构造函4、编写主函数并测试 定义一个名为Date的类,用于输入并验证日期,类中的数据成员和成员函数应满足以下规则;在主函数中编写相 定义一个类时,除了数据成员外,是不是一定要定义一个成员函数, 定义一个点类Point,成员变量包含x,y坐标,成员函数包含构造函数(无参和两个参数的构造函数),析构函数,输出坐标x, C++问题:定义一个Rectangle类,包括两个数据成员length和width,以及用于求长方形面积的成员函数. 定义一个矩形类CRect,其数据成员包括左上角坐标,长和宽,其函数成员包括设置矩形的大小(SetSize),设置矩形左上 定义一个Cat类,拥有静态数据成员numofcats,记录Cat的个体数目;静态成员函数getnumofcats(),读