问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能帮我用c语言编写桌面钟表啊!

发布网友 发布时间:2022-05-04 21:42

我来回答

1个回答

热心网友 时间:2022-06-26 04:11

#include<math.h>
#include<dos.h>
#include<graphics.h>
#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)/*每1秒更新一次时间*/
{
if(curpage==0)
curpage=1;
else
curpage=0;
curtime=newtime;
/*设置绘图页*/
setactivepage(curpage);
/*在图页上画表盘*/
DrawClock(&curtime);
/*设置绘图页为当前可见页*/
setvisualpage(curpage);
/*0分0秒高声报时*/
if(newtime.ti_min==0&&newtime.ti_sec==0)
HighBeep();
/* 59分55至秒时低声报时*/
else if(newtime.ti_min==59&&
newtime.ti_sec<=59)
LowBeep();/*其他时间只发出喀嗒声*/
else
Click();
}
}
closegraph();
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
14岁每天做多少蹲起和提踵不影响长高 每天晚上提踵来练弹跳会影响长高吗? 提踵和练肌肉会不会长不高? 提踵(抬脚跟)训练会影响长个吗 求高人指点 提踵 会不会影响身高的增长? 我现在15岁 提踵有利于长高吗 提踵影响长高吗 win10可不可以玩盗版的中2,帝战,拿战 沧州蓝海光伏设备有限公司怎么样? 为什麽女巫要骑扫帚不骑板凳。。。 求视频怎样增高的视频?? 怎样弄2个 国内有几所军医大学,都在哪几个城市?从地方招生一般分数线是多少?具体还有其他要求没?尽量详细些,为 C#做了一个桌面时钟程序,想让它置于桌面的最底层用作壁纸,求大神指点 奶瓶带吸管的好还是不带吸管的好 军医院校一共有哪几所?谢谢 哪里有长高视频?想学习下增高方法。 为什么同一个人会有显示2个- 问一问 做什么运动可以长高,提臀,瘦腿 可以躺着喝的吸管奶瓶 男生想增高,请问可以做哪些运动&#47;体操来达到呢?需要视频的(可以跟着学的),麻烦发到我邮箱nx6583@163.c 带吸管的奶瓶好还是不带吸管的奶瓶好 中国有几所军医大学,分别都在哪儿 增高体操视频下载? 新生儿宝宝奶瓶带重力球和吸管,用不用安装?还是说不用装吸管和重力球比较好? 请问谁知道襄阳的刘德玉医生,急啊 增高运动视频 带吸管的奶瓶和不带吸管的奶瓶的区别 电脑关机微信会自动退出吗?再开机是否还在,还需重新登录吗? 男16岁179求一整套增高运动视频教学或拉伸计划之类的 全国有多少所军医大学 增高广告视频? 一个连队有几个军医 怎样可以有两个? 有哪些军医学校? 在一台电脑上登陆微信以后忘了退了,如何才能强行退出那台电脑上的微信? 怎么拥有两个? 跪求各位会编程的大神,帮我做一个放在桌面的数字时钟吧! 办公电脑登录微信后,忘记退出了,手机退出重新登陆,电脑版的微信还在线吗 一个手机号怎么注册两个? 军医在军营中是属于什么职位的,并且如何才能做军医,有什么条件 请问中国的军医院校有哪些?拜托各位大神 军医和非军医有什么区别?军医实力或者说学习成绩更好一些吗? 当军医有什么条件吗? 全国有几个军医大学?情况怎样? 当军医有什么要求? 双卡手机怎么用两个? 怎么申请两个? 怎么申请两个? 怎样在同一部手机上用两个微信!怎么才能下载另一个!