您的位置:首页 > 编程语言 > C语言/C++

C++大作页-数组运算.动态多维数组

2011-12-18 21:23 381 查看
很久没有动代码了,下面是这学期C++的大作业。

老师还是在念课本,然后布置了这个够2的大作业算最后的考试,唉。

很想花时间再学习一遍C++,比如,再看一遍C++ primier,把后面的题做了,还有Thinking in C++,还有数据结构与算法 C++描述。

用Code::Blocks写的。

被一个问题卡住了许久,就是在引用头文件的时候用相对路径的话回提示找不到文件,最后用绝对路径就解决了。

项目1:

目的:熟悉c++动态内存分配

描述:使用c++程序定义动态数组类,使用new和delete操作符实现动态二维数组和三维数组的定义

//main.cpp

//主程序类

#include <iostream>

#include "/home/empty/c/Array/include/DynamicArray.h"

#include "/home/empty/c/Array/include/DynamicArray3d.h"

using namespace std;

int main()

{

    cout << "Hello world!" << endl;

    DynamicArray a;

    a.printArray();

    DynamicArray3d b;

    b.printArray();

     return 0;

}

//DynamicArray.h

//二维数组头文件

#ifndef DYNAMICARRAY_H

#define DYNAMICARRAY_H

#include <iostream>

using namespace std;

class DynamicArray

{

public:

    DynamicArray(int m=5,int n=5);

    ~DynamicArray();

    void printArray();

private:

    int **m_pArray;      //用于存储内部数组

    int m_iSize;

    int n_iSize;         //用于记录占用的内存数

};

#endif // DYNAMICARRAY_H

//DynamicArray.cpp

//二位数组源文件

#include "/home/empty/c/Array/include/DynamicArray.h"

DynamicArray::DynamicArray(int m,int n)

{

     int i,j;

     m_iSize=m;

     n_iSize=n;

     m_pArray = new int* [m_iSize];

     for (i = 0; i < m_iSize; i++)

          m_pArray [i] = new int[n_iSize];

     for (i = 0; i < m_iSize; i++)

         for (j = 0; j < n_iSize; j++)

          {

               m_pArray[i][j]=i+10*j;

          }

}

//析构函数

DynamicArray::~DynamicArray()

{

    for (int i = m_iSize; i > 0;)

          delete[] m_pArray[--i];

     delete[] m_pArray;

}

void DynamicArray::printArray()

{

     int i,j;

     cout << "Print Array:" << endl;

     for (i = 0; i < m_iSize; i++)

     {

          for(j = 0; j < n_iSize; j++)

          cout<<m_pArray [i][j]<<"   ";

          cout<<endl;

     }

}

//DynamicArray3d.h

//三维数组头文件

#ifndef DYNAMICARRAY3D_H

#define DYNAMICARRAY3D_H

#include <iostream>

using namespace std;

class DynamicArray3d

{

     public:

          DynamicArray3d(int m=5,int n=5,int o=5);

          ~DynamicArray3d();

          void printArray();

     private:

          int ***m_pArray;      //用于存储内部数组

          int m_iSize;

          int n_iSize;         //用于记录占用的内存数

          int o_iSize;

};

#endif // DYNAMICARRAY3D_H

//三维数组源文件

#include "/home/empty/c/Array/include/DynamicArray3d.h"

DynamicArray3d::DynamicArray3d(int m,int n,int o)

{

     int i,j,k ;

     m_iSize=m;

     n_iSize=n;

     o_iSize=o;

     m_pArray= new int**[m_iSize] ;

     for( i = 0 ; i < m_iSize ; i ++ )

          m_pArray[i] = new int*[n_iSize] ;

     for( i = 0 ; i < m_iSize ; i ++ )

          for( j = 0 ; j < n_iSize ; j ++ )

          m_pArray[i][j] = new int[o_iSize ] ;

    //输入三维数组值:

   for(i = 0 ; i <m_iSize ; i ++ )

    for(j = 0 ; j < n_iSize ; j ++ )

     for( k = 0 ; k < o_iSize ; k ++)

      m_pArray[i][j][k] = i*100+j*10+k;

}

DynamicArray3d::~DynamicArray3d()

{

     //dtor

}

void DynamicArray3d::printArray()

