C语言模拟动态时钟程序

C语言模拟动态时钟程序,第1张

#include "stdio.h"

#include "dos.h"

//#include <windows.h>

#include <time.h>

#define S2M_M2H 60

struct N

{

int hour

int minute

int second

} mytime = {0,0,0}

int main()

{

time_t rt

struct tm *t

time ( &rt )

t = localtime ( &rt )

mytime.hour=t->tm_hour

mytime.minute = t->tm_min

mytime.second = t->tm_sec

//1楼答得不错,你不会自己合直来么,我帮你合起来了

//以后我白天不能上网,晚上来答一两个就玩去了,这题如果可行,就采纳1楼的,我没功劳

for(mytime.second++)

{

if(mytime.second==S2M_M2H)

{

mytime.minute++

mytime.second=0

if(mytime.minute==S2M_M2H)

{

mytime.hour++

mytime.minute=0

}

}

{

printf("\b\b\b\b\b\b\b\b%2d:%02d:%02d",mytime.hour,mytime.minute,mytime.second)

delay(1000)

}

}

return 0

}

/*开发环境:turbo c 2.0模拟时钟转动程序代码*/ #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=0i<60i++) /*划钟点上的短线*/ { if(i%5==0) l=15 else l=5 x1=200*sin(i*6*pi/180)+300 y1=200*cos(i*6*pi/180)+240 x2=(200-l)*sin(i*6*pi/180)+300 y2=(200-l)*cos(i*6*pi/180)+240 line(x1,y1,x2,y2) } } main() { int x,y,i,k=1 int gdriver=9,gmode=2 unsigned char h,m,s int o,p,q float n struct time t[1] struct date d[1] initgraph(&gdriver,&gmode,"c:\\tc") initgraph(&gdriver,&gmode,"c:\\tc") for(i=0i<=6i++) { settextstyle(TRIPLEX_FONT,HORIZ_DIR,i)/*控制输出字符的字体,方向,大小*/ cleardevice() settextjustify(1,1)/*在指定坐标上输出字符串*/ outtextxy(300,80,"12") outtextxy(300,390,"6") outtextxy(140,230,"9") outtextxy(460,230,"3") outtextxy(380,100,"1") outtextxy(220,100,"11") outtextxy(430,160,"2") outtextxy(430,310,"4") outtextxy(380,370,"5") outtextxy(220,370,"7") outtextxy(160,160,"10") outtextxy(160,310,"8") } init() setwritemode(1)/*设置画线的输出模式*/ if(k!=0) { getdate(d)/*获得系统日期函数*/ o=d[0].da_year p=d[0].da_mon q=d[0].da_day gettime(t)/*获得系统时间函数*/ h=t[0].ti_hour m=t[0].ti_min s=t[0].ti_sec } setcolor(7)/*设置时针颜色*/ n=(float)h+(float)m/60 d(150,n,30)/*画出时针*/ setcolor(14)/*设置分针颜色*/ d(170,m,6)/*画出分针*/ setcolor(4)/*设置秒针颜色*/ d(190,s,6)/*画出秒针*/ while(!kbhit()) /*控制程序按下任意键退出*/ { while(t[0].ti_sec==s) gettime(t) gotoxy(44,18)/*使光标移动到指定坐标*/ printf("\b\b\b\b\b\b\b\b\b")/*退格,使表示时间的字符串不断变化*/ sound(400)/*按给定的频率打开PC扬声器*/ delay(70)/*中断程序的执行,时间为70毫秒*/ sound(200) delay(30) nosound()/*按给定的频率关闭PC扬声器*/ 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() } if(s<10) /*用字符的形式输出时间*/ { if(m<10) printf("%u:0%u:0%u",h,m,s) else printf("%u:%u:0%u",h,m,s) } else { if(m<10) printf("%u:0%u:%u",h,m,s) else printf("%u:%u:%u",h,m,s) } gotoxy(34,19)/*在指定坐标上输出日期*/ printf("%d年%d月%d日",o,p,q) printf("\b\b\b\b\b\b\b\b\b") } getch() closegraph() }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11222108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存