正文

一个比较臃肿的电子表程序(欢迎提加好的算法和语法)2006-07-30 03:05:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/petibo/17007.html

分享到:

#include<stdio.h>#include<graphics.h>#include<math.h>#include<time.h>#include<conio.h>#define BB 3.1415926/180/*弧度*/#define R 200#define X 320#define Y 240main(){int gdriver=9,gmode=2;void draw();void ddraw();double x1,y1,x2,y2;int i;initgraph(&gdriver,&gmode,"");draw();/*画界面*/ddraw();/*处理秒、分、时针的转动*/getch();}void draw(){double x1,y1,x2,y2;int i;setbkcolor(1);setcolor(11);setlinestyle(0,0,3);circle(X,Y,R);setcolor(5);circle(X,Y,8);setcolor(5);setlinestyle(0,0,1);for(i=0;i<360;i=i+6){x1=X+(R-1.5)*cos(i*BB);y1=Y+(R-1.5)*sin(i*BB);if(i%90==0)  {x2=X+(R-20)*cos(i*BB);   y2=Y+(R-20)*sin(i*BB);}else if(i%30==0)  {x2=X+(R-13)*cos(i*BB);   y2=Y+(R-13)*sin(i*BB);}else  {x2=X+(R-8)*cos(i*BB);   y2=Y+(R-8)*sin(i*BB);}line(x1,y1,x2,y2);}}void ddraw(){struct tm *local;time_t t;double x2,y2;float sec1,sec2,min,hour,n;t=time(NULL);local=localtime(&t);printf(ctime(&t));sec1=local->tm_sec;n=sec1;setwritemode(XOR_PUT);x2=X+(R-22)*cos((sec1*6-90)*BB);y2=Y+(R-22)*sin((sec1*6-90)*BB);setcolor(3);line(X,Y,x2,y2);min=local->tm_min;x2=X+(R-35)*cos(((min+sec1/60)/60*360-90)*BB);y2=Y+(R-35)*sin(((min+sec1/60)/60*360-90)*BB);setcolor(4);setlinestyle(0,0,1);line(X,Y,x2,y2);hour=local->tm_hour;if(hour>=12)hour=hour-12;x2=X+(R-45)*cos(((hour+min/60+sec1/3600)/12*360-90)*BB);y2=Y+(R-45)*sin(((hour+min/60+sec1/3600)/12*360-90)*BB);setcolor(6);setlinestyle(0,0,1);line(X,Y,x2,y2);while(!kbhit()){t=time(NULL);local=localtime(&t);gotoxy(1,1);printf(ctime(&t));sec2=local->tm_sec;  if(abs(sec2-sec1)>=1)   {n=n+1;    setcolor(3);    setlinestyle(0,0,0);setwritemode(XOR_PUT);    x2=X+(R-22)*cos((sec1*6-90)*BB);    y2=Y+(R-22)*sin((sec1*6-90)*BB);    line(X,Y,x2,y2);    x2=X+(R-22)*cos((sec2*6-90)*BB);    y2=Y+(R-22)*sin((sec2*6-90)*BB);    line(X,Y,x2,y2);    /*秒针*/setcolor(4);setlinestyle(0,0,1);setwritemode(1);x2=X+(R-35)*cos(((min+(n-1)/60)/60*360-90)*BB);y2=Y+(R-35)*sin(((min+(n-1)/60)/60*360-90)*BB);line(X,Y,x2,y2);x2=X+(R-35)*cos(((min+n/60)/60*360-90)*BB);y2=Y+(R-35)*sin(((min+n/60)/60*360-90)*BB);line(X,Y,x2,y2);/*分针*/setcolor(6);setlinestyle(0,0,1);setwritemode(1);x2=X+(R-35)*cos(((hour+(n/60-1)/60)/60*360-90)*BB);y2=Y+(R-35)*sin(((hour+(n/60-1)/60)/60*360-90)*BB);line(X,Y,x2,y2);x2=X+(R-35)*cos(((hour+n/3600)/60*360-90)*BB);y2=Y+(R-35)*sin(((hour+n/3600)/60*360-90)*BB);line(X,Y,x2,y2);/*时针*/sec1=sec2;    }}}

阅读(1801) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册