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

本文介绍了一种通过字符数组定义0-9数字在液晶屏上的显示笔画,实现数字的液晶屏风格显示。程序通过循环输出不同位置的笔画,确保了数字之间的间距和布局的一致性。

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

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

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

ExpandedBlockStart.gifView 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 }

 

转载于:https://www.cnblogs.com/yueshuqiao/archive/2012/03/01/2375142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值