当前位置:编程学习 > C/C++ >>

C语言 时钟 编程 源代码 越繁复越好

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);                 /*重新画小圈*/

上一个:『NOIP』推荐本C语言的noip书籍
下一个:c语言中,那么多的符号都要记住吗?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,