//仿液晶数字显示,如下
_ _ _ _ _ _ _ _
| _| _||_||_ |_ | ||_||_|| |
| |_ _| | _||_| ||_| _||_|
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//第一层
int num1[10] = { 1, //0
0, //1
1, //2
1, //3
0, //4
1, //5
1, //6
1, //7
1, //8
1}; //9
//第二层
int num2[10][3] = {1, 0, 1, //0
1, 0, 0, //1
0, 1, 1, //2
0, 1, 1, //3
1, 1, 1, //4
1, 1, 0, //5
1, 1, 0, //6
1, 0, 1, //7
1, 1, 1, //8
1, 1, 1}; //9
//第三层
int num3[10][3] = {1, 1, 1, //0
1, 0, 0, //1
1, 1, 0, //2
0, 1, 1, //3
0, 0, 1, //4
0, 1, 1, //5
1, 1, 1, //6
0, 0, 1, //7
1, 1, 1, //8
0, 1, 1}; //9
/***************************
- 第1个 短杠
|_| 第2,3,4个短杆
|_| 第5,6,7个短杆
****************************/
char* sign_hide1 = " ";
char* sign_hide23[3] = {" ", " ", " "};
char* sign_show1 = " _ ";
char* sign_show23[3] = {"|", "_", "|"};
//1f
void ShowNum1(int number)
{
if(number>=0 && number<10)
{
if(num1[number] == 0) //0表示这个位置没有短杆
{
cout<<sign_hide1;
}
else
{
cout<<sign_show1;
}
}
}
//2f
void ShowNum2(int number)
{
if(number>=0 && number<10)
{
for(int i=0; i<3; i++)
{
if(num2[number][i] == 0)
{
cout<<sign_hide23[i];
}
else
{
cout<<sign_show23[i];
}
}
}
}
//3f
void ShowNum3(int number)
{
if(number>=0 && number<10)
{
for(int i=0; i<3; i++)
{
if(num3[number][i] == 0)
{
cout<<sign_hide23[i];
}
else
{
cout<<sign_show23[i];
}
}
}
}
void ShowNum(int number)
{
vector<int> temp;
while(number != 0)
{
temp.push_back(number % 10);
number /= 10;
}
for_each(temp.rbegin(), temp.rend(), ShowNum1);
cout<<endl;
for_each(temp.rbegin(), temp.rend(), ShowNum2);
cout<<endl;
for_each(temp.rbegin(), temp.rend(), ShowNum3);
cout<<endl;
}
int main()
{
ShowNum(1234567890);
system("pause");
return 0;
}