c语言程序设计时钟,ƯÁÁµÄ²ÊɫʱÖÓ

СµÜÖ®×ö£¬Ï£Íû´ó¼ÒÖ¸½Ì¡£QQ£º51738793

#include

#include

#include

#define CENTERX 320

#define CENTERY 175

#define CLICK 100

#define CLICKDELAY 30

#define HEBEEP 10000

#define LOWBEEP 500

#define BEEPDELAY 200

int Mrk_1[8]={-5,-160,5,-160,5,-130,-5,-130, };

int Mrk_2[8]={-5,-160,5,-160,2,-130,-2-130, };

int HourHand[8]={-3,-100,3,-120,4, 10,-4,10};

int MiHand[8]={-3,-120,3,-120,4, 10,-4,10};

int SecHand[8]={-2,-150,2,-150,3, 10,-3,10};

void Click()

{

sound(CLICK);

delay(CLICKDELAY);

nosound();

}

void  HighBeep()

{

sound(HEBEEP);

delay(BEEPDELAY);

nosound;

}

void LowBeep()

{

sound(LOWBEEP);

}

void DrawPoly(int *data,int angle,int color)

{

int usedata[8];

float sinang,cosang;

int i;

sinang=sin((float)angle/180*3.14);

cosang=cos((float)angle/180*3.14);

for(i=0;i<8;i+=2)

{

usedata[i]  =CENTERX+ cosang*data[i]-sinang*data[i+1]+.5;

usedata[i+1]=CENTERY+sinang*data[i]+cosang*data[i+1]+.5;

}

setfillstyle(SOLID_FILL,color);

fillpoly(4,usedata);

}

void DrawClock(struct time *cutime)

{

int ang;

float hourrate,minrate,secrate;

setbkcolor(BLUE);

cleardevice();

setcolor(WHITE);

for(ang=0;ang<360;ang+=90)

{

DrawPoly(Mrk_1,ang,WHITE);

DrawPoly(Mrk_2,ang+30,WHITE);

DrawPoly(Mrk_2,ang+60,WHITE);

}

secrate=(float)cutime->ti_sec/60;

minrate=((float)cutime->ti_min+secrate)/60;

hourrate=(((float)cutime->ti_hour/12)+minrate)/12;

ang=hourrate*360;

DrawPoly(HourHand,ang,YELLOW);/*»­Ê±Õë*/

ang=minrate*360;

DrawPoly(MiHand,ang, GREEN);/*»­·ÖÕë*/

ang=secrate*360;

DrawPoly(SecHand,ang, RED);/*»­ÃëÕë*/

}

main()

{

int gdriver=EGA,

gmode=EGAHI;

int curpage;

struct time curtime ,newtime ;

initgraph(&gdriver,&gmode,"c:\\tc");

setbkcolor(BLUE);

cleardevice();

gettime(&curtime);

curpage=0;

DrawClock(&curtime);

while(1)

{

if(kbhit())

break;

gettime(&newtime);

if(newtime.ti_sec!=curtime.ti_sec)

{

if(curpage==0)

curpage=1;

else

curpage=0;

curtime=newtime;

setactivepage(curpage);

DrawClock(&curtime);

setvisualpage(curpage);

if(newtime.ti_min==0&&newtime.ti_sec==0)

HighBeep();

else if(newtime.ti_min==59&&

newtime.ti_sec<=59)

LowBeep();

else

Click();

}

}

closegraph();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值