1. 程式人生 > >用c++建立一個類SUM,求二維陣列外圍各元素的和,並且輸出陣列各元素及所求之和。

用c++建立一個類SUM,求二維陣列外圍各元素的和,並且輸出陣列各元素及所求之和。

具體要求如下:

(1)私有資料成員
int a[4][4]:二維陣列,存放要處理的資料。
int s:存放陣列a外圍各元素的和。
(2)公有成員函式
SUM(int b[4][4]):建構函式,用陣列b初始化陣列a。
void process():求二維陣列外圍各元素的和s。
void print():按行列方式輸出陣列a的各元素值,並輸出外圍各元素的和。
(3)在主函式中完成對該類的測試。使用如下測試資料(外圍元素是指陰影部分的元素):
1234
5678

9101112

13141516

首先先建立一個工程SUM

SUM.h

#ifndef _SUM_H_
#define _SUM_H_

class SUM{
private:
	int m_a[4][4];      //二維陣列,存放要處理的資料
	int m_s;            //存放陣列a外圍各元素的和
public:
	SUM(int b[4][4]);   //建構函式,用陣列b初始化陣列a
	void process();     //求二維陣列外圍各元素的和s
	void print();       //按行列方式輸出陣列a的各元素值,並輸出外圍各元素的和
};


#endif
main.cpp
#include <iostream>
#include "SUM.h"

int main()
{
	int b[4][4];
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<4; j++)
		{
			b[i][j] = i*4+j+1;
		}
	}
	SUM sum(b);
	sum.process();
	sum.print();
	return 0;
}
SUM.cpp
#include <iostream>
#include "SUM.h"

SUM::SUM(int b[4][4])
{
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<4; j++)
		{
			m_a[i][j] = b[i][j];
		}
	}
}

void SUM::process()
{
	m_s = 0;
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<4; j++)
		{
			if(i==0 || i==3 || j==0 || j==3)
			{
				m_s += m_a[i][j];
			}
		}
	}
}

void SUM::print()
{
	int count = 0;
	for(int i=0; i<4; i++)
	{
		for(int j=0; j<4; j++)
		{
			std::cout<<m_a[i][j]<<'\t';
			count++;
		}
		if(count % 4 == 0)
	   {
		   std::cout<<std::endl;
	   }
	}
	
	std::cout<<"外圍陣列元素之和:"<<m_s<<std::endl;
}