- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子时钟设计
课程设计要求和内容
1 设计目的
本程序旨在训练读者的基本编程能力,使读者熟悉C语言图形模式下的编程。本程序涉及时间结构体、数组、绘图等方面的知识。通过本程序的训练,使读者能对C语言有一个更深刻的了解,掌握利用C语言相关函数开发电子时钟的基本原理,为进一步开发出高质量的程序打下坚实的基础。
2 功能描述
如图(1)所示,此电子时钟主要有以下4个功能组成
电子时钟界面显示模块。电子时钟界面显示在调用电 子钟运行处理之前完成,在这里主要调用了C语言图形系统函数和字符屏幕处理函数画出时钟程序的主界面。
主界面包括类似Windows 自带的电子时钟的界面和帮助界面两部分。电子时钟界面包括一个模拟时钟运转的钟表和一个显示时间的数字钟表。在帮助界面中,主要包括
一些按键的操作说明。
电子时钟按键控制模块。按键控制模块主要完成两大部分功能。第一,读取用户按键的键值。第二,通过对键盘按键值的判断,执行相应的操作,如光标移动、修改时间。
(3)时钟动画处理模块。在时钟动画处理模块中,通过对
相关条件的判断和时钟指针坐标点值的计算,完成时、分、秒指针的擦除和重绘,以达到模拟始终时钟运转的功能。
(4)数字时钟处理模块。在数字时钟处理模块中,主要实现了数字时钟的显示和数字时钟的修改。其中,在数字时钟的修改中,用户可先按Tab键定位需要修改内容的位置,然后通过移动按光标(↑)或下移(↓)键来修改当前时间。
总体设计
功能模块设计
电子时钟执行主流程
此电子时钟执行主流程如图(2)所示。首先,程序调用initgraph()函数,使系统进入图形模式,然后通过使用line()、arc()、outtextxy()和circle()等函数来绘制主窗口及电子时钟界面,最后调用
Clockhandle()函数来处理时钟的运转及数字时钟的显示。在clockhandle()函数中,使用了bioskey()
函数来获取用户的按键值,当用户按键Esc时,程序会从clockhandle()函数中返回,从而退出函数。
电子时钟界面显示
电子时钟界面的实现比较简单。值得一提的是,模拟电子时钟的运转的动画时钟的时间刻度是用大小不同的圆来表示的,3根长度不同但有一端在相同坐标位置的直线分别表示时、分、秒针。
3电子时钟按键处理模块
在按键处理模块中,使用bioskey()函数来读取用户按键的键值,然后调用keyhandle()函数对键盘按键值进行判断,执行相应的操作。具体按键判断如下。
若用户按下Tab键,程序会调用clearcursor()函数来清除上一个位置的光标,然后调用drawcursor()函数在新位置处绘制一个光标。
若用户按下光标上移键,程序会调用timeupchange()函数来增加相应的时、分、秒值。
若用户按下光标下移键,程序会调用timedownchange()函数来减少相应的时、分、秒值。
若用户按下Esc键,程序会结束时钟运行,从而退出系统。
数字时钟处理模块
在数字时钟处理模块中,会每隔一秒调用gettime(t)
函数,获取系统时间,然后调用digitclock()函数在相应的位置显示时、分、秒值。至于数字适时钟的修改,主要由当前光标位置和光标上移(↑)或下移(↓)按键两者共同决定。例如,若当前光标在分钟显示位置,且按下光标上移键,程序会将当前时间的分钟值增加1,即增加一分钟,若加1后的分钟值等于60,则将当前分钟值设置为0,最后调用settime(t)函数来设置新的系统时间。
数据结构设计
此程序中,使用了C语言的time结构体和几个全局变量,为了便于读者易于理解程序,这里分别来介绍。
Time结构体
Struct time
{
Unsigned char ti_min;
Unsigned char ti_hour;
Unsigned char ti_hund;
Unsigned char ti_sec;
};
Time 结构体定义在dos。h文件中,可用来保存系统的当前时间,其中各文字的值的含义如下。
● 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:保存数字时钟的小时、分、秒
文档评论(0)