与系统时间严格同步的手表

2014-11-23 21:36:48 · 作者: · 浏览: 110

  /*** 与系统时间严格同步 并且可调时间 的电子表 ( MADE IN 127 ) ***/
  /*** ! 在程序运行过程中不要切换窗口,否则,会出错 . ***/
  #include
  #include
  #include
  #define STEP 6.283183/60
  #define PI 3.141592
  #define X 307
  #define Y 150 /*** 中心坐标 ***/
  #define R 100
  #define R_OUT (R+4) /*** 内外半径 ***/
  #define R_S (R-20)
  #define R_M (R-35)
  #define R_H (R-50) /*** 各指针半径 ***/
  #define MIN 60 /*** 设定延时 (分钟) ***/
  #define C_I 9
  int HH=0,MM=0;
  main()
  {
  int gd=DETECT,gm,second,record_s,minite,record_m,hour,i,pc=60;
  time_t t; float temp; char ch='#';
  int int_M=MIN; pc=(MIN-int_M)*60;
  initgraph (&gd,&gm,""); setbkcolor (0);
  /*** 外观设计 ***/
  circle (X,Y,R); setfillstyle (1,2); floodfill (X,Y,15);
  circle (X,Y,R_OUT); setfillstyle (1,8); floodfill (X+R_OUT-1,Y,15);
  rectangle (X-2,Y-R+8-4,X+2,Y-R+8+4);
  rectangle (X-2,Y+R-8-4,X+2,Y+R-8+4);
  rectangle (X-R+8-4,Y-2,X-R+8+4,Y+2);
  rectangle (X+R-8-4,Y-2,X+R-8+4,Y+2);
  for (i=1;i<=60;i++)

  if (i!=15&&i!=30&&i!=45&&i!=60)
  if (i%5!=0) circle (X+(R-10)*cos(i*STEP),Y+(R-10)*sin(i*STEP),1);
  else circle (X+(R-10)*cos(i*STEP),Y+(R-10)*sin(i*STEP),2);
  rectangle (X+R_OUT,Y-6,X+R_OUT+6,Y+6);
  setfillstyle (1,8); floodfill (X+R_OUT+3,Y,15);
  temp=R_OUT*0.866;
  line (X-R_OUT/2-5,Y-temp+2,X-R_OUT/2,Y-temp-30);
  line (X-R_OUT/2+5,Y-temp-2,X-R_OUT/2+5,Y-temp-30);
  line (X+R_OUT/2-5,Y-temp-2,X+R_OUT/2-5,Y-temp-30);
  line (X+R_OUT/2+5,Y-temp+2,X+R_OUT/2,Y-temp-30);
  line (X-R_OUT/2,Y-temp-30,X-R_OUT/2+5,Y-temp-30);
  line (X+R_OUT/2-5,Y-temp-30,X+R_OUT/2,Y-temp-30);
  line (X-R_OUT/2+5,Y-temp-25,X+R_OUT/2-5,Y-temp-25);
  line (X-R_OUT/2+5,Y-temp-22,X+R_OUT/2-5,Y-temp-22);
  floodfill (X-R_OUT/2-2,Y-temp,15);
  floodfill (X+R_OUT/2+2,Y-temp,15);
  floodfill (X,Y-R_OUT-10,15);
  line (X-R_OUT/2-5,Y+temp-2,X-R_OUT/2,Y+temp+30);
  line (X-R_OUT/2+5,Y+temp+2,X-R_OUT/2+5,Y+temp+30);
  line (X+R_OUT/2-5,Y+temp+2,X+R_OUT/2-5,Y+temp+30);
  line (X+R_OUT/2+5,Y+temp-2,X+R_OUT/2,Y+temp+30);
  line (X-R_OUT/2,Y+temp+30,X-R_OUT/2+5,Y+temp+30);
  line (X+R_OUT/2-5,Y+temp+30,X+R_OUT/2,Y+temp+30);
  line (X-R_OUT/2+5,Y+temp+25,X+R_OUT/2-5,Y+temp+25);
  line (X-R_OUT/2+5,Y+temp+22,X+R_OUT/2-5,Y+temp+22);
  floodfill (X-R_OUT/2-2,Y+temp,15);
  floodfill (X+R_OUT/2+2,Y+temp,15);
  floodfill (X,Y+R_OUT+10,15);
  for (i=1;i<=MIN*60+1;i++) /*** 该循环严格一秒一次 ( 捕捉系统时间 ) ***/
  {