您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > C语言课程设计-仿LED数码的显示报告
《C语言课程设计》课程设计报告安徽师范大学物理与电子信息学院CollegeofPhysicsandElectronicInformation,AnhuiNormalUniversity题目仿LED数码的显示学号姓名年级专业09级电子信息工程指导教师同组人员完成日期2010年6月28日物理与电子信息学院课程设计评定意见指导教师评语成绩:签名:年月日目录1、题目及要求…………………………2、问题分析……………………………3、算法…………………………………4、N-S流程图…………………………5、源程序………………………………6、程序运行截图………………………7、源代码分析…………………………8、总结…………………………………9、参考书目……………………………AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA一、题目及要求题目:仿LED数码的显示1、输入任意数字和一个字母,能够以该字母显示数字,右图是输入6和字母A的显示结果;2、在此基础上使数码能从0到9动态变化。二、问题分析要解决这个问题必须写0~9这十个数的函数,可以用多路选择开关switch语句,当任意输入一个数字时,就转换到对应的case项。可以定义字符变量,可以任意输入一个字母。可以用数组来写这十个函数,也可以直接用printf函数打印,用printf函数打印比较简单一点。对于动态变化,可以用turboC2.0的库函数中sleep函数来实现0~9的动态变化。三、算法编写0-9十个函数,用printf函数来写,sort0(charb),sort1(charb)……组成switch()语句的case项……;调用turboC2.0中的库函数的sleep函数,使计算机处于短暂的休眠以实现延时功能,这个课题可以延时一秒,sleep(1);这个课题中还必须用到清屏函数,以实现将上次打印在屏幕上的内容清除,clrscr();四、N-S流程图main()输入a,bSwitch(b)Case3Case4Case5Case7Case6Case8Sleep(3)Switch(n)Case0Case1Case2Case9结束动态变化五、源程序#includestdio.h#includeconio.hsort0(charb){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(charb){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(charb){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(charb){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(charb){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(charb){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(charb){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(charb){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(charb){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(charb){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);}voidmain(){inta,n;charb;printf(pleaseentertheletter:\n);b=getchar();printf(pleaseenterthenumber:\n);scanf(%d,&a);switch(a){case0:sort0(b);break;case1:sort1(b);break;case2:sort2(b);break;case3:sort3(b);break;case4:sort4(b);break;case5:sort5(b);break;case6:sort6(b);break;case7:sort7(b);break;case8:sort8(b);break;case9:sort9(b);break;}sleep(3);printf(\n\nPleaseenteranykeytocontinuetoscantheautomaticnumbers...);getche();clrscr();for(n=0;n10;n++)switch(n){case0:{sort0(b);sleep(1);clrscr();break;}case1:{sort1(b);sleep(1);clrscr();break;}case2:{sort2(b);sleep(1);clrscr();break;}case3:{sort3(b);sleep(1);clrscr();break;}case4:{sort4(b);sleep(1);clrscr();break;}case5:{sort5(b);sleep(1);clrscr();break;}case6:{sort6(b);sleep(1);clrscr();break;}case7:{sort7(b);sleep(1);clrscr();break;}case8:{sort8(b);sleep(1);clrscr();break;}case9:{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,输入错误。程序中也用到了turboC2.0中的库函数中的sleep函数来实现延时功能,即实现动态变化。用switch()语句来实现动态变化的输出。在每一次输出之前都进行了清屏,所用的函数也是库函数中的clrscr()来实现清屏。八、总结这次课程设计我们做的是仿LED数码的显示,虽然不是很难,用到的知识点也不是很多,主要就是turboC2.0标准输出函数printf,用来打印0-9十个数字。还有就是利用switch语句实现多分支选择,以实现任意输入的数字与字母的显示。用到了sleep函数实现延时的功能,从而实现了动态变化,其中也用到了清屏函数clrscr(),使得在动态变化中用户界面比较清晰直观。通过这次课程设计,不仅使得我们对C语言的编译,调试等有了一个更全面的认识,而且加强了自身的团队合作精神。总之,从这次课程设计中我们收获了很多,同时也要感谢老师和同学们对我们的指导与帮助,让我们顺利的完成了此次课程设计。九、参考书目[1]谭浩强,C程序设计教程,清华大学出版社,2007年[2]赵永哲,李雄飞,戴秀英编著,《C语言程序设计》,科学出版社,2003年[3]谭浩强编著,《C程序设计》,清华大学出版社,1991年
本文标题:C语言课程设计-仿LED数码的显示报告
链接地址:https://www.777doc.com/doc-5539006 .html