电子时钟.doc_第1页
电子时钟.doc_第2页
电子时钟.doc_第3页
电子时钟.doc_第4页
电子时钟.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*-电子时钟源代码-*/*-预处理-*/#include#include#include#include/*-宏定义-*/#define PI 3.1415926#define Up 0x4800#define Down 0x5000#define Tab 0xf09#define Esc 0x11b/*-定义全局变量-*/ double Hour,Minute,Second; int Radius=130,Center_x=300,Center_y=265; double Hour_x,Hour_y,Minute_x,Minute_y,Second_x,Second_y; struct time Time1;/*-函数的声明-*/void ColockHandle();int DigitalHour(double Hour);int DigitalMinute(double Minute);int DigitalSecond(double Second);void DigitalClock(int x,int y,int clock);int Up_Key(int Count);int Down_Key(int Count);void ClearCursor(int Count);void DrawCursor(int Count);/*-主函数-*/main()/*-绘底板-*/ int Driver,Mode; int i,j; Driver=DETECT; initgraph(&Driver,&Mode,); setcolor(RED); line(300,0,5,120); line(300,0,595,120); line(5,120,595,120); setfillstyle(SOLID_FILL,RED); floodfill(300,100,RED); setcolor(BLUE); line(65,120,535,120); line(65,120,65,470); line(535,120,535,470); line(65,470,535,470); line(125,120,125,470); line(475,120,475,470); line(125,410,475,410); setfillstyle(SOLID_FILL,BLUE); floodfill(80,130,BLUE); setfillstyle(SOLID_FILL,BLUE); floodfill(500,130,BLUE); setfillstyle(SOLID_FILL,BLACK); floodfill(300,450,BLUE);/*-绘时间间隔符-*/ for(i=275;i=305;i=i+30) for(j=434;j=442;j=j+8) setcolor(WHITE); setlinestyle(0,0,3); circle(i,j,1); /*-绘制光标-*/ setcolor(WHITE); line(270,430,270,445);/*-绘制表轴-*/ setlinestyle(0,0,3); circle(Center_x,Center_y,1);/*-绘制表框-*/ setlinestyle(0,0,1); circle(Center_x,Center_y,Radius+3);/*-绘制分针刻度-*/ for(i=0,Minute=0;i=59;i+,Minute+) Minute_x=Center_x+Radius*sin(Minute/30*PI); Minute_y=Center_y-Radius*cos(Minute/30*PI); setlinestyle(0,0,1); circle(Minute_x,Minute_y,1); /*-绘制时针刻度-*/ setcolor(RED); for(i=0,Hour=0,Minute=0;i=11;i+,Hour+) Hour_x=Center_x+Radius*sin(Hour*60+Minute)/360*PI); Hour_y=Center_y-Radius*cos(Hour*60+Minute)/360*PI); setlinestyle(0,0,3); circle(Hour_x,Hour_y,1); /*-添加文本-*/ setcolor(GREEN); outtextxy(283,50,CLOCK); outtextxy(320,110,Designed by Zhang Cheng Jin); outtextxy(80,130,Help); outtextxy(70,150,Up:); outtextxy(78,168,Time+); outtextxy(70,216,Down:); outtextxy(78,234,Time-); outtextxy(70,286,Tab:); outtextxy(78,304,Move); outtextxy(70,356,Esc:); outtextxy(78,374,Exit); outtextxy(500,190,No); outtextxy(490,215,time); outtextxy(490,240,like); outtextxy(495,265,the); outtextxy(480,290,present); outtextxy(500,315,!);/*-调用函数-*/ ColockHandle();/*-关闭图形-*/ closegraph();/*-返回0,程序结束-*/ return 0;/*-时钟动画处理函数-*/void ColockHandle() int Key=0,Count; setcolor(WHITE);/*-获取系统时间-*/ gettime(Time); Hour=Time0.ti_hour; Minute=Time0.ti_min;/*-绘制分针-*/ Minute_x=Center_x+100*sin(Minute/30*PI); Minute_y=Center_y-100*cos(Minute/30*PI); line(Center_x,Center_y,Minute_x,Minute_y);/*-绘制时针-*/ Hour_x=Center_x+80*sin(Hour*60+Minute)/360*PI); Hour_y=Center_y-80*cos(Hour*60+Minute)/360*PI); line(Center_x,Center_y,Hour_x,Hour_y);/*-绘制数字时钟-*/ DigitalClock(255,435,DigitalHour(Hour); DigitalClock(285,435,DigitalMinute(Minute); setwritemode(1); for(Count=2;Key!=Esc;) /*-绘制秒针-*/ setcolor(RED); Hour=Time0.ti_hour; Minute=Time0.ti_min; Second=Time0.ti_sec; Second_x=Center_x+120*sin(Second/30*PI); Second_y=Center_y-120*cos(Second/30*PI); line(Center_x,Center_y,Second_x,Second_y);/*-*/ while(Hour=Time0.ti_hour&Minute=Time0.ti_min&Second=Time0.ti_sec) gettime(Time); if(bioskey(1)!=0) Key=bioskey(0); Count=KeyHandle(Key,Count); if(Count=5) Count=1; /*-绘制数字时钟的秒-*/ setcolor(WHITE); DigitalClock(315,435,DigitalSecond(Second)+1);/*-清除前一个秒针的图形-*/ setcolor(RED); Second_x=Center_x+120*sin(Second/30*PI); Second_y=Center_y-120*cos(Second/30*PI); line(Center_x,Center_y,Second_x,Second_y); setcolor(WHITE);/*-对分针变化的处理-*/ if(Minute!=Time0.ti_min) Minute_x=Center_x+100*sin(Minute/30*PI); Minute_y=Center_y-100*cos(Minute/30*PI); line(Center_x,Center_y,Minute_x,Minute_y); Minute=Time0.ti_min; DigitalClock(285,435,DigitalMinute(Minute); Minute_x=Center_x+100*sin(Minute/30*PI); Minute_y=Center_y-100*cos(Minute/30*PI); line(Center_x,Center_y,Minute_x,Minute_y); /*-对时针变化的处理 -*/ if(Hour!=Time0.ti_hour) Hour_x=Center_x+80*sin(Hour*60+Minute)/360*PI); Hour_y=Center_y-80*cos(Hour*60+Minute)/360*PI); line(Center_x,Center_y,Hour_x,Hour_y); Hour=Time0.ti_hour; DigitalClock(255,435,DigitalHour(Hour); Hour_x=Center_x+80*sin(Hour*60+Minute)/360*PI); Hour_y=Center_y-80*cos(Hour*60+Minute)/360*PI); line(Center_x,Center_y,Hour_x,Hour_y); /*-数字时钟模块-*/int DigitalHour(double Hour) int h; for(h=0;h24;h+) if(h=Hour) return h; int DigitalMinute(double Minute) int m; for(m=0;m60;m+) if(m=Minute) return m; int DigitalSecond(double Second) int s; for(s=0;s60;s+) if(s=Second) return s; void DigitalClock(int x,int y,int clock) char buffer10; setfillstyle(0,2); bar(x,y,x+14,449); if(clock=60) clock=0; sprintf(buffer,%d,clock); outtextxy(x,y,buffer);/*-按键处理函数-*/int KeyHandle(int Key,int Count) switch(Key) case Up: Up_Key(Count-1); break; case Down: Down_Key(Count-1); break; case Tab: ClearCursor(Count); DrawCursor(Count); Count+; break; return Count;/*-向上方向键函数-*/int Up_Key(int Count) if(Count=1) Time0.ti_hour-; if(Time0.ti_hour=24) Time0.ti_hour=0; settime(Time); if(Count=2) Time0.ti_min-; if(Time0.ti_min=60) Time0.ti_min=0; settime(Time); if(Count=3) Time0.ti_sec-; if(Time0.ti_sec=60) Time0.ti_sec=0; settime(Time); /*-向下方向键函数-*/int Down_Key(int Count) if(Count=1) Time0.ti_hour+; if(Time0.ti_hour=24) Time0.ti_hour=0; settime(Time); if(Count=2) Time0.ti_min+; if(Time0.ti_min=60) Time0.ti_min=0; settime(Time); if(Count=3) Time0.ti_sec+; if(Time0.ti_sec=60) Time0.ti_sec=0; settime(Time); /*-光标处理函数-*/void ClearCursor(int Count) setcolor(WHITE);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论