#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; }}}

评论