七段显示器c++代码
时间: 2024-05-03 21:14:25 浏览: 7
当然可以!以下是一个简单的七段显示器的C++代码示例:
```cpp
#include <iostream>
#include <vector>
class SevenSegmentDisplay {
private:
std::vector<std::vector<char>> segments;
public:
SevenSegmentDisplay() {
// 初始化七段显示器的各个段
segments = {
{' ', '_', ' '},
{'|', ' ', '|'},
{'|', '_', '|'},
{' ', ' ', '|'},
{'|', '_', '|'},
{'|', ' ', '|'},
{'|', '_', '|'}
};
}
void displayDigit(int digit) {
if (digit < 0 || digit > 9) {
std::cout << "Invalid digit!" << std::endl;
return;
}
// 根据数字选择要显示的段
std::vector<int> activeSegments;
switch (digit) {
case 0:
activeSegments = {0, 1, 2, 3, 4, 5};
break;
case 1:
activeSegments = {1, 2};
break;
case 2:
activeSegments = {0, 1, 3, 4, 6};
break;
case 3:
activeSegments = {0, 1, 2, 3, 6};
break;
case 4:
activeSegments = {1, 2, 5, 6};
break;
case 5:
activeSegments = {0, 2, 3, 5, 6};
break;
case 6:
activeSegments = {0, 2, 3, 4, 5, 6};
break;
case 7:
activeSegments = {0, 1, 2};
break;
case 8:
activeSegments = {0, 1, 2, 3, 4, 5, 6};
break;
case 9:
activeSegments = {0, 1, 2, 3, 5, 6};
break;
}
// 显示数字
for (int i = 0; i < segments.size(); i++) {
for (int j = 0; j < segments[i].size(); j++) {
if (std::find(activeSegments.begin(), activeSegments.end(), i) != activeSegments.end()) {
std::cout << segments[i][j];
} else {
std::cout << ' ';
}
}
std::cout << std::endl;
}
}
};
int main() {
SevenSegmentDisplay display;
// 显示数字0到9
for (int i = 0; i < 10; i++) {
display.displayDigit(i);
std::cout << std::endl;
}
return 0;
}
```
这段代码定义了一个`SevenSegmentDisplay`类,用于控制七段显示器的显示。在`displayDigit`方法中,根据输入的数字选择要显示的段,并将其打印出来。在`main`函数中,我们创建了一个`SevenSegmentDisplay`对象,并显示了数字0到9。