⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 时钟程序.txt

📁 这是一个在DOS环境下的时钟程序
💻 TXT
字号:
/* 时钟程序 过五秒自动更换面板,钉钮,及是否有钟摆*/
#include "stdio.h"
#include "graphics.h"
#include "time.h"
#include "dos.h"
#include "math.h"
#include "stdlib.h"
#define PI 3.141592653

void main()
  {
     int gd=DETECT,gm,i,j,k;
     float  dsec,dmin,dhour;
     struct time cur;
     time_t t,tim;
     void drsk0();
     void drsk1();
     void drsk2();
     void skin0();
     void skin1();
     void skin2();
     void skin3();
     void drpendu0();
     void drpendu1();
     void drpot(float a,int l,int color);
     void (*drs[3])(),(*skn[4])(),(*drpendu[2])();
        drs[0]=drsk0,drs[1]=drsk1,drs[2]=drsk2;
        skn[0]=skin0,skn[1]=skin1,skn[2]=skin2,skn[3]=skin3;
        drpendu[0]=drpendu0,drpendu[1]=drpendu1;
        /*registerbgidriver(EGAVGA_driver); */
        initgraph(&gd,&gm,"");
        setbkcolor(0);
       
        for(i=0;i<3;i++)  
           {  
                 cleardevice();
                 drs[i]();
              for(j=0;j<4;j++)
                 {  
                     skn[j]();
                     
                     for(k=0,tim=time(NULL); k<2; )
                        { 
                          
                          
                           t=time(NULL); 
                               gettime(&cur); 
                               dsec=cur.ti_sec;
                               dmin=cur.ti_min+dsec/60;
                               dhour=cur.ti_hour+dmin/60;
                               drpot(dsec*6,111,rand()%14+1);
                               drpot(dmin*6,88,rand()%14+1);
                               drpot(dhour*30,65,rand()%14+1);
                               while(difftime(time(NULL),t)<1) drpendu[k]();
                               drpot(dsec*6,111,0);
                               drpot(dmin*6,88,0);
                               drpot(dhour*30,65,0);
                             if (time(NULL)-tim>5){k++;  tim=time(NULL);} 
                        }
                 }       
           }
         closegraph();
         getch();      
  }


void drsk0()   /*钉钮1*/
  {
       int a,i,x,y,x1,y1,t;
       float b;
         setcolor(13);
         setfillstyle(0,14);
         for(a=-300;a<3300;a+=300)
             {  b=a/1800.0*PI;
              x1=320+121*cos(b);
                   y1=140+121*sin(b);
                   circle(x1,y1,2);
                   circle(x1,y1,1);
             }
             
  }  

void drsk1()/*钉钮2*/
  {
       int a,i,x,y,x1,y1;
       float b;
           setcolor(13);
         for(a=-300;a<3300;a+=300)
             {
                   b=a/1800.0*PI;
                   for(i=121;i>=114;i--)
                      {
                          x1=320+i*cos(b);
                          y1=140+i*sin(b);
                          circle(x1,y1,1);
                      }
             }
             
       
  } 

void drsk2()/*钉钮3*/
  {
       int a,i,x1,y1,t;
       float b;
           setcolor(6);
         for(a=-300;a<3300;a+=300)
             {  b=a/1800.0*PI;
                   t=a%900?3:6;
                   for(i=-t;i<=t;i++)
                      {
                          x1=320+120*cos(b)+i;
                          y1=140+120*sin(b);
                          circle(x1,y1,1);
                      }
             }
             
       
  }  
  
void skin0(){}  

void skin1()   /*方形面版*/
   {
          setcolor(10);
          setlinestyle(0,1,3);
          line(205,10,435,10);
          line(205,270,435,270);
          line(190,25,190,255);
          line(450,25,450,255);
          arc(205,25,90,180,15);
          setlinestyle(0,1,3);
          arc(435,25,0,90,15);
        setlinestyle(0,1,3);         
          arc(435,255,270,360,15);
          setlinestyle(0,1,3);
        arc(205,255,180,270,15); 
        return ;
  }

void skin2()/*圆形面板*/
  {
       int a,x,y,color[]={1,4,3,6,2,13};
          float b; 
       for(a=-300;a<3300;a++)
             {
                   b=a/1800.0*PI-PI/2;
                   x=320+126*cos(b);
                   y=140+126*sin(b);
                   setcolor(color[(a+300)/600]);
                   circle(x,y,2);
             }    
             
  }   

void skin3() /*方形加圆形面板*/
  {
      skin1();
      
      skin2();
      
  }

void drpot(float a,int l,int color)/*画指针*/
  {
       int x,y;
          setlinestyle(0,1,3);
          setcolor(color);
          x=320+cos(a/180*PI-PI/2)*l;
          y=140+sin(a/180*PI-PI/2)*l;
          line(320,140,x,y);
          
  }

void drpendu0(){}

void drpendu1()/*钟摆1*/
  {
       static float w=2*PI,A=15.0/180*PI;
       static double t;
       float b;
     int x1,y1,x2,y2,m,n,x3,y3,x4,y4;
        setlinestyle(0,1,1);
        b=A*cos(w*t)+PI/2;
        x1=320-133*tan(b-PI/2);
        y1=273;
        x2=320+230*cos(b);
        y2=140+230*sin(b);
        x3=320+270*cos(b);
        y3=140+270*sin(b);
        x4=320+290*cos(b);
        y4=140+290*sin(b);
        m=320+250*cos(b);
        n=140+250*sin(b);
        setcolor(1);
        line(x1,y1,x2,y2);
        circle(m,n,20);
        line(x3,y3,x4,y4);
        delay(2000);
        setcolor(0); 
        line(x1,y1,x2,y2);
        circle(m,n,20); 
        line(x3,y3,x4,y4);
        t+=4e-3;
        
  } /*虎成*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -