C语言编辑一个程序。要求在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间

 我来答
jdkman
2011-04-01 · TA获得超过4610个赞
知道大有可为答主
回答量:1700
采纳率:0%
帮助的人:1868万
展开全部
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
#define PI 3.1415926

int main()
{
int X=300,Y=250,R=100,RR=130;
int X_HOUR,X_MINUTE,X_SECOND;
int Y_HOUR,Y_MINUTE,Y_SECOND;
int X_DRAW=0,Y_DRAW=0,R_DRAW=120;
int NUM=0;
struct time T;
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"D:\\Program Files\\TC\\BGI");
setlinestyle(0,1,3);
setcolor(LIGHTGRAY);
circle(X,Y,RR);
setlinestyle(0,1,1);
for(NUM=0;NUM<12;NUM++)
{
setcolor(11);
X_DRAW=X+R_DRAW*cos(NUM*2*PI/12);
Y_DRAW=Y+R_DRAW*sin(NUM*2*PI/12);
circle(X_DRAW,Y_DRAW,5);
setfillstyle(1,11);
if((NUM%3)==0)floodfill(X_DRAW,Y_DRAW,11);

}
while(!kbhit())
{
gettime(&T);
X_HOUR=X+(R/2)*cos(T.ti_hour*2*PI/12+T.ti_min*2*PI/(60*12)-PI/2);
X_MINUTE=X+R*cos(T.ti_min*2*PI/60-PI/2)*3/4;
X_SECOND=X+R*cos(T.ti_sec*2*PI/60-PI/2);
Y_HOUR=X+(R/2)*sin(T.ti_hour*2*PI/12+T.ti_min*2*PI/(60*12)-PI/2);
Y_MINUTE=Y+R*sin(T.ti_min*2*PI/60-PI/2)*3/4;
Y_SECOND=Y+R*sin(T.ti_sec*2*PI/60-PI/2);
setcolor(YELLOW);
line(X,Y,X_HOUR,Y_HOUR);
setcolor(RED);
line(X,Y,X_MINUTE,Y_MINUTE);
setcolor(BLUE);
line(X,Y,X_SECOND,Y_SECOND);
delay(10000);
setcolor(BLACK);
line(X,Y,X_HOUR,Y_HOUR);
line(X,Y,X_MINUTE,Y_MINUTE);
line(X,Y,X_SECOND,Y_SECOND);
}
getch();
closegraph();
return 0;
}

在使用时请把initgraph中的第三个参数改成你的tc下BGI文件夹所在的目录,注意:目录中不要有空格,\要用\\代替。
百度网友12c46cc9b
2011-04-01 · TA获得超过784个赞
知道小有建树答主
回答量:506
采纳率:0%
帮助的人:277万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式