第一章:液晶屏显示题解

来源:互联网 发布:淘宝文艺店铺推荐 编辑:程序博客网 时间:2024/04/28 03:18
#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;}

原创粉丝点击