LC-Display
2010-06-07 16:35
274 查看
最近在看《挑战编程-程序设计竞赛训练手册》,下面是其中一道题目,我的方法麻烦了点,但是很好懂。
// LC-Display2.cpp : Defines the entry point for the console application. // #include "stdafx.h" using namespace std; char data_display[2*10+3][(10+2)*8+7]; int count=0; int _tmain(int argc, _TCHAR* argv[]) { void display0(int a, char b[2*10+3][(10+2)*8+7],int c); void display1(int a, char b[2*10+3][(10+2)*8+7],int c); void display2(int a, char b[2*10+3][(10+2)*8+7],int c); void display3(int a, char b[2*10+3][(10+2)*8+7],int c); void display4(int a, char b[2*10+3][(10+2)*8+7],int c); void display5(int a, char b[2*10+3][(10+2)*8+7],int c); void display6(int a, char b[2*10+3][(10+2)*8+7],int c); void display7(int a, char b[2*10+3][(10+2)*8+7],int c); void display8(int a, char b[2*10+3][(10+2)*8+7],int c); void display9(int a, char b[2*10+3][(10+2)*8+7],int c); int s,n; char data[8]; cin>>s; cin>>data; n=0; for(int i=0;i<2*10+3;++i) { for(int j=0;j<(10+2)*8+7;++j) { data_display[i][j]=' '; } } while(n<strlen(data)) { switch(data ) { case '0': display0(count, data_display,s); break; case '1': display1(count,data_display,s); break; case '2': display2(count,data_display,s); break; case '3': display3(count,data_display,s); break; case '4': display4(count,data_display,s); break; case '5': display5(count,data_display,s); break; case '6': display6(count,data_display,s); break; case '7': display7(count,data_display,s); break; case '8': display8(count,data_display,s); break; case '9': display9(count,data_display,s); break; default: cout<<"The input data is wrong!"<<endl; break; } ++count; ++n; } for(int i=0;i<2*10+3;++i) { for(int j=0;j<(10+2)*8+7;++j) { if(j==(10+2)*8+7-1) { cout<<data_display[i][j]; cout<<'/n'; } else cout<<data_display[i][j]; } } system("pause"); return 0; } void display0(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1; int m,n; m=0; n=start+1; m1=0; while(m1<c) { b[m] ='-'; ++n; ++m1; } m1=0; n=start+1; m=m+2*c+2; while(m1<c) { b[m] ='-'; ++n; ++m1; } m1=0; m=1; n=start; while(m1<(2*c+1)) { n=start; if(m!=c+1) { b[m] ='|'; n+=(c+1); b[m] ='|'; } ++m; ++m1; } } void display1(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1; int m,n; m=0; n=start+c+1; m1=0; while(m1<2*c+3) { if((m!=0)&&(m!=(c+1))&&(m!=(2*c+2))) { b[m] ='|'; } ++m; ++m1; } } void display2(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if((m==0)||(m==(c+1))||(m==(2*c+2))) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else { if(m<c+1) { n=start+c+1; b[m] ='|'; } if(m>c+1) { n=start; b[m] ='|'; } } ++m; ++m1; } } void display3(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if((m==0)||(m==(c+1))||(m==(2*c+2))) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else { n=start+c+1; b[m] ='|'; } ++m; ++m1; } } void display4(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if(m==c+1) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else if(m!=0&&m!=2*c+2) { if(m>c+1) { n=start+c+1; b[m] ='|'; } if(m<c+1) { n=start; b[m] ='|'; n=n+c+1; b[m] ='|'; } } ++m; ++m1; } } void display5(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if((m==0)||(m==(c+1))||(m==(2*c+2))) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else { if(m<c+1) { n=start; b[m] ='|'; } if(m>c+1) { n=start+c+1; b[m] ='|'; } } ++m; ++m1; } } void display6(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if((m==0)||(m==(c+1))||(m==(2*c+2))) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else { if(m<c+1) { n=start; b[m] ='|'; } if(m>c+1) { n=start; b[m] ='|'; n=n+c+1; b[m] ='|'; } } ++m; ++m1; } } void display7(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if(m==0) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else if(m!=c+1&&m!=2*c+2) { n=start+c+1; b[m] ='|'; } ++m; ++m1; } } void display8(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if((m==0)||(m==(c+1))||(m==(2*c+2))) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else { n=start; b[m] ='|'; n=start+c+1; b[m] ='|'; } ++m; ++m1; } } void display9(int a, char b[2*10+3][(10+2)*8+7],int c) { int start; if(a==0) { start=0; } else { start=(c+2)*a+a-1; } int m1,m2; int m,n; m=0; n=start+1; m1=0; m2=0; while(m1<2*c+3) { if((m==0)||(m==(c+1))||(m==(2*c+2))) { n=start+1; m2=0; while(m2<c) { b[m] ='-'; ++n; ++m2; } } else { if(m<c+1) { n=start; b[m] ='|'; n=start+c+1; b[m] ='|'; } if(m>c+1) { n=start+c+1; b[m] ='|'; } } ++m; ++m1; } }
相关文章推荐
- uva 706 LC-Display
- poj 1102 LC-Display
- LC-Display
- UVa Problem 706 LC-Display (液晶显示屏)
- 挑战编程 程序设计竞赛训练手册-1.6.4 液晶显示屏(LC-Display)
- LC-Display
- 【HDOJ】1332 LC-Display
- PC/UVa 110104/706 LC-Display
- hdu 1332 LC-Display
- POJ 1102 LC Display G++
- PC/UVa 题号: 110104/706 LC-Display (液晶显示屏)题解
- uva 706 LC-Display
- UVa Problem Solution: 706 - LC-Display
- poj1102——LC-Display
- UVALive5642 UVA706 HDU1332 POJ1102 LC-Display【打印图案】
- 706 - LC-Display
- LC-Display
- 1.6.4 液晶显示屏 LC-Display
- PC110104(液晶显示屏)(LC-Display)
- 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem D: LC-Display(模拟计算器显示数字)