您的位置:首页 > 其它

pc110104 LC-Display

2011-10-23 17:13 218 查看
110104 LC-DisplayA friend of yours has just bought a new computer. Before this, the most powerful machine he ever used was a pocket calculator. He is a little disappointed because he liked the LCD display of his calculator more than the screen on his new computer! To make him happy, write a program that prints numbers in LCD display style.

Input

The input file contains several lines, one for each number to be displayed. Each line contains integers s and n, where n is the number to be displayed ( 0View Code
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#define S 15

using namespace std;

char number[11][2*S+4][S+3];
char ans[2*S+4][10*(S+3)];

void Init(int s)
{
memset(number,' ',sizeof(number));
int i;
//0
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
number[0][i][1]=number[0][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
if(i==s+2) continue;
number[0][1][i]=number[0][2*s+3][i]='-';
}
//1
for(i=2;i<=2*s+2;i++)
{
if(i==s+2)   continue;
number[1][i][s+2]='|';
}
//2
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
if(i>s+2)  number[2][i][1]='|';
if(i<s+2)  number[2][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[2][1][i]=number[2][s+2][i]=number[2][2*s+3][i]='-';
}
//3
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
number[3][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[3][1][i]=number[3][s+2][i]=number[3][2*s+3][i]='-';
}
//4
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
if(i<s+2)  number[4][i][1]='|';
number[4][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[4][s+2][i]='-';
}
//5
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
if(i<s+2)  number[5][i][1]='|';
if(i>s+2)  number[5][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[5][1][i]=number[5][s+2][i]=number[5][2*s+3][i]='-';
}
//6
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
number[6][i][1]='|';
if(i>s+2)  number[6][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[6][1][i]=number[6][s+2][i]=number[6][2*s+3][i]='-';
}
//7
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
number[7][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[7][1][i]='-';
}
//8
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
number[8][i][1]=number[8][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[8][1][i]=number[8][s+2][i]=number[8][2*s+3][i]='-';
}
//9
for(i=2;i<=2*s+2;i++)
{
if(i==s+2) continue;
if(i<s+2)  number[9][i][1]='|';
number[9][i][s+2]='|';
}
for(i=2;i<=s+1;i++)
{
number[9][1][i]=number[9][s+2][i]=number[9][2*s+3][i]='-';
}

}

void work(int s,int a,int k)
{
int i,j;
for(i=1;i<=2*s+3;i++)
{
for(j=1;j<=s+2;j++)
ans[i][j+k*(s+3)]=number[a][i][j];
}
}

void output(int s,int len)
{
int i,j;
for(i=1;i<=2*s+3;i++)
{
for(j=1;j<=len*(s+3)-1;j++)
cout<<ans[i][j];
cout<<endl;
}
}

int main()
{
int s;
string n;
while(cin>>s>>n&&(s||n[0]-'0'))
{
Init(s);
memset(ans,' ',sizeof(ans));
int i;
for(i=0;i<n.length();i++)
work(s,n[i]-'0',i);
output(s,n.length());
}
return 0;
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: