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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录