第一章:液晶屏显示题解

#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;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值