# C++面向对象程序设计50道编程题(第10题)

版权声明:版权所有,尊重原创。转载请注明出处: https://blog.csdn.net/qq_36426650/article/details/84591208

C++面向对象程序设计50道编程题(第10题)

摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
  本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
  读者请先独立思考哦,再与参考程序进行比对检查。

一、问题描述

在这里插入图片描述

二、考察内容

  基本面向对象概念,如何创建类、对象,对类私有、保护数据成员和公有成员函数的理解,简单的数组运算。

三、难度等级

难度等级:★★☆☆☆

四、参考程序

#include<iostream.h>
#define M 4
class Array{
	int b[M][M];
public:
	Array(int (*p)[M]);
	void operator +( );
	friend void operator -(Array &b);
	void print();
};
Array::Array(int (*p)[M]){
	for(int i=0;i<M;i++)
		for(int j=0;j<M;j++)
			b[i][j]=p[i][j];
}
void Array::operator +(){
	int t[M][M];
	for(int i=0;i<M;i++)
		for(int j=0;j<M;j++)
			t[j][M-1-i]=b[i][j];
	for(i=0;i<M;i++)
		for(int j=0;j<M;j++)
			b[i][j]=t[i][j];
}
void operator -(Array &b){
	int t[M][M];
	for(int i=0;i<M;i++)
		for(int j=0;j<M;j++)
			t[M-1-j][i]=b.b[i][j];
	for(i=0;i<M;i++)
		for(int j=0;j<M;j++)
			b.b[i][j]=t[i][j];
}
void Array::print(){
	for(int i=0;i<M;i++){
		for(int j=0;j<M;j++)
			cout<<b[i][j]<<'\t';
		cout<<'\n';
	}
}
void main(){
	int a[][M]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
	Array arr(a);
	arr.print();
	cout<<'\n';
	+arr;
	arr.print();
	cout<<'\n';
	-arr;
	arr.print();
}

五、心得感受

可以在评论处写下思考和编程此题的感受

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/84591208