C++ 实现 3x6 开关矩阵:带使能信号的代码示例
C++ 实现 3x6 开关矩阵:带使能信号的代码示例
本文提供了一个 C++ 代码示例,展示如何使用 SDK 创建一个 3x6 的开关矩阵,并包含一个使能信号来控制开关操作。代码包含详细注释,并演示了矩阵的初始化、开关操作和使能信号的控制。
#include <iostream>
#include <vector>
using namespace std;
class SwitchMatrix {
private:
vector<vector<int>> matrix; // 二维向量存储矩阵
bool enabled; // 使能信号
public:
// 构造函数
SwitchMatrix() {
matrix.resize(3, vector<int>(6, 0)); // 初始化矩阵为 3 行 6 列,每个元素都为 0
enabled = false; // 初始化使能信号为关闭状态
}
// 打印矩阵
void printMatrix() {
cout << 'Switch Matrix:' << endl;
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
cout << matrix[i][j] << ' ';
}
cout << endl;
}
cout << endl;
}
// 打开指定位置的开关
void switchOn(int row, int col) {
if (enabled) { // 只有在使能信号开启的情况下才能打开开关
matrix[row][col] = 1;
}
}
// 关闭指定位置的开关
void switchOff(int row, int col) {
if (enabled) { // 只有在使能信号开启的情况下才能关闭开关
matrix[row][col] = 0;
}
}
// 打开使能信号
void enable() {
enabled = true;
}
// 关闭使能信号
void disable() {
enabled = false;
}
};
int main() {
SwitchMatrix switchMatrix;
switchMatrix.printMatrix(); // 打印初始矩阵
switchMatrix.enable(); // 打开使能信号
// 打开一些开关
switchMatrix.switchOn(0, 1);
switchMatrix.switchOn(1, 3);
switchMatrix.switchOn(2, 5);
switchMatrix.printMatrix(); // 打印修改后的矩阵
switchMatrix.disable(); // 关闭使能信号
// 尝试打开开关,但因为使能信号关闭,开关不会打开
switchMatrix.switchOn(0, 2);
switchMatrix.switchOn(2, 4);
switchMatrix.printMatrix(); // 打印未修改的矩阵
return 0;
}
代码中使用了一个二维向量(vector of vector)来存储矩阵,同时还有一个布尔变量 enabled 表示使能信号是否开启。其中,SwitchMatrix 类包含四个成员函数:
printMatrix():打印矩阵;switchOn(row, col):打开指定位置的开关;switchOff(row, col):关闭指定位置的开关;enable():打开使能信号;disable():关闭使能信号。
在 main 函数中,首先创建了一个 SwitchMatrix 对象 switchMatrix,并打印了初始矩阵。接着,打开了一些指定位置的开关,并打印了修改后的矩阵。然后关闭了使能信号,并尝试打开另外一些开关,但由于使能信号关闭,这些开关不会打开。最后,打印了未修改的矩阵。
原文地址: https://www.cveoy.top/t/topic/nGDv 著作权归作者所有。请勿转载和采集!