




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计职业技能试题及答案
- 2025年驾校营销考试题及答案
- 南京市中储粮2025秋招面试专业追问题库综合管理岗
- 国家能源济源市2025秋招能源与动力工程类面试追问及参考回答
- 衡阳市中石化2025秋招笔试模拟题含答案财务与审计岗
- 2025年产后恢复考试题及答案
- 白银市中石化2025秋招笔试模拟题含答案炼油工艺技术岗
- 国家能源宁夏地区2025秋招笔试数学运算题专练及答案
- 鞍山市中石化2025秋招面试半结构化模拟题及答案油气储运与管道岗
- 2025年邮政远程培训题库及答案
- 人教版英语单词表-六年级上册689
- 南京市交通建设投资控股(集团)有限责任公司公司2024年半年度财务报表及附注
- 形势与政策(吉林大学)智慧树知到答案2024年吉林大学
- 中药活血化瘀成分的分子靶向作用
- 数字金融驱动区域技术创新水平提升的空间溢出效应研究
- 一次性餐具配送投标方案
- 《公共艺术设计》课件
- 2024年中国教育出版传媒集团有限公司招聘笔试参考题库附带答案详解
- 老年综合评估课件
- 冬季作业安全技术交底
- 代写公司简介范本
评论
0/150
提交评论