ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:226.82KB ,
资源ID:460470      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-460470.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子时钟设计Word文件下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

电子时钟设计Word文件下载.docx

1、相关条件的判断和时钟指针坐标点值的计算,完成时、分、秒指针的擦除和重绘,以达到模拟始终时钟运转的功能。(4)数字时钟处理模块。在数字时钟处理模块中,主要实现了数字时钟的显示和数字时钟的修改。其中,在数字时钟的修改中,用户可先按Tab键定位需要修改内容的位置,然后通过移动按光标()或下移()键来修改当前时间。 总体设计功能模块设计1电子时钟执行主流程此电子时钟执行主流程如图(2)所示。首先,程序调用initgraph()函数,使系统进入图形模式,然后通过使用line()、arc()、outtextxy()和circle()等函数来绘制主窗口及电子时钟界面,最后调用Clockhandle()函数来

2、处理时钟的运转及数字时钟的显示。在clockhandle()函数中,使用了bioskey()函数来获取用户的按键值,当用户按键Esc时,程序会从clockhandle()函数中返回,从而退出函数。2电子时钟界面显示电子时钟界面的实现比较简单。值得一提的是,模拟电子时钟的运转的动画时钟的时间刻度是用大小不同的圆来表示的,3根长度不同但有一端在相同坐标位置的直线分别表示时、分、秒针。3电子时钟按键处理模块在按键处理模块中,使用bioskey()函数来读取用户按键的键值,然后调用keyhandle()函数对键盘按键值进行判断,执行相应的操作。具体按键判断如下。(1)若用户按下Tab键,程序会调用cl

3、earcursor()函数来清除上一个位置的光标,然后调用drawcursor()函数在新位置处绘制一个光标。(2)若用户按下光标上移键,程序会调用timeupchange()函数来增加相应的时、分、秒值。(3)若用户按下光标下移键,程序会调用timedownchange()函数来减少相应的时、分、秒值。(4)若用户按下Esc键,程序会结束时钟运行,从而退出系统。3数字时钟处理模块在数字时钟处理模块中,会每隔一秒调用gettime(t)函数,获取系统时间,然后调用digitclock()函数在相应的位置显示时、分、秒值。至于数字适时钟的修改,主要由当前光标位置和光标上移()或下移()按键两者共

4、同决定。例如,若当前光标在分钟显示位置,且按下光标上移键,程序会将当前时间的分钟值增加1,即增加一分钟,若加1后的分钟值等于60,则将当前分钟值设置为0,最后调用settime(t)函数来设置新的系统时间。 数据结构设计 此程序中,使用了C语言的time结构体和几个全局变量,为了便于读者易于理解程序,这里分别来介绍。1Time结构体Struct time Unsigned char ti_min; Unsigned char ti_hour; Unsigned char ti_hund; Unsigned char ti_sec; ; Time 结构体定义在dos。h文件中,可用来保存系统的当

5、前时间,其中各文字的值的含义如下。 unsigned char ti_min:保存分钟值。 unsigned char ti_hour:保存小时。 unsigned char ti_hund:保存百分之一秒。 unsigned char ti_sec:保存秒数。2全局变量 double h,m,s:此3个全局变量分别用来保存小时、分钟、秒数。 double x,x1,x2,y,y1,y2:保存数字时钟的小时、分、秒在屏幕中显示的坐标值。 struct time t1:定义一个time结构类型的数组,此数组只有t0一个元素。 函数功能描述1) keyhandle()函数原型:int keyhan

6、dle(int key,int count);keyhandle()函数用于对用户的按键值key进行判断,然后调用timeupchange(count)或timedownchange(count)或直接处理Tap按键,其中count的值为1、2、3,1表示小时、2表示分钟、3表示秒钟。按Tap键后,count值加1。2) timeupchange()int timeupchange(int count);timeupchange()函数用于增加时、分、秒数,然后将新的时间设置为当前时间。3) timedownchange()int timedownchange(int count)timedo

7、wnchange()函数用于减少时、分、秒数,然后将新的时间设置为当前时间。4)digitclock()void digitclock(int x,int y,int clock );Digitclock()函数用于在(x,y)位置显示clock值为时、分、秒值。5) drawcursor()void drawcursor(intcount);drawcursor()函数用于对count进行判断后,在相应位置绘制一条直线作为光标。6) clearcursor()void clearcursor(int count);clearcursor()函数用于对count进行判断后,在相应位置擦除原来的