{

     int i,j,k ;

     for(i = 0 ; i <m_iSize ; i ++ )

     {

          for(j = 0 ; j < n_iSize ; j ++ )

          {

                for( k = 0 ; k < o_iSize ; k ++)

                      cout<<m_pArray[i][j][k]<<"  ";

               cout<<"       ";

          }

     cout<<endl;

     }

}

项目1:

目的:熟悉c++动态内存分配

描述:使用c++程序定义动态数组类,使用new和delete操作符实现动态二维数组和三维数组的定义

//main.cpp

//主程序类

#include <iostream>

#include "/home/empty/c/Array/include/DynamicArray.h"

#include "/home/empty/c/Array/include/DynamicArray3d.h"

using namespace std;

int main()

{

    cout << "Hello world!" << endl;

    DynamicArray a;

    a.printArray();

    DynamicArray3d b;

    b.printArray();

     return 0;

}

//DynamicArray.h

//二维数组头文件

#ifndef DYNAMICARRAY_H

#define DYNAMICARRAY_H

#include <iostream>

using namespace std;

class DynamicArray

{

public:

    DynamicArray(int m=5,int n=5);

    ~DynamicArray();

    void printArray();

private:

    int **m_pArray;      //用于存储内部数组

    int m_iSize;

    int n_iSize;         //用于记录占用的内存数

};

#endif // DYNAMICARRAY_H

//DynamicArray.cpp

//二位数组源文件

#include "/home/empty/c/Array/include/DynamicArray.h"

DynamicArray::DynamicArray(int m,int n)

{

     int i,j;

     m_iSize=m;

     n_iSize=n;

     m_pArray = new int* [m_iSize];

     for (i = 0; i < m_iSize; i++)

          m_pArray [i] = new int[n_iSize];

     for (i = 0; i < m_iSize; i++)

         for (j = 0; j < n_iSize; j++)

          {

               m_pArray[i][j]=i+10*j;

          }

}

//析构函数

DynamicArray::~DynamicArray()

{

    for (int i = m_iSize; i > 0;)

          delete[] m_pArray[--i];

     delete[] m_pArray;

}

void DynamicArray::printArray()

{

     int i,j;

     cout << "Print Array:" << endl;

     for (i = 0; i < m_iSize; i++)

     {

          for(j = 0; j < n_iSize; j++)

          cout<<m_pArray [i][j]<<"   ";

          cout<<endl;

     }

}

//DynamicArray3d.h

//三维数组头文件

#ifndef DYNAMICARRAY3D_H

#define DYNAMICARRAY3D_H

#include <iostream>

using namespace std;

class DynamicArray3d

{

     public:

          DynamicArray3d(int m=5,int n=5,int o=5);

          ~DynamicArray3d();

          void printArray();

     private:

          int ***m_pArray;      //用于存储内部数组

          int m_iSize;

          int n_iSize;         //用于记录占用的内存数

          int o_iSize;

};

#endif // DYNAMICARRAY3D_H

//三维数组源文件

#include "/home/empty/c/Array/include/DynamicArray3d.h"

DynamicArray3d::DynamicArray3d(int m,int n,int o)

{

     int i,j,k ;

     m_iSize=m;

     n_iSize=n;

     o_iSize=o;

     m_pArray= new int**[m_iSize] ;

     for( i = 0 ; i < m_iSize ; i ++ )

          m_pArray[i] = new int*[n_iSize] ;

     for( i = 0 ; i < m_iSize ; i ++ )

          for( j = 0 ; j < n_iSize ; j ++ )

          m_pArray[i][j] = new int[o_iSize ] ;

    //输入三维数组值:

   for(i = 0 ; i <m_iSize ; i ++ )

    for(j = 0 ; j < n_iSize ; j ++ )

     for( k = 0 ; k < o_iSize ; k ++)

      m_pArray[i][j][k] = i*100+j*10+k;

}

DynamicArray3d::~DynamicArray3d()

{

     //dtor

}

void DynamicArray3d::printArray()

{

     int i,j,k ;

     for(i = 0 ; i <m_iSize ; i ++ )

     {

          for(j = 0 ; j < n_iSize ; j ++ )

          {

                for( k = 0 ; k < o_iSize ; k ++)

                      cout<<m_pArray[i][j][k]<<"  ";

               cout<<"       ";

          }

     cout<<endl;

     }

}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息