模拟电子时钟c语言课程设计设计报告-精品(4)

2019-08-31 11:36

circle(490,240,40); circle(490,240,35); circle(490,240,30); circle(490,240,25); circle(490,240,20); circle(490,240,15); circle(490,240,10); circle(490,240,05); circle(490,240,1); }

clockhandle2() {

int k=0,count; setcolor(15);

gettime(t);/*取得系统时间,保存在time结构类型的数组变量中*/ h=t[0].ti_hour; m=t[0].ti_min;

x=50*sin((h*60+m)/360*PI)+320; /*时针的x坐标值*/ y=180-50*cos((h*60+m)/360*PI); /*时针的y坐标值*/ line(320,180,x,y);/*在电子表中绘制时针*/

x1=80*sin(m/30*PI)+320; /*分针的x坐标值*/ y1=180-80*cos(m/30*PI); /*分针的y坐标值*/ line(320,180,x1,y1); /*在电子表中绘制分针*/

digitclock(260,333,digithour(h)); /*在数字时钟中,显示当前的小时值*/ digitclock(305,333,digitmin(m)); /*在数字时钟中,显示当前的分钟值*/ setwritemode(1);

/*规定画线的方式,如果mode=1,则表示画线时用现在特性的线

与所画之处原有的线进行异或(XOR)操作,实际上画出的线是原有线与现在规定 的线进行异或后的结果。因此, 当线的特性不变, 进行两次画线操作相当于没有 画线,即在当前位置处清除了原来的画线*/

for(count=2;k!=ESC&&k!=TAB;){ /*开始循环,直至用户按下ESC键结束循环*/ setcolor(12);/*淡红色*/

sound(500);/*以指定频率打开PC扬声器,这里频率为500Hz*/ delay(700);/*发一个频率为500Hz的音调,维持700毫秒*/ sound(200);/*以指定频率打开PC扬声器,这里频率为200Hz*/ delay(300);

/*以上两种不同频率的音调,可仿真钟表转动时的嘀哒声*/ nosound(); /*关闭PC扬声器*/ s=t[0].ti_sec; m=t[0].ti_min; h=t[0].ti_hour;

x2=98*sin(s/30*PI)+320; /*秒针的x坐标值*/ y2=180-98*cos(s/30*PI); /*秒针的y坐标值*/ setlinestyle(0,0,1); line(320,180,x2,y2); /*绘制秒针*/

/*利用此循环,延时一秒*/

while(t[0].ti_sec==s&&t[0].ti_min==m&&t[0].ti_hour==h) { gettime(t);/*取得系统时间*/ if(bioskey(1)!=0){ k=bioskey(0);

count=keyhandle(k); } }

setcolor(15);

digitclock(353,333,digitsec(s)+1);/*数字时钟增加1秒*/

setcolor(12); /*淡红色*/ x2=98*sin(s/30*PI)+320; y2=180-98*cos(s/30*PI); line(320,180,x2,y2);

/*用原来的颜色在原来位置处再绘制秒针,以达到清除当前秒针的目的*/

/*分钟处理*/

if(t[0].ti_min!=m){ /*若分钟有变化*/ /*消除当前分针*/ setcolor(15); /*白色*/ x1=80*sin(m/30*PI)+320; y1=180-80*cos(m/30*PI); line(320,180,x1,y1); /*绘制新的分针*/ m=t[0].ti_min;

digitclock(305,333,digitmin(m)); /*在数字时钟中显示新的分钟值*/ x1=80*sin(m/30*PI)+320; y1=180-80*cos(m/30*PI);

line(320,180,x1,y1); }

/*小时处理*/

if((t[0].ti_hour*60+t[0].ti_min)!=(h*60+m)){ /*若小时数有变化*/ /*消除当前时针*/ setcolor(15); /*白色*/

x=50*sin((h*60+m)/360*PI)+320;/*50:时钟的长度(单位:像素),320:圆心的x

坐标值*/

y=180-50*cos((h*60+m)/360*PI); line(320,180,x,y); /*绘制新的时针*/ h=t[0].ti_hour;

digitclock(260,333,digithour(h)); x=50*sin((h*60+m)/360*PI)+320; y=180-50*cos((h*60+m)/360*PI); line(320,180,x,y); } } }

第5章 总结

本次课程设计用到了很多陌生的函数,如:line(),circle(),setcolor(),settime()等,但是通过自己细心地分析,在老师的耐心指导下,我很快学会了许多没见过的函数。这次课程设计就如同上了一次c语言的课,在设计过程中学到很多书本上学不到的知识。真正的学习过程是在实践中不断地摸索,不断地前进中学习的,在实践中可以发现一些现实的问题,可以遇见一些突发情况。在实践中运用知识,既增强了我们的动手能力,同时也锻炼了我们的思维方式以及解决问题的能力。

通过本次课程设计,使我掌握了如何设计一个程序,如何处理程序设计过程中出现的问题。虽然设计过程中出现很多问题,但是努力去思考,努力去攻克,没有设计不出来的程序,没有攻克不了的难题。C语言是一个功能强大的计算机语言,学会c语言可以为我们以后的发展铺平道路。这次实地上机操作,给了我们一份体验,让我们体会到了在程序编写过程中所遇到的难题,同时也激励我们继续在实践中学习c语言,为以后开发出功能强大的软件积累经验。

最后非常感谢刘老师对我的精心指导!


模拟电子时钟c语言课程设计设计报告-精品(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公司各岗位操作规程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: