#include <iostream>
#include <string>
using namespace std;
//数字矩阵
string number[5][10]={
" - ", " ", " - ", " - ", " ", " - ", " - ", " - ", " - ", " - ",
"| |", " |", " |", " |", "| |", "| ", "| ", " |", "| |", "| |",
" ", " ", " - ", " - ", " - ", " - ", " - ", " ", " - ", " - ",
"| |", " |", "| ", " |", " |", " |", "| |", " |", "| |", " |",
" - ", " ", " - ", " - ", " ", " - ", " - ", " ", " - ", " - "
};
int bitnumber[8]; //用于存储整数的每一位数
//得到整数每个位上的数字,以及数字的长度
int getlength (int number)
{
int len=0;
if (number==0){ bitnumber[0]=0;return 1;} //如果输入的数据是0的话
while(number)
{
bitnumber[len]=number%10;
number=number/10;
len++;
}
return len;
}
//液晶显示程序
void display(int size,int input)
{
int row; //行计数器,数字一行一行的显示
int bit; //第几位数
int numberofbit=getlength(input);
for(row=0; row<2*size+3; row++)
{
for(bit=0;bit<numberofbit;bit++) //以行为单位显示数字
{
int colomn=bitnumber[numberofbit-bit-1];
string drawnumber;
if(row==0) drawnumber=number[0][colomn];
if(row==size+1) drawnumber=number[2][colomn];
if(row==2*size+2) drawnumber=number[4][colomn];
if(row>0&&row<size+1) drawnumber=number[1][colomn];
if(row>size+1&&row<2*size+2)drawnumber=number[3][colomn];
cout<<drawnumber[0];
for(int k=0;k<size;k++)
{
cout<<drawnumber[1];
}
cout<<drawnumber[2];
if(bit!=numberofbit-1)cout<<' ';
}
cout<<endl;
}
}
int main ()
{
int size, input; //size为要显示的大小,input为输入的整数
while(cin>>size>>input)
{
if(size==0&&input==0) break;
display(size,input); //输出该数的液晶显示
cout<<endl; //两个数之间以空格符隔开
}
return 0;
}
第一章:液晶屏显示题解
最新推荐文章于 2024-06-20 19:38:00 发布