.定义一个方阵类Array,实现对方阵进行顺时针90度旋转。如图所示。 具体要求如下: (1)私有数据成员 int a[4][4]:用于存放方阵。 (2)公有成员函数 Array (int a1[][4],int n) :构造函数,用给定的参数a1初始化数据成员a。 void xuanzhuan ( ) :实现对方阵a进行顺时针90度的旋转。 void show( ) :在屏幕上显示数组元素。 (3) 在主程序中定义数组int b[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。定义一个Array类对象test,用b初始化test,完成对该类的测试。
时间: 2024-03-01 17:54:57 浏览: 206
好的,下面是定义一个方阵类Array的代码,实现对方阵进行顺时针90度旋转的功能:
```cpp
#include <iostream>
using namespace std;
class Array {
private:
int a[4][4]; // 用于存放方阵
public:
Array(int a1[][4], int n) { // 构造函数,用给定的参数a1初始化数据成员a
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = a1[i][j];
}
}
}
void xuanzhuan() { // 实现对方阵a进行顺时针90度的旋转
int b[4][4];
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
b[i][j] = a[i][j]; // 先将a复制到b中
}
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
a[i][j] = b[3 - j][i]; // 顺时针旋转90度
}
}
}
void show() { // 在屏幕上显示数组元素
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
}
};
int main() {
int b[][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; // 原始数组
Array test(b, 4); // 用b初始化test
cout << "原始方阵:" << endl;
test.show(); // 显示原始方阵
cout << "旋转后方阵:" << endl;
test.xuanzhuan(); // 对方阵进行顺时针90度旋转
test.show(); // 显示旋转后方阵
return 0;
}
```
输出结果为:
```
原始方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
旋转后方阵:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
```
阅读全文