8、光标。7) void clockhandle()void clockhandle();void clockhandle()函数用于完成时钟转动和数字时钟的显示。(8) main()void main()main()为主函数。调试分析在此次课程设计中,遇到了一些问题,通过和同学那个学以及老师 之间的沟通交流,最终把问题解决了。(1)要减少在部分功能上浪费时间,则在实践之前,将源代码以及函数所代表的意义搞清楚,才能做到节省做好程序的时间的目的。(2)对应函数问题的不同意思要搞清,才能把功能搞清,对后面整个程序有较好的帮助。(3)在做完程序后,要及时检验可能会出现的问题(4)最终要运行程序,才能算是

9、彻底做完程序。小结此次课程设计,从理论到实践,不仅巩固了以前学过的知识,而且学到了很多在书本上学不到的知识,在设计中,我们遇到了许多以前编程从未遇见过的问题,发现自己仍然存在许多知识上的不足,对一些学过的知识理解的不够深刻,掌握的不够牢固,进过同学以及老师的帮助,是我理解到了更多,同时,我也体会到了团队合作的重要性,如果是一个人,根本不可能在短时间内完成这项编程任务。通过这次课程设计,我们进一步巩固了大一学到的编程知识,而且体会到完成一个大的程序设计工作,应努力增强团队精神和协作能力,准确的完成老师交给的编程任务。源码分析1程序预处理#includestdio.hconio.hmath.hdo

10、s.h#define PI 3.1415926 #define UP 0x4800 #define DOWN 0x5000 #define ESC 0x11b #define TAB 0xf09 int keyhandle(int,int);int timeupchange(int);int timedownchange(int);int digithour(double);int digitmin(double);int digitsec(double);void digitclock(int,int,int );void drawcursor(int);void clearcursor(i

11、nt);double h,m,s;double x,x1,x2,y,y1,y2;struct time t;时钟按键处理模块在电子时钟中,按键控制模块最主要的工作就是必须能够读取用户按键,对按键值进行判断,并调用相关函数来执行相关操作。int keyhandle(int key,int count) /*键盘控制 */ switch(key) case UP: timeupchange(count-1); /*因为count的初始值为,所以此处减*/ break; case DOWN:timedownchange(count-1); case TAB:setcolor(15); clearcu

12、rsor(count); /*清除原来的光标*/ drawcursor(count); /*显示一个新的光标*/ count+; return count;int timeupchange(int count) /*处理光标上移的按键*/ if(count=1) t0.ti_hour+; if(t0.ti_hour=24) t0.ti_hour=0; settime(t); /*设置新的系统时间*/ if(count=2) t0.ti_min+; if(t0.ti_min=60) t0.ti_min=0; if(count=3) t0.ti_sec+; if(t0.ti_sec=60) t0.

13、ti_sec=0;int timedownchange(int count) /*处理光标下移的按键*/ if(count=1) t0.ti_hour-; if(t0.ti_hour=0) t0.ti_hour=23;/*设置新的系统时间*/ if(count=2) t0.ti_min-; if(t0.ti_min=0) t0.ti_min=59; if(count=3) t0.ti_sec-; if(t0.ti_sec=0) t0.ti_sec=59;数字时钟处理模块在数字时钟处理模块中,主要实现数字时钟的显示和数字时钟的修改。其中,在数字时钟的修改中,用户先按Tab健定位需要修改的内容,然

14、后通过按光标上移()或下移()键来修改当前时间。void digitclock(int x,int y,int clock)/*在指定位置显示数字时钟:时分秒*/char buffer110; setfillstyle(0,2); bar(x,y,x+15,328); if(clock=60) clock=0; sprintf(buffer1,%d,clock); outtextxy(x,y,buffer1);int digithour(double h)/*将double型的小时数转换成int型*/int i; for(i=0;i=23;i+) if(h=i) return i;int di

15、gitmin(double m)/*将double型的分钟数转换成int型*/=59; if(m=i) return i;int digitsec(double s) /*将double型的秒钟数转换成int型*/ if(s=i) return i;void drawcursor(int count) /*根据count的值,画一个光标*/switch(count) case 1:line(424,315,424,325);break; case 2:line(465,315,465,325); case 3:line(505,315,505,325);void clearcursor(int count) /*根据count的值,清除前一个光标*/

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2