一个模拟lc 的数字显示控制台程序
这是一个模拟类似电子表之类的东西,显示数字,你可以输入要显示数字的大小(1~10) 和要显示的数字或者数字串(0-9),可以同时输入多行,输入0 0结束输入,回车显示。参数格式 size string。
// homework.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include
#include
void draw(int number,int size,int line);
void display(int s, char *n);
int main(int argc, char* argv[])
{
int para1[12];//参数1
char para2[12][12];//参数2
int flag = 1;//接受参数标记
int count = 0;//计数
do {
scanf("%d %s",?1[count],para2[count]);
if(para1[count] == 0 && para2[count][0] == '0' && para2[count][1] == NULL)
flag = 0;
//printf("%d,%s ",para1[count],para2[count]);
//getchar();
count++;
}while(flag&&count<9);
//scanf(st1,st2,"%s %s");
for (int j = 0;j { //printf("%s ",para2[j]); if(para1[j]<=0para1[j]>10)// { printf("the %d number's size is wrong ",j); //exit(0); } else display(para1[j],para2[j]); } //printf("disply "); return 0; } void display(int s, char *n) { //add your code for display the numbers int i =0; char str[10]; strcpy(str,n); int len = strlen(n); //printf("len "); //char number; for (i; i<2*s+3; i++) { for (int j= 0; j { if(j>=len) j %= len; switch(*(str+j)) { case '0': draw(0,s,i);printf(" ");break; case '1': draw(1,s,i);printf(" ");break; case '2': draw(2,s,i);printf(" ");break; case '3': draw(3,s,i);printf(" ");break; case '4': draw(4,s,i);printf(" ");break; case '5': draw(5,s,i);printf(" ");break; case '6': draw(6,s,i);printf(" ");break; case '7': draw(7,s,i);printf(" ");break; case '8': draw(8,s,i);printf(" ");break; case '9': draw(9,s,i);printf(" ");break; default:break; } } printf(" "); } } void draw(int number,int size,int line) { int size1 = size; int line1 = line; int number1 = number; switch(number1) { case 0: { if(line1 == 0line1 == 2*size1+2)//第一行 { printf(" "); for(int i =0;i printf(" "); } if(line1 == size1+1)//中间行 { for(int j =0 ;j< size1+2;j++) printf(" "); } if(line1>0&&line1<2*size1+2&&line1!=size1+1) { printf(""); for(int i =0;i { printf(" "); } printf(""); } } break; case 1: { if(line1 == 0line1 == 2*size1+2)//第一行 { printf(" "); for(int i =0;i { printf(" "); } printf(" "); }; if(line1 == size1+1)//中间行 { for(int j =0 ;j< size1+2;j++) printf(" "); } if(line1>0&&line1<2*size1+2&&line1!=size1+1) { //printf(""); for(int i =0;i { printf(" "); } printf(""); } } break; case 2: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i printf(" "); }; if(line1>0&&line1 { //printf(""); for(int i =0;i { printf(" "); } printf(""); } if(line1<2*size1+2&&line1>size1+1) { printf(""); for(int i =0;i { printf(" "); } printf(" "); } } break; case 3: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i printf(" "); } else { printf(" "); for(int i =0;i { printf(" "); } printf(""); } } break; case 4: { if(line1 == 0line1 == 2*size1+2)//第一行 { printf(" "); for(int i =0;i { printf(" "); } printf(" "); } if(line1 == size1+1) { printf(" "); for(int i =0;i printf(" "); } if(line1<2*size1+2&&line1>size1+1) { printf(" "); for(int i =0;i { printf(" "); } printf(""); } if(line1>0&&line1 { printf(""); for(int i =0;i { printf(" "); } printf(""); } } break; case 5: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i printf(" "); } if(line1>0&&line1 { printf(""); for(int i =0;i { printf(" "); } printf(" "); } if(line1<2*size1+2&&line1>size1+1) { printf(" "); for(int i =0;i { printf(" "); } printf(""); } } break; case 6: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行 { printf(" "); for(int i =0;i printf(" "); } if(line1>0&&line1 { printf(""); for(int i =0;i { printf(" "); } printf(" "); } if(line1<2*size1+2&&line1>size1+1) { printf(""); for(int i =0;i { printf(" "); } printf(""); } } break; case 7: { if(line1 == 0)//第一行 { printf(" "); for(int i =0;i printf(" "); } else if(line1 == 2*size1+2line1 == size1+1)//中间行和末尾行 { printf(" "); for(int i =0;i { printf(" "); } printf(" "); } else { printf(" "); for(int i =0;i { printf(" "); } printf(""); } } break; case 8: { if(line1 == 0line1 == 2*size1+2line1 == size1+1)//首行中间行和末尾行 { printf(" "); for(int i =0;i printf(" "); } else { printf(""); for(int i =0;i { printf(" "); } printf(""); } } break; case 9:{ if(line1 == 0line1 == 2*size1+2line1 == size1+1)//首行中间行和末尾行 { printf(" "); for(int i =0;i printf(" "); } if(line1>0&&line1 { printf(""); for(int i =0;i { printf(" "); } printf(""); } if(line1<2*size1+2&&line1>size1+1) { printf(" "); for(int i =0;i { printf(" "); } printf(""); } } break; default:; } return; }