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

2019-08-31 11:36

第3章 系统设计

设计主体为首先画图,然后调用时钟处理函数,其次再调用一个循环,使之进入主体时钟处理函数。时钟处理函数中含有划线函数,先取得电脑中的时间,调用画图函数画出当前所对应的模拟时钟图像,同时把时间赋给数字时钟

3.1流程图

开始 进入画图模式 绘制主窗体界面 绘制电子时钟界面 绘制帮助界面 调用时钟处理函数 结束 3.2电子时钟界面显示

本程序定义了huatu()函数,程序首先进入主函数后,就开始调用huatu()函数。Huatu()函数中首先调用initgraph()函数,使系统进入图形模式,调用setlinestyle(x,y,z)函数来设定线粗。Z代表线的粗细,分为1,2,3三个等级的线型;调用setbkcolor(x)函数设置当前的背景颜色,颜色分为1-15个等级,0为白色;然后调用setcolor(x)函数确定当前画线的颜色,同样也有1-15个等级;调用line(x,y,a,b)函数开始画线,(x,y)代表起点坐标(a,b)代表终点坐标;然后调用outtextxy(x,y,””)函数在坐标点为(x,y)的位置输出分号中的内容;其中还调用了circle(i,j,x)函数画出了以x为半径(x,y)为圆心的圆作为表示小时或者分钟的圆点;调用完以上函数就完成了界面主体的绘制。

3.3按键控制模块

在本模块中,使用bioskey()函数读取用户的键值进行判断,执行相应操作。具体如下:

用户按下TAB或者Esc键,系统调按键判断函数,跳出时钟处理函数1,进入输入界面,调用

scanf()函数对结构体变量中的元素

&t[0].ti_min,&t[0].ti_hour,&t[0].ti_sec重新赋值后,再调用settime(t)函数,使之把数值赋给系统时间,通过改变系统时间达到修改时间的功能。 3.4时钟动画处理

时钟动画处理是本程序的核心,巧妙模拟出动态效果。其中的关键在于对时针、分针、秒针的绘制以及计算。具体设计如下:

(1) 坐标点的计算,表盘中的时分秒有一个共同的圆心,但是各

在不同的圆弧上移动,规律是:秒针转动60次,分针转动1次;分针转动60次,时针转动1次;秒针每一次所经过的角度是60度,并且可以通过与圆心的关系计算出来。具体计算如下:圆心坐标为(x,y),半径为r借助三角函数可以求得k点的坐标值(x+asin?,y-acos?),同样可以用相同的方法求得,分、秒的坐标值。本程序中a,b,c分别取50,80,98,单位为像素。可以模拟出不同的长度,作为时、分、秒指针示意图如下:

K ? (2) 动画处理流程

初运行阶段首先取得系统时间并保存在t结构体变量内,同时在数字时钟中显示出当前系统时间。然后开始进入for循环,直到用户按ESC或者Tab键跳出循环。同时打开扬声器,发出滴答声,并利用while循环延迟一秒从而模拟出机械钟的滴答声。延迟一秒后清除原来的秒针,绘制新的秒针,同时更新数字时钟的数字。用一个if语句判断如果分钟有变化,清除分针,重绘分针;如果时针有变化,清除时针,重绘时针。最后通过对键值的判断,若为Esc或者Tab则跳出循环。

3.5数字时钟处理模块

在本模块中,每隔一秒会调用gettime(t)函数来得到系统时间,并把它赋给digitclock()函数,并在显示相应的数字时钟位置,同时还有一个判断语句,如果秒数等于60,那么秒数就会重新变为0,从而形成一个循环。修改时间是通过的改变系统时间来实现的,调用scanf()函数把t结构体变量重新赋值,再调用settime()函数就把系统时间修改成功了。

第4章 系统实现

/*电子时钟源代码*/

#include #include #include #include

#define PI 3.1415926 /*定义常量*/

#define ESC 0x11b /*ESC键 : 退出系统*/ #define TAB 0xf09 /*TAB键 : 移动光标*/ /*函数声明*/

int keyhandle(int); /*键盘按键判断,并调用相关函数处理*/ int digithour(double); /*将double型的小时数转换成int型*/ int digitmin(double); /*将double型的分钟数转换成int型*/ int digitsec(double); /*将double型的秒钟数转换成int型*/

void digitclock(int,int,int ); /*在指定位置显示时钟或分钟或秒钟数*/ void drawcursor(int); /*绘制一个光标*/ void clearcursor(int);/*消除前一个光标*/ void clockhandle(); /*时钟处理*/

double h,m,s; /*全局变量:小时,分,秒*/ double ho,mi;

double x,x1,x2,y,y1,y2; /*全局变量:坐标值*/

struct time t[1];/*定义一个time结构类型的数组*/ main() {

huatu();

clockhandle1();/*开始调用时钟处理程序*/ tab1:

closegraph();

printf(\

scanf(\ huatu(); settime(t);

clockhandle2(); goto tab1;

closegraph(); /*关闭图形系统*/

return 0; /*表示程序正常结束,向操作系统返回一个0值*/ }

clockhandle1() {

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


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

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

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

马上注册会员

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