Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2340984
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:41

一个时钟程序。。

#include"conio.h"
#include"stdio.h"
#include"graphics.h"
#include"math.h"
#include"dos.h"
#define pi 3.1415926
#define  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
#define  d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)
void init()               /*划时钟边框函数*/
  {
        int i,l,x1,x2,y1,y2;
        setbkcolor(1);          /*函数SetBkColor来设置背景颜色*/
        circle(300,240,200);   /*划圆*/
        circle(300,240,205);
        circle(300,240,5);
        for(i=0;i<60;i++)                  /*划钟点上的短线*/
           {
 if(i%5==0)
 l=15;
 else
 l=5;
 x1=200*sin(i*6*pi/180)+300;
 y1=200*cos(i*6*pi/180)+240;
 x2=(200-l)*sin(i*6*pi/180)+300;
 y2=(200-l)*cos(i*6*pi/180)+240;
 line(x1,y1,x2,y2);              /*画直线*/
          }
  }
   main()
   {
 int x,y,i,k=1;
 int gdriver=9,gmode=2;    
 unsigned char h,m,s;
 int o,p,q;
 float n;
 struct time t[1];
 struct date d[1];
 initgraph(&gdriver,&gmode,"c:\\tc");
                initgraph(&gdriver,&gmode,"c:\\tc");
                 for(i=0;i<=6;i++)        
                     {
                            settextstyle(TRIPLEX_FONT,HORIZ_DIR,i);   /*控制输出字符的字体,

方向,大小*/
                cleardevice();
                 settextjustify(1,1);          /*在指定坐标上输出字符串*/
  outtextxy(300,80,"12") ;    
  outtextxy(300,390,"6");
  outtextxy(140,230,"9");
  outtextxy(460,230,"3");
  outtextxy(380,100,"1");
  outtextxy(220,100,"11");
  outtextxy(430,160,"2");
  outtextxy(430,310,"4");
  outtextxy(380,370,"5");
  outtextxy(220,370,"7");
  outtextxy(160,160,"10");
  outtextxy(160,310,"8");
     }
  init();
   setwritemode(1);         /*设置画线的输出模式*/
   if(k!=0)
     {
       getdate(d);               /*获得系统日期函数*/
         o=d[0].da_year;
         p=d[0].da_mon;
         q=d[0].da_day;
      gettime(t);                    /*获得系统时间函数*/
          h=t[0].ti_hour;
          m=t[0].ti_min;
          s=t[0].ti_sec;
 }
      setcolor(7);                 /*设置时针颜色*/
      n=(float)h+(float)m/60;
      d(150,n,30);              /*画出时针*/
      setcolor(14);                  /*设置分针颜色*/
 d(170,m,6);                 /*画出分针*/
 setcolor(4);                      /*设置秒针颜色*/
 d(190,s,6);                      /*画出秒针*/
 while(!kbhit())             /*控制程序按下任意键退出,kbhit 函数检查键盘*/
                                        /*当有按键行为时返回非零值*/

 {
     while(t[0].ti_sec==s)
     gettime(t);            

     gotoxy(44,18);              /*使光标移动到指定坐标*/
                    printf("\b\b\b\b\b\b\b\b\b");    /*退格,使表示时间的字符串不断变化*/
     sound(400);            /*按给定的频率打开PC扬声器*/
   delay(70);               /*中断程序的执行,时间为70毫秒*/
   sound(200);
   delay(30);
   nosound();             /*按给定的频率关闭PC扬声器*/
   setcolor(4);
   d(190,s,6);
   s=t[0].ti_sec;
   d(190,s,6);
   if(t[0].ti_min!=m)
   {
    setcolor(14);
    d(170,m,6);
    m=t[0].ti_min;
    d(170,m,6);
    }
  if(t[0].ti_hour!=h)
  {
     setcolor(7);
     d(150,h,30);
     h=t[0].ti_hour;
     d(150,h,30);
     sound(1000);
     delay(240);
     nosound();
     delay(140);
     sound(2000);
     delay(240);
     nosound();
     }
    if(s<10)                            /*用字符的形式输出时间*/
         {     if(m<10)
                   printf("%u:0%u:0%u",h,m,s);
               else    
                                  printf("%u:%u:0%u",h,m,s);
         }
    else
            {  if(m<10)
                     printf("%u:0%u:%u",h,m,s);
                else
      printf("%u:%u:%u",h,m,s);
             }
  gotoxy(34,19);             /*在指定坐标上输出日期*/
  printf("%d年%d月%d日",o,p,q);
  printf("\b\b\b\b\b\b\b\b\b");
      }
        getch();
        closegraph(); /*closegraph()关闭图形模式函数*/
 }


哪位能帮下啊,说说吧。。。

--------------------next---------------------

阅读(1142) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~