您的位置:程序门 -> c/c++ ->



一个时钟程序的3根针同步问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个时钟程序的3根针同步问题
发表于:2008-01-02 00:43:51 楼主
程序如下:
现在运行时,秒针走一圈,分针直接跳一小格.我想让秒针走一下,分针也微微动一下.怎么改这个程序?
#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(1);
circle(300,240,200);
circle(300,240,205);
circle(300,240,5);
for(i=0;i <60;i++)
{if(i%5==0)   l=15;
else   l=5;
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:\\tc");
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);
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);
d(150,h,30);
h=t[0].ti_hour;
d(150,h,30);
sound(1000);
delay(240);
nosound();
delay(140);
sound(2000);
delay(240);
nosound();
}
}
getch();
closegraph();
}
发表于:2008-01-02 00:44:581楼 得分:0
d(170,m,6);  
d()是什么意思?谢谢


快速检索

最新资讯
热门点击