频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
C++大作页-数组运算.动态多维数组
2012-02-22 10:43:30      个评论      
收藏   我要投稿

很久没有动代码了,下面是这学期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;
     }


}\

\

 


摘自 左脑设计,右脑编程
点击复制链接 与好友分享!回本站首页
上一篇:复制构造函数
下一篇:学习笔记--extern关键字
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站