钟的代码:
#include<graphics.h>
#include<math.h>
#include<dos.h>
#define pi 3.1415926
#define X(a,b,c) x=a*cos((b*c)*pi/180-pi/2)+300;
#define Y(a,b,c) y=a*sin((b*c)*pi/180-pi/2)+240;
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)
void init()
{int i,l,x1,x2,y1,y2;
setbkcolor(0);
setcolor(2);
circle(300,240,194);
setcolor(3);
circle(300,240,201);
setcolor(5);
circle(300,240,205);
setcolor(6);
circle(300,240,5);
setcolor(7);
circle(300,240,3);
setcolor(2);
settextstyle(1,0,4);
outtextxy(287,55,"12");
outtextxy(293,390,"6");
outtextxy(122,223,"9");
outtextxy(465,223,"3");
setcolor(12);
for(i=0;i<60;i++)
{if(i%5==0){setcolor(4);setlinestyle(0,0,3); l=6;}
else {setcolor(7);setlinestyle(0,0,1);l=6;}
x1=200*cos(i*6*pi/180)+300;
y1=200*sin(i*6*pi/180)+240;
x2=(200-l)*cos(i*6*pi/180)+300;
y2=(200-l)*sin(i*6*pi/180)+240;
line(x1,y1,x2,y2);
}
}
main()
{
int x,y;
int gd=VGA,gm=2;
unsigned char h,m,s;
struct time t[1];
initgraph(&gd,&gm,"d:\\learn\\tce");
init();
setwritemode(1);
gettime(t);
h=t[0].ti_hour;
m=t[0].ti_min;
s=t[0].ti_sec;
setcolor(7);
d(150,(h*30+m*0.5),1);
setcolor(14);
d(170,m,6);
setcolor(4);
d(190,s,6);
while(!kbhit())
{while(t[0].ti_sec==s)
gettime(t);
sound(400);
delay(70);
sound(200);
delay(30);
nosound();
setcolor(4);
d(190,s,6);
s=t[0].ti_sec;
d(190,s,6);
if (t[0].ti_min!=m)
{
setcolor(14);
d(170,m,6);
m=t[0].ti_min;
d(170,m,6);
}
if (t[0].ti_hour!=h)
{ setcolor(7);
if(m!=60)d(150,(h*30+m*0.5),1);
d(150,(h*30),1);
h=t[0].ti_hour;
if(m!=60) d(150,(h*30+m*0.5),1);
d(150,(h*30),1);
sound(1000);
delay(240);
nosound();
delay(140);
sound(2000);
delay(240);
nosound();
}
}
getch();
closegraph();
}