龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

一个模拟lc 的数字显示控制台程序

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
这是一个模拟类似电子表之类的东西,显示数字,你可以输入要显示数字的大小(1~10) 和要显示的数字或者数字串(0-9),可以同时输入多行,输入0 0结束输入,回车显示。参数格式

这是一个模拟类似电子表之类的东西,显示数字,你可以输入要显示数字的大小(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;

  }

  

  

  

精彩图集

赞助商链接