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

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

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

}

}

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<size1;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<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 1:

{

if(line1 == 0line1 == 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+1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 2:

{

if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

};

if(line1>0&&line1<size1+1)

{

//printf("");

for(int i =0;i<size1+1;i++)

{

printf(" ");

}

printf("");

}

if(line1<2*size1+2&&line1>size1+1)

{

printf("");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf(" ");

}

}

break;

case 3:

{

if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

}

else

{

printf(" ");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 4:

{

if(line1 == 0line1 == 2*size1+2)//第一行

{

printf(" ");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf(" ");

}

if(line1 == size1+1)

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

}

if(line1<2*size1+2&&line1>size1+1)

{

printf(" ");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

if(line1>0&&line1<size1+1)

{

printf("");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 5:

{

if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

}

if(line1>0&&line1<size1+1)

{

printf("");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf(" ");

}

if(line1<2*size1+2&&line1>size1+1)

{

printf(" ");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 6:

{

if(line1 == 0line1 == 2*size1+2line1 == size1+1)//第一行

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

}

if(line1>0&&line1<size1+1)

{

printf("");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf(" ");

}

if(line1<2*size1+2&&line1>size1+1)

{

printf("");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 7:

{

if(line1 == 0)//第一行

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

}

else if(line1 == 2*size1+2line1 == size1+1)//中间行和末尾行

{

printf(" ");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf(" ");

}

else

{

printf(" ");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 8:

{

if(line1 == 0line1 == 2*size1+2line1 == size1+1)//首行中间行和末尾行

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

}

else

{

printf("");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

case 9:{

if(line1 == 0line1 == 2*size1+2line1 == size1+1)//首行中间行和末尾行

{

printf(" ");

for(int i =0;i<size1;i++)

printf(" ");

}

if(line1>0&&line1<size1+1)

{

printf("");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

if(line1<2*size1+2&&line1>size1+1)

{

printf(" ");

for(int i =0;i<size1;i++)

{

printf(" ");

}

printf("");

}

}

break;

default:;

}

return;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航