仿LED数码的显示.docx
《仿LED数码的显示.docx》由会员分享,可在线阅读,更多相关《仿LED数码的显示.docx(19页珍藏版)》请在冰豆网上搜索。
仿LED数码的显示
C语言程序设计
综合程序设计报告
设计题目:
仿LED数码的显示
系别:
机械工程学院
专业:
机械设计制造及其自动化
学生姓名:
学号:
起止日期:
2011年12月18日~2010年12月25日
一.程序设计题目描述和要求
1.程序描述:
仿LED数码的显示
2.基本要求:
1)输入任意数字和一个字母,能够以该字母显示该数字,下图是输入6和字母A的显示结果;
2)在此基础上是数码能从0到9动态变化。
AAAAAAAA
A
A
A
AAAAAAAA
AA
AA
AA
AAAAAAAA
二、系统分析:
在选题了以后,我们做了精心的准备。
翻阅了课本、实验指导书、课外资料以及上网进行了相关程序的搜索与准备后决定依靠自己的力量完成程序设计。
我们分析后决定使用switch结构以及函数调用的方法来完成输入任意数字和一个字母,能够以该字母显示该数字的编程要求,注意函数的定义与函数的引用。
对每一个用户自定义的函数进行具体的分析,分工完成。
对数码能从0到9动态变化的编程要求我们咨询了别的同学,对原来的程序进行了简单的修改,用delay(100000000000);等语句完成要求。
三、.程序设计报告内容
1.算法分析与设计
2.源程序代码
#include
chara[9][8];
inti,j;
voidmain()
{
voidprint_zero();
voidprint_one();
voidprint_two();
voidprint_three();
voidprint_four();
voidprint_five();
voidprint_six();
voidprint_seven();
voidprint_eight();
voidprint_nine();
charch;intn;
printf("Pleaseinputanumberandaletter:
\n");
scanf("%d%c",&n,&ch);
printf("\n");
for(i=0;i<9;i++)
for(j=0;j<8;j++)
a[i][j]=ch;
switch(n)
{
case0:
print_zero();break;
case1:
print_one();break;
case2:
print_two();break;
case3:
print_three();break;
case4:
print_four();break;
case5:
print_five();break;
case6:
print_six();break;
case7:
print_seven();break;
case8:
print_eight();break;
case9:
print_nine();break;
default:
printf("ERROR!
\n");
}
}
voidprint_zero()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<8;i++)
{
printf("%c\t\b%c",a[i][0],a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[8][j]);
printf("\n");
}
voidprint_one()
{
for(i=0;i<9;i++)
{
printf("\t\b%c",a[i][7]);
printf("\n");
}
}
voidprint_two()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<4;i++)
{printf("\t\b%c",a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[4][j]);
printf("\n");
for(i=5;i<8;i++)
{printf("%c",a[i][0]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[8][j]);
printf("\n");
}
voidprint_three()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<4;i++)
{printf("\t\b%c",a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[4][j]);
printf("\n");
for(i=5;i<8;i++)
{printf("\t\b%c",a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[8][j]);
printf("\n");
}
voidprint_four()
{
for(i=0;i<4;i++)
{
printf("%c\t\b%c",a[i][0],a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[4][j]);
printf("\n");
for(i=5;i<9;i++)
{printf("\t\b%c",a[i][7]);
printf("\n");
}
}
voidprint_five()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<4;i++)
{
printf("%c",a[i][0]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[4][j]);
printf("\n");
for(i=5;i<8;i++)
{
printf("\t\b%c",a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[8][j]);
printf("\n");}
voidprint_six()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<4;i++)
{printf("%c",a[i][0]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[4][j]);
printf("\n");
for(i=5;i<8;i++)
{printf("%c\t\b%c",a[i][0],a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[8][j]);
printf("\n");
}
voidprint_seven()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<9;i++)
{
printf("\t\b%c",a[i][7]);
printf("\n");
}
}
voidprint_eight()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<4;i++)
{printf("%c\t\b%c",a[i][0],a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[4][j]);
printf("\n");
for(i=5;i<8;i++)
{printf("%c\t\b%c",a[i][0],a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[8][j]);
printf("\n");
}
voidprint_nine()
{
for(j=0;j<8;j++)
printf("%c",a[0][j]);
printf("\n");
for(i=1;i<4;i++)
{printf("%c\t\b%c",a[i][0],a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[4][j]);
printf("\n");
for(i=5;i<8;i++)
{printf("\t\b%c",a[i][7]);
printf("\n");
}
for(j=0;j<8;j++)
printf("%c",a[8][j]);printf("\n");
}
动态变化的程序设计要求只需增加头文件#include并将原switch结构中的break语句全部变为delay(100000000000);的语句并且去除default语句。
3.测试结果:
例如:
四.总结:
程序设计是一门实践性较强的课程,既要掌握基本的概念和理论,也要自己动手编程,上机调试运行,实验性环节是必须特别重视的。
课程设计不可能通过几十个小时的学习或是简单地将源程序编制在一起就能完成,要编写较大型且实用的程序必须首先在学习的过程中把学习的精力放在最基本、最常用的内容上。
学习和掌握设计程序的思路,要正确处理算法和语法的关系,但不应把重点放在语法上,而是通过大量的例题学习掌握怎样设计一个算法,设计一个程序。
在这次课程设计任务中,根据课题设计要求,设计采用的是最原始的设计思路,即定义一个函数,采用函数嵌套调用,设计一个数组,借助case语句,然后用printf功能直接输出即可。
虽没有牵涉其他复杂函数的运用,但已能完成课程设计要求。
整个程序设计思路清晰,使用灵活,可读性较强,每个部分功能都是常用的程序。
在基础的学习基础上,深化课程设计的创新理念,是初级课程设计者或较高层次的设计者的方法和灵魂所在。
大型的程序设计不是一个人能完成的,需要加强团体合作意识。
从课程设计的基本要求来看,每个人都要参与到这项设计当中来,既锻炼调试运行的上机调试和自己的动手和相互服务能力,又体验计算机工作者尤其是程序设计师的酸甜苦辣,以期在阅读程序和编制程序两方面都得到实际锻炼。
作为电子专业的学生,课程设计无疑是对大家能力的一次挑战。