C语言 时钟 编程 源代码 越繁复越好
C语言 时钟 越繁复越好,越花俏越好,越亮丽越好...附带编程的文字说明
追问:程序OK,但是Linker error。。。怎么办?
C语言 时钟 越繁复越好,越花俏越好,越亮丽越好...附带编程的文字说明
追问:程序OK,但是Linker error。。。怎么办?
答案:帮你找了一个!希望对你有帮助……(个人觉得在C语言中比较花哨了)#include "stdio.h"
#include "graphics.h"
#include "math.h"
#include "time.h"
#include "dos.h"
#define r 200
#define pi 3.1415926
#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300; /*遇到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; /*遇到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) /*宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换*/
/*
那么就是当执行d(200,12,6)时 相当于写了3句话
首先X(a,b,c) 也就是X(200,12,6) 这时计算x=200*cos(12*6*pi/180-pi/2)+300
也就是计算出了 以半径为200,度数为12 步长为6 (实际上就是72度 但是这里又减去了pi/2 也就是72-45=27度)
的那点的横坐标 也就是x的数值
然后执行Y(a,b,c)也就是Y(200,12,6)这时计算y=200*sin(12*6*pi/180-pi/2)+240
也就是计算出了 以半径为200,度数为12 步长为6 (实际上就是72度 但是这里又减去了pi/2 也就是72-45=27度)
的那点的纵坐标 也就是y的数值
最后是 line(300,240,x,y) 也就是 画线 这样指针就出来了
那么这里第一个参数是设置半径长度 第二个参数是设置度数 第三个参数是设置步长(度数)
*/
main()
{
int x=300,y=240,bx,by,bx1,by1,bx2,by2,bx3,by3,jd,i,j,k,h1,m1,hc=0,l,ax,ay,n,p=0;
char b[]={'I',' ',' ',' ',' ','T','e','l','l',' ',' ',' ',' ','Y','o','u'};
int driver=VGA,mode=VGAHI; /*定义图形驱动器*/
int h,m,s; /*定义时针hour 分针minute 秒针second*/
struct time t[1]; /*定义一个结构体名为time的数组,只有一个成员t[0]*/
registerbgidriver(EGAVGA_driver);
initgraph(&driver,&mode,""); /*设置图形驱动器*/
setbkcolor(0); /*设置背景色为黑色*/
for(n=0;n<=27;n++)printf("\n");
for(n=0;n<=29;n++)
printf(" ");
setcolor(14); /*设置前景色为黄色*/
circle(x,y,r); /*以300,240,半径为200画大圆*/
setcolor(12); /*设置前景色为洋红色*/
circle(x,y,190); /* 内部小圆*/
/*设置填充样式及颜色*/
setfillstyle(SOLID_FILL,14); /*实心填充*/
floodfill(x,y,12); /* 填充表盘 填充色为洋红(12) */
setfillstyle(SOLID_FILL,13); /*实心填充*/
floodfill(1,1,14);
setcolor(2); /*设置为绿色*/
/*画表心*/
circle(x,y,2); /*表心小圆*/
circle(x,y,5); /*表心大圆*/
/*眼睛*/
ellipse(x-80,y-70,0,360,23,65); /*左 外面的椭圆*/
ellipse(x+80,y-70,0,360,23,65); /*右 外面的椭圆*/
ellipse(x-80,y-60,0,180,23,23); /*左 里面的椭圆*/
setfillstyle(SOLID_FILL,0); /*实型填充 填充颜色为黑色*/
floodfill(x-80,y-60,2); /*填充颜色 绿色*/
ellipse(x+80,y-60,0,180,23,23); /*右 里面的椭圆*/
setfillstyle(SOLID_FILL,0); /*实型填充 填充颜色为黑色*/
floodfill(x+80,y-70,2); /*填充颜色 绿色*/
/* outtextxy(225,380,"EmBEdDed 06241 ShiwU");
outtextxy(245,400,"MaDE In HuaXiA"); *//*六个胡子*/
setcolor(5); /* 粉红色 */
line(x-120,y+70,x-250,y+90);
line(x-120,y+90,x-250,y+110);
line(x-120,y+110,x-250,y+130);
line(x+120,y+70,x+250,y+90);
line(x+120,y+90,x+250,y+110);
line(x+120,y+110,x+250,y+130);
/*画耳朵*/
arc(150,80,0,360,60); /*画圆弧(此处完全可以用圆来代替)*/
setfillstyle(SOLID_FILL,14); /*填充色黄色*/
floodfill(150,80,5);
arc(450,80,0,360,60);
setfillstyle(SOLID_FILL,14);
floodfill(450,80,5);
setcolor(14); /*擦除内部圆弧痕迹*/
arc(150,80,0,360,60);
arc(450,80,0,360,60);
/*画嘴*/
setcolor(0);
ellipse(x,y+60,160,340,23,23); /*用圆弧画嘴*/
/*画侧脸*/
circle(x+120,y+10,23); /*前景色为0 侧面的圆圈*/
setfillstyle( SOLID_FILL,12); /*实型填充 颜色为12 淡洋红*/
floodfill(x+120,y+10,0); /*以侧面的圆心为中心 边缘颜色为0 白色 进行对封闭图形的填充*/
setcolor(14); /*设置前景色为黄色 清除内部圆弧痕迹*/
circle(x+120,y+10,23); /*重新画小圈*/