C语言 时钟里 time.h 定义
#include<graphics.h>#include<math.h>#include<dos.h>#definepi3.1415926#defineX(a,b,c)x...
#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(2);
setlinestyle(0, 0, 1);
circle(300,240,200);
setlinestyle(0, 0, 3);
circle(300,240,210);
setlinestyle(0, 0, 1);
circle(300,240,5);
for(i=0;i<60;i++)
{if(i%5==0) l=15;
else l=3;
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);
setlinestyle(0, 0, 1);
d(150,h,30);
setcolor(14);
d(170,m,6);
setcolor(5);
setlinestyle(0, 0, 3);
d(190,s,6);
while(!kbhit())
{while(t[0].ti_sec==s)
gettime(t);
delay(70);
delay(30);
setcolor(5);
setlinestyle(0, 0, 3);
d(190,s,6);
s=t[0].ti_sec;
d(190,s,6);
if (t[0].ti_min!=m)
{
setcolor(14);
setlinestyle(0, 0, 1);
d(170,m,6);
m=t[0].ti_min;
d(170,m,6);
}
if (t[0].ti_hour!=h)
{ setcolor(7);
setlinestyle(0, 0, 1);
d(150,h,30);
h=t[0].ti_hour;
d(150,h,30);
delay(240);
delay(140);
delay(240);
}
}
getch();
closegraph();
}
为什么这个程序开头没有定义#include<time.h> 可是还是可以运行 而且时间还是对的?
会的请解答一下 顺便留下QQ(因为还有一些小问题想请教) 重赏 展开
#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(2);
setlinestyle(0, 0, 1);
circle(300,240,200);
setlinestyle(0, 0, 3);
circle(300,240,210);
setlinestyle(0, 0, 1);
circle(300,240,5);
for(i=0;i<60;i++)
{if(i%5==0) l=15;
else l=3;
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);
setlinestyle(0, 0, 1);
d(150,h,30);
setcolor(14);
d(170,m,6);
setcolor(5);
setlinestyle(0, 0, 3);
d(190,s,6);
while(!kbhit())
{while(t[0].ti_sec==s)
gettime(t);
delay(70);
delay(30);
setcolor(5);
setlinestyle(0, 0, 3);
d(190,s,6);
s=t[0].ti_sec;
d(190,s,6);
if (t[0].ti_min!=m)
{
setcolor(14);
setlinestyle(0, 0, 1);
d(170,m,6);
m=t[0].ti_min;
d(170,m,6);
}
if (t[0].ti_hour!=h)
{ setcolor(7);
setlinestyle(0, 0, 1);
d(150,h,30);
h=t[0].ti_hour;
d(150,h,30);
delay(240);
delay(140);
delay(240);
}
}
getch();
closegraph();
}
为什么这个程序开头没有定义#include<time.h> 可是还是可以运行 而且时间还是对的?
会的请解答一下 顺便留下QQ(因为还有一些小问题想请教) 重赏 展开
展开全部
在DOS.H中有如下声明:
struct time {
unsigned char ti_min; /* Minutes */
unsigned char ti_hour; /* Hours */
unsigned char ti_hund; /* Hundredths of seconds */
unsigned char ti_sec; /* Seconds */
};
void _Cdecl gettime (struct time *timep);
void _Cdecl delay (unsigned milliseconds);
在你程序中,gettime(); delay(); 都是在DOS.H中,程序中并没有用到time.h中的函数.所以没有必要有#include<time.h>
struct time {
unsigned char ti_min; /* Minutes */
unsigned char ti_hour; /* Hours */
unsigned char ti_hund; /* Hundredths of seconds */
unsigned char ti_sec; /* Seconds */
};
void _Cdecl gettime (struct time *timep);
void _Cdecl delay (unsigned milliseconds);
在你程序中,gettime(); delay(); 都是在DOS.H中,程序中并没有用到time.h中的函数.所以没有必要有#include<time.h>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询