UVa——110104 LC-Display(图形输出)

题意:让电脑屏幕像液晶屏一样显示数字。

解题思路:假设 s=1,每个数字都是‘ 日 ’上的笔画,分为三 ‘—’四‘|’,三行即:第一行,中间行,最底行;四列即:左上列,右上列,左下列,右下列。故用字符数组定义0-9这十个数字应显示的笔画,让后根据 s 的值来判定循环几次输出。

注意:那些数字中的空白之处要填上空格,并且两个数字之间必须有一个空列。在每个整数后面输出一个空行。

View Code
 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 char n1[]="- -- -----"//第一行
 5 char n2[]="|   ||| ||"//左上列
 6 char n3[]="|||||  |||"//右上列
 7 char n4[]="  ----- --"//中间行
 8 char n5[]="| |   | | "//左下列
 9 char n6[]="|| |||||||"//右下列
10 char n7[]="- -- -- --"//最低行
11 
12 int main()
13 {
14    int s,i,j,k,num;
15    char n[10];
16    while(cin>>s>>n)
17    {
18        if(s==0&&n[0]=='0'break;
19        int len=strlen(n);
20        for(i=0;i<len;i++) //输出第一行
21        {
22            num=n[i]-'0';
23            cout<<' ';
24            for(j=0;j<s;j++)
25                cout<<n1[num];
26            cout<<' ';
27            if(i!=(len-1)) cout<<' ';
28        }
29        cout<<endl;
30        for(j=0;j<s;j++) //输出左上、右上列
31        {
32            for(i=0;i<len;i++)
33            {
34                num=n[i]-'0';
35                cout<<n2[num];
36                for(k=0;k<s;k++) cout<<' ';
37                cout<<n3[num];
38                if(i!=(len-1)) cout<<' ';
39            }
40            cout<<endl;
41        }
42        for(i=0;i<len;i++) //输出中间行
43        {
44            num=n[i]-'0';
45            cout<<' ';
46            for(j=0;j<s;j++)
47                cout<<n4[num];
48            cout<<' ';
49            if(i!=(len-1)) cout<<' ';
50        }
51        cout<<endl;
52        for(j=0;j<s;j++) //输出左下、右下列
53        {
54            for(i=0;i<len;i++)
55            {
56                num=n[i]-'0';
57                cout<<n5[num];
58                for(k=0;k<s;k++) cout<<' ';
59                cout<<n6[num];
60                if(i!=len-1) cout<<' ';
61            }
62            cout<<endl;
63        }
64        for(i=0;i<len;i++) //输出最底行
65        {
66            num=n[i]-'0';
67            cout<<' ';
68            for(j=0;j<s;j++)
69                cout<<n7[num];
70            cout<<' ';
71            if(i!=(len-1)) cout<<' ';
72        }
73        cout<<endl<<endl;
74    }
75    return 0;
76 }

 

posted @ 2012-03-01 10:44  笑巧  阅读(239)  评论(0编辑  收藏  举报