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 }

 

你可能感兴趣的:(display)