资源描述
C语言课程设计仿LED数码的显示报告
18
2020年4月19日
文档仅供参考
《C语言课程设计》
课程设计报告
题 目
仿LED数码的显示
学 号
姓 名
年级专业
09级电子信息工程
指导教师
同组人员
完成日期
年
6
月
28
日
安徽师范大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
物理与电子信息学院课程设计评定意见
指导教师评语
成绩: 签名: 年 月 日
目录
1、题目及要求…………………………
2、问题分析……………………………
3、算法…………………………………
4、N-S流程图…………………………
5、源程序………………………………
6、程序运行截图………………………
7、源代码分析…………………………
8、总结…………………………………
9、参考书目……………………………
一、题目及要求
题目:AAAAAAAA
A
A
A
AAAAAAAA
A A
A A
A A
AAAAAAAA
仿LED数码的显示
1、 输入任意数字和一个字母,能够以该字母显示
数字,右图是输入6和字母A的显示结果;
2、 在此基础上使数码能从0到9动态变化。
二、 问题分析
要解决这个问题必须写0~9这十个数的函数,能够用多路选择开关switch语句,当任意输入一个数字时,就转换到对应的case项。能够定义字符变量,能够任意输入一个字母。能够用数组来写这十个函数,也能够直接用printf函数打印,用printf函数打印比较简单一点。对于动态变化,能够用turbo C 2.0的库函数中sleep函数来实现0~9的动态变化。
三、算法
编写0-9十个函数 ,用printf函数来写,sort 0 (charb), sort 1 ( char b) ……
组成 switch()语句的case项……;
调用turbo C 2.0 中的库函数的sleep函数,使计算机处于短暂的休眠以实现延时功能,这个课题能够延时一秒,sleep(1);这个课题中还必须用到清屏函数,以实现将上次打印在屏幕上的内容清除,clrscr ();
四、N-S流程图
动态变化
Case9
Case2
Case1
Case0
main()
输入a,b
Switch(b)
Case3
Case 4
Case5
Case7
Case6
Case8
Sleep(3)
Switch(n)
结束
五、源程序
#include<stdio.h>
#include<conio.h>
sort0(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
}
sort1(char b)
{ printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
}
sort2(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf(" %c\n",b);
printf(" %c\n",b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c \n",b);
printf("%c \n",b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
}
sort3(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf(" %c\n",b);
printf(" %c\n",b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf(" %c\n",b);
printf(" %c\n",b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
}
sort4(char b)
{ printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
}
sort5(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c \n",b);
printf("%c \n",b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf(" %c\n",b);
printf(" %c\n",b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
}
sort6(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c \n",b);
printf("%c \n",b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
}
sort7(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
}
sort8(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
}
sort9(char b)
{ printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf("%c %c\n",b,b);
printf("%c %c\n",b,b);
printf("%c%c%c%c%c%c%c%c\n",b,b,b,b,b,b,b,b);
printf(" %c\n",b);
printf(" %c\n",b);
printf(" %c\n",b);
}
void main()
{
int a,n;
char b;
printf("please enter the letter:\n");
b=getchar();
printf("please enter the number:\n");
scanf("%d",&a);
switch(a)
{ case 0:sort0(b);break;
case 1:sort1(b);break;
case 2:sort2(b);break;
case 3:sort3(b);break;
case 4:sort4(b);break;
case 5:sort5(b);break;
case 6:sort6(b);break;
case 7:sort7(b);break;
case 8:sort8(b);break;
case 9:sort9(b);break;
}
sleep(3);
printf(" \n\nPlease enter any key to continue to scan the automatic numbers...");
getche();
clrscr();
for(n=0;n<10;n++)
switch(n)
{ case 0:{sort0(b);
sleep(1);
clrscr();
break;}
case 1:{sort1(b);
sleep(1);
clrscr();
break;}
case 2:{sort2(b);
sleep(1);
clrscr();
break;}
case 3:{sort3(b);
sleep(1);
clrscr();
break;}
case 4:{sort4(b);
sleep(1);
clrscr();
break;}
case 5:{sort5(b);
sleep(1);
clrscr();
break;}
case 6:{sort6(b);
sleep(1);
clrscr();
break;}
case 7:{sort7(b);
sleep(1);
clrscr();
break;}
case 8:{sort8(b);
sleep(1);
clrscr();
break;}
case 9:{sort9(b);
sleep(1);
clrscr();
break;}
}
}
六、程序运行截图
当任意输入一个字母和一个数字时,会以该字母显示该数字。再按任意键能够显示0~9的动态变化。
这是动态变化时的截图,因为每执行一次都会清屏一次,因此每次界面上只有一个数。
七、源代码分析
这个程序中主要用顺序结构,原来是用数组写的,但后面出了一点问题,就用printf函数直接打印了,数组能够定位,是自然的打印就必然靠左了,这个问题老师也提出了,后来我们也仔细的想了一下,能够用转义字符使打印居中。
这个程序在主函数中先定义一个整型变量和一个字符型变量以实现任意字母和0~9之间的任意数字的输入。然后用switch语句实现任意数字的输出,当输入的数字与某一个case后面是的数值相等时就执行此case后面的语句,若输入的数字不在0~9之间则输出errror,表示输入错误。例如当输入的数字为0时就执行case‘0’后面的sort0(b)语句,实现0的输出,当输入11时将输出error,输入错误。
程序中也用到了turbo C 2.0 中的库函数中的sleep函数来实现延时功能,即实现动态变化。用switch()语句来实现动态变化的输出。在每一次输出之前都进行了清屏,所用的函数也是库函数中的 clrscr( )来实现清屏。
八、总结
这次课程设计我们做的是仿LED数码的显示,虽然不是很难,用到的知识点也不是很多,主要就是turbo C 2.0 标准输出函数printf,用来打印0-9十个数字。还有就是利用switch语句实现多分支选择,以实现任意输入的数字与字母的显示。用到了sleep函数实现延时的功能,从而实现了动态变化,其中也用到了清屏函数clrscr(),使得在动态变化中用户界面比较清晰直观。
经过这次课程设计,不但使得我们对C语言的编译,调试等有了一个更全面的认识,而且加强了自身的团队合作精神。总之,从这次课程设计中我们收获了很多,同时也要感谢老师和同学们对我们的指导与帮助,让我们顺利的完成了此次课程设计。
九、参考书目
[1] 谭浩强,C程序设计教程,清华大学出版社,
[2] 赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,
[3] 谭浩强编著,《C程序设计》,清华大学出版社,1991年
展开阅读全文