• 当前位置:首页>>C语言>>C语言编程实例>>一个模拟lc 的数字显示控制台程序
  • 一个模拟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 <conio.h>
    #include <stdlib.h>


    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",&para1[count],para2[count]);
      

      if(para1[count] == 0  && para2[count][0] == '0' && para2[count][1] == NULL)
       flag = 0;
      //printf("%d,%s\n",para1[count],para2[count]);
      //getchar();
      count++;
     }while(flag&&count<9);

     //scanf(st1,st2,"%s %s");
     for (int j = 0;j<count-1; j++)
     {
      //printf("%s\n",para2[j]);
      if(para1[j]<=0||para1[j]>10)//
      {
       printf("the %d number's size is wrong\n",j);

          //exit(0);
      }
      else
       display(para1[j],para2[j]);

     }
      

     //printf("disply\n");
     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\n");
     
     //char number;
     for (i; i<2*s+3; i++)
     {
      
      for (int j= 0; j<len;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("\n");

     }
      
     
    }
    void draw(int number,int size,int line)
    {
     int size1 = size;
     int line1 = line;
     int number1 = number;
     switch(number1)
     {

     case 0: {
      if(line1 == 0||line1 == 2*size1+2)//第一行
         {
          printf(" ");
             for(int i =0;i<size1;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<size1;i++)
          {
           printf(" ");
          }
          printf("|");

    [1] [2] [3] [4] 下一页