改进时钟(小熊时钟)

  1 #include<graphics.h>
  2 #include<conio.h>
  3 #include<math.h>
  4 #include<stdio.h>
  5 #include<windows.h>
  6 #include<iostream.h> 
  7 #define PI 3.1415926 
  8 void Draw(int hour,int minute,int second)
  9 {
 10 double a_hour,a_min,a_sec;
 11 int x_hour,y_hour,x_min,y_min,x_sec,y_sec;
 12 int x_hour1,y_hour1,x_min1,y_min1,x_sec1,y_sec1; 
 13 a_sec = second*2*PI/60;
 14 a_min = minute*2*PI/60+a_sec/60;
 15 a_hour= hour*2*PI/12+a_min/12; 
 16 x_sec = 320 +(int)(115 * sin(a_sec));
 17 y_sec = 240 -(int)(115 * cos(a_sec)); 
 18 x_min = 320 + (int)(100 * sin(a_min));
 19 y_min = 240 - (int)(100 * cos(a_min)); 
 20 x_hour= 320 + (int)(70 * sin(a_hour));
 21 y_hour= 240 - (int)(70 * cos(a_hour));
 22 /*------------------------------------------------------*/
 23 x_sec1 = 320 +(int)(30 * sin(a_sec));
 24 y_sec1 = 240 -(int)(30 * cos(a_sec)); 
 25 x_min1 = 320 + (int)(20 * sin(a_min));
 26 y_min1 = 240 - (int)(20 * cos(a_min)); 
 27 x_hour1= 320 + (int)(20 * sin(a_hour));
 28 y_hour1= 240 - (int)(20 * cos(a_hour)); 
 29 setlinestyle(PS_SOLID,6);
 30 setcolor(WHITE);
 31 line(320,240,x_hour,y_hour);
 32 line(320, 240, 640-x_hour1,480-y_hour1 ); 
 33 setlinestyle(PS_SOLID,4);
 34 setcolor(LIGHTGRAY);
 35 line(320, 240, x_min, y_min);
 36 line(320, 240, 640-x_min1,480-y_min1 );
 37 setlinestyle(PS_SOLID,2);
 38 setcolor(RED);
 39 line(320, 240, x_sec, y_sec);
 40 //line(320, 240, x_sec1, y_sec1);
 41 line(320, 240, 640-x_sec1,480-y_sec1 );
 42 } 
 43 void main(void)
 44 {
 45 initgraph(640,480);
 46 /*----------------------------------------------------------------*/
 47 circle(320,240,4);
 48 circle(320,240,115);
 49 circle(320,240,120); 
 50 rectangle(300,360,340,400);
 51 rectangle(250,400,390,440); 
 52 circle(200,120,50);
 53 circle(200,120,45);
 54 
 55 circle(440,120,50);
 56 circle(440,120,45); 
 57 outtextxy(210,235,'9');
 58 outtextxy(425,235,'3');
 59 outtextxy(315,130,"12");
 60 outtextxy(315,339,'6'); 
 61 outtextxy(262,322,'7');
 62 outtextxy(260,145,"11");
 63 
 64 outtextxy(370,322,'5');
 65 outtextxy(370,145,'1'); 
 66 outtextxy(225,287,'8');
 67 outtextxy(408,287,'4'); 
 68 outtextxy(222,185,"10");
 69 outtextxy(410,181,'2'); 
 70 outtextxy(180,110,"");
 71 outtextxy(220,110,"");
 72 outtextxy(410,110,"星期"); 
 73 /*----------------------------------------------------------------*/ 
 74 setwritemode(R2_XORPEN); 
 75 SYSTEMTIME ti; // SYSTEMTIME是一个结构体 // 
 76 char Second_R[1],Second_L[1];
 77 char Minute_R[1],Minute_L[1];
 78 char Hour_R[1],Hour_L[1]; 
 79 while(!kbhit())
 80 {
 81 GetLocalTime(&ti); 
 82 // 把当前的时间给结构体变量ti,让它保存数据,用&ti作为实参是因为形参是指针,指针进行操作,直接改变原来的数据 //
 83 /*----------------------------------------------------------------*/
 84 switch(ti.wDayOfWeek)
 85 {
 86 case 0: setcolor(LIGHTRED);
 87 outtextxy(450,110,"");
 88 break; 
 89 case 1: setcolor(YELLOW);
 90 outtextxy(450,110,"");
 91 break; 
 92 case 2: setcolor(LIGHTCYAN);
 93 outtextxy(450,110,"");
 94 break; 
 95 case 3: setcolor(LIGHTBLUE);
 96 outtextxy(450,110,"");
 97 break; 
 98 case 4: setcolor(LIGHTGREEN);
 99 outtextxy(450,110,"");
100 break; 
101 case 5: setcolor(LIGHTMAGENTA);
102 outtextxy(450,110,"");
103 break; 
104 case 6: setcolor(RGB(255,128,0));
105 outtextxy(450,110,"");
106 break;
107 }
108 /*----------------------------------------------------------------*/
109 
110 char Day[2],Month[2],Year[4]; 
111 setcolor(CYAN);
112 sprintf(Month,"%d",ti.wMonth);
113 outtextxy(160,110,Month);
114 sprintf(Day,"%d",ti.wDay);
115 outtextxy(205,110,Day); 
116 
117 setcolor(LIGHTMAGENTA);
118 sprintf(Year,"%d",ti.wYear);
119 outtextxy(305,370,Year); 
120 /*----------------------------------------------------------------*/ 
121 Draw(ti.wHour,ti.wMinute,ti.wSecond);
122 /*----------------------------------------------------------------*/ sprintf(Hour_R, "%d", ti.wHour %10);
123 sprintf(Hour_L,"%d", (int)ti.wHour /10);
124 outtextxy(272,420,Hour_L);
125 outtextxy(280,420,Hour_R); 
126 outtextxy(300,420,':');
127 
128 sprintf(Minute_R, "%d", ti.wMinute %10);
129 sprintf(Minute_L,"%d", (int)ti.wMinute /10);
130 outtextxy(312,420,Minute_L);
131 outtextxy(320,420,Minute_R); 
132 outtextxy(340,420,':');
133 
134 sprintf(Second_R, "%d", ti.wSecond %10);
135 sprintf(Second_L,"%d", (int)ti.wSecond /10);
136 outtextxy(352,420,Second_L);
137 outtextxy(360,420,Second_R); 
138 Sleep(1000);
139 Draw(ti.wHour,ti.wMinute,ti.wSecond);
140 }
141 
142 /*----------------------------------------------------------------*/
143 
144 getch();
145 closegraph(); 
146 }
View Code

 

posted on 2014-04-03 22:30  一颗向上的草莓  阅读(402)  评论(0编辑  收藏  举报