时钟程序(C语言)怎么写

Python028

时钟程序(C语言)怎么写,第1张

具体代码如下:

#include<graphics.h>

#include<math.h>

#include<dos.h>

#define PI 3.1415926

//屏幕中心的坐标(640X480模式下)

#define mid_x 320

#define mid_y 240

int main()

{ int graphdriver=DETECT,graphmode

int end_x,end_y

struct time curtime

float th_hour,th_min,th_sec

initgraph(&graphdriver,&graphmode,"C:\\TC2")//初始化VGA屏幕模式

setbkcolor(BLACK)//使用黑色的背景色

while(!kbhit(0)) //若有键盘输入,则跳出,即是结束程序

{ setcolor(GREEN)//把画笔设为绿色

circle(mid_x,mid_y,180)//钟的外圆

circle(mid_x,mid_y,150)//钟的内圆

circle(mid_x,mid_y,1)//画出钟的圆心

gettime(&curtime)//取得系统当前时间

th_sec=(float)curtime.ti_sec*0.1047197551//把秒针的角度化为弧度,为以后绘制时方便,下同

th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0//分针的弧度

th_hour=(float)curtime.ti_hour*0.5235987755+th_min/12.0//时度的弧度,注意整时是12等分的,所时乘的是3.14/180*5

//计算出时针的尾的坐标(时针长70)

end_x=mid_x+70*sin(th_hour)

end_y=mid_y-70*cos(th_hour)

setcolor(RED)

line(mid_x,mid_y,end_x,end_y)//用红色线画出时针

//计算出分针坐标(分针长110)

end_x=mid_x+110*sin(th_min)

end_y=mid_y-110*cos(th_min)

setcolor(RED)

line(mid_x,mid_y,end_x,end_y)//用红色画出分针

end_x=mid_x+140*sin(th_sec)

end_y=mid_y-140*cos(th_sec)

setcolor(RED)

line(mid_x,mid_y,end_x,end_y)//同上,画出秒针,长为140

//画出钟盘上的刻度,刻度长20

line(140,240,160,240)//9点对应的大刻度

line(320,60,320,80)//12点对应的大刻度

line(500,240,480,240)//3点的刻度

line(320,420,320,400)//6点的刻度

line(410,395.7,400,378.4)//5点

line(475.7,330,458.4,320)//4点

line(475.7,150,458.4,160)//2点

line(410,84.3,400,101.6)//1点

line(230,84.3,240,101.6)//11点

line(164.3,150,181.6,160)//10点

line(164.3,330,181.6,320)//8点

line(230,395.7,240,378.4)//7点

sleep(BLUE)//这里应该是打错,停止一秒,应为sleep(1000)

cleardevice()//清除屏幕上的显示

}

closegraph()//关闭VGA屏幕,即返回文本方式

return 0

}

#include<graphics.h>/* 引入graphic.h */

#include<math.h> /* 引入math.h */

#include<dos.h> /* 引入dos.h */

#define pi 3.1415926 /*定义pi=3.14159*/

#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=0i<60i++) /*循环(算时间)*/

{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)/*C语言中得到时间的函数*/

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()

}

具体的。。就是套用用几个函数算时间。。

不要对这种很长的东西害怕,其实大部分都是在画这个钟~

加油哦~