时钟显示设计c语言

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

时钟显示设计1功能:实现时钟的实时显示与定时2基本要求:(1)画出表盘时钟,时、分、秒针填充不同的颜色(自选)。(2)数字同步显示时间信息。(3)整点报时。(4)通过键盘输入闹铃时间,实现闹铃功能。3相关知识:图形操作、按键操作、时间函数等4功能扩充:1)实现秒表功能2)给出其它国家的时钟同步信息精选文档—2目录一、题目介绍:..................................................................................................................................3二、小组成员信息:..........................................................................................错误!未定义书签。三、总体设计:..................................................................................................................................3四、模块划分:..................................................................................................................................3五、算法说明:..................................................................................................................................3六、各模块函数功能及流程图:.......................................................................................................4七、程序测试:..................................................................................................................................5八、结论:..........................................................................................................................................9九、体会及建议:..............................................................................................错误!未定义书签。十、参考文献:..................................................................................................错误!未定义书签。附录:源程序清单..............................................................................................................................9精选文档—3题目介绍:时钟显示设计可以实现时钟的实时显示与定时,并且具有整点报时与闹铃的功能,具有动态效果,能够激发学生学习c语言的兴趣与热情。在设计过程中会遇到没有学过的知识,这需要自己查阅资料来完成,所以还是有一定难度的。总体设计:本程序设计分为三步:1是对时钟程序做全面的分析,即对程序要使用的编写方法功能,运行方式进行分析,并做出正确的解决方案。2是程序的编写。由于该程序所涉及的信息比较广泛,所以程序的编写也有些复杂。程序编写是一项困难的任务,完成此项目必须运用大量的知识,而且要有清晰的思路和较强的语言组织能力。3是对程序的检查和系统的调用。当程序运行时,会显示出一个时钟,并且具有一定的功能。模块划分:1计算时分秒针的弧度值和末端位置,2画时针,分针,秒针,3绘制表盘,刻度,4设定闹钟,整分钟报时功能,5画表针,擦表针。算法说明:主函数:运用for,if等语句,执行对应的函数。VoidDrawDial函数:画表盘。VoidDrawHand函数:画时针,分针,秒针。精选文档—4各模块函数功能及流程图:开始计算时、分、秒针的弧度值计算时、分、秒针的末端位置画时针、分针、秒针绘制表盘、刻度设定闹钟,整分钟报时功能精选文档—5程序测试:时钟界面显示(具有表盘、刻度、指针、现在时刻、闹钟时刻等)画表针、擦表针精选文档—6整分钟报时(当秒针指到刻度12时,时钟会自动报时)按F1键后输入闹钟的小时精选文档—7按F2键输入闹钟的分钟精选文档—8到闹钟预定时刻时闹钟会自动响铃一分钟精选文档—9可以随时更换闹钟时刻八、结论:时钟显示设计属于动画设计类,它具有动态效果,经过两周的学习与钻研,不断地把时钟显示优质化,使之具有整分钟报时与闹铃功能,虽然在这个过程中遇到了不少困难,但通过查资料基本上能够解决。附录:源程序清单#includegraphics.h#includeconio.h#includemath.h#includetime.h#includestdlib.h精选文档—10#includewindows.h#includestdio.h#definePI3.1415926536#defineD2*3.1415926/60voidDrawHand(inthour,intminute,intsecond){doublea_hour,a_min,a_sec;//时、分、秒针的弧度值intx_hour,y_hour,x_min,y_min,x_sec,y_sec;//时、分、秒针的末端位置//计算时、分、秒针的弧度值a_sec=second*2*PI/60;a_min=minute*2*PI/60+a_sec/60;a_hour=hour*2*PI/12+a_min/12;//计算时、分、秒针的末端位置x_sec=int(120*sin(a_sec));y_sec=int(120*cos(a_sec));x_min=int(100*sin(a_min));y_min=int(100*cos(a_min));x_hour=int(70*sin(a_hour));y_hour=int(70*cos(a_hour));//画时针setlinestyle(PS_SOLID,10);setcolor(WHITE);line(320+x_hour,240-y_hour,320-x_hour/7,240+y_hour/7);//画分针setlinestyle(PS_SOLID,6);setcolor(BLUE);line(320+x_min,240-y_min,320-x_min/5,240+y_min/5);//画秒针setlinestyle(PS_SOLID,2);精选文档—11setcolor(YELLOW);line(320+x_sec,240-y_sec,320-x_sec/3,240+y_sec/3);}voidDrawDial(){//绘制一个简单的表盘circle(320,240,2);circle(320,240,60);circle(320,240,160);outtextxy(280,310,PatekPhilippe);//绘制刻度intx,y;for(inti=0;i60;i++){x=320+int(145*sin(PI*2*i/60));y=240+int(145*cos(PI*2*i/60));if(i%15==0)bar(x-5,y-5,x+5,y+5);elseif(i%5==0)circle(x,y,3);elseputpixel(x,y,YELLOW);}}voidmain(){intYhour=0,Yminute=0;intkk=300;charq[9]={'1','2','3','4','5','6','7','8','9'},s[2],*pi;pi=q;intx1,y1,w;精选文档—12loop1:initgraph(640,480);//初始化640x480的绘图窗口DrawDial();//绘制表盘setwritemode(R2_XORPEN);//设置XOR绘图模式//绘制表针setcolor(LIGHTGRAY);outtextxy(314,100,12);x1=315+(int)(140*sin(55*D));y1=240-(int)(140*cos(55*D));outtextxy(x1,y1,11);x1=318+(int)(135*sin(50*D));y1=240-(int)(135*cos(50*D));outtextxy(x1,y1,10);for(w=0;w9;w++){if(w==2||w==8){x1=318+(int)(130*sin((w+1)*5*D));y1=230-(int)(130*cos((w+1)*5*D));}else{x1=318+(int)(130*sin((w+1)*5*D));y1=230-(int)(130*cos((w+1)*5*D));}outtextxy(x1,y1,*(pi+w));}SYSTEMTIMEti;//定义变量保存当前时间while(1)//死循环{GetLocalTime(&ti);//获取当前时间精选文档—13outtextxy(0,420,现在时刻:);sprintf(s,%d,ti.wHour);outtextxy(70,420,s);outtextxy(90,420,点);sprintf(s,%d,ti.wMinute);outtextxy(110,420,s);outtextxy(130,420,分);sprintf(s,%d,ti.wSecond);outtextxy(150,420,s);outtextxy(170,420,秒);outtextxy(0,10,闹钟时刻:);sprintf(s,%d,Yhour);outtextxy(70,10,s);outtextxy(90,10,点);sprintf(s,%d,Yminute);outtextxy(110,10,s);outtextxy(130,10,分);setcolor(BROWN);outtextxy(120,450,想结束程序请按空格!);outtextxy(200,420,闹钟设定:请按F1后输入闹钟小时,按F2后输入闹钟分钟);DrawHand(ti.wHour,ti.wMinute,ti.wSecond);//画表针Sleep(1000);//延时1秒setcolor(0);sprintf(s,%d,ti.wHour);outtextxy(70,420,s);sprintf(s,%d,ti.wMinute);outtextxy(110,420,s);sprintf(s,%d,ti.wSecond);outtextxy(150,420,s);精选文档—14if(ti.wSecond==0)Beep(523,300);//整分钟报时if(ti.wHour==Yhour&&ti.wMinute==Yminute)Beep(kk,300);kk=kk+30;if(kk==600)kk=300;//if(ti.wMinu

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功