Advertisement
2002C Complete Applications #16497

Bios Clock

It shows your computer's BIOS time. Make sure you don't run it on Windows 2000, becasue Windows 2000 does not fully support BGI in Dos.

AI

Resumen de IA: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Código fuente
original-source
#define PI 3.14152692
void second_hand(int midx,int midy,int d);
void min_hand(int midx,int midy,int d);
void hour_hand(int midx, int midy,int d);
int xc, yc, radius=150, charsize=2,d;  //radius of the circle
char buffer[80];
void digitxy(int d);
 int midx, midy;
void mainpage(void);
  struct time t;

int main(void)
{
  int gdriver = DETECT, gmode, errorcode,color;
  initgraph(&gdriver, &gmode, "c:\\bc5\\bgi");
  errorcode = graphresult();
  if (errorcode != grOk)
  {
  printf("Graphics error: %s\n", grapherrormsg(errorcode));
  printf("Press any key to halt:");
  getch();
  exit(1);
  }
  midx = getmaxx() / 2;
  midy = getmaxy() / 2;
  xc=midx;
  yc=midy;

  circle(midx, midy, radius);
  for(d=5;d<=60;d+=5)
   digitxy(d);
  do{

   gettime(&t);
   second_hand(midx,midy,t.ti_sec);
   min_hand(midx,midy,t.ti_min);
   hour_hand(midx,midy,t.ti_hour);
 	 delay(1000);
   floodfill(midx,midy,15);
  }while(!kbhit());
  getch();
  closegraph();
}
void digitxy(int d)
{
  int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*140+xc);
  int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*140+yc);

	sprintf(buffer,"%d",d/5);
  outtextxy(dx,dy,buffer);
  setcolor(WHITE);

}
void second_hand(int midx,int midy,int d)
{
  int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*140+xc);
  int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*140+yc);
  if(dy - yc >= 0)
  	dy+=charsize;
  else
  	dy-=charsize/2;
  if(dx -xc >=0)
  	dx+=charsize/2;
  else
setfillstyle(1,4);
 dx-=charsize;
 moveto(midx,midy);
 lineto(dx,dy);
 setcolor(YELLOW);
}
void min_hand(int midx,int midy,int d)
{
  int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*120+xc);
  int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*120+yc);
  if(dy - yc >= 0)
  	dy+=charsize;
  else
  	dy-=charsize/2;
  if(dx -xc >=0)
  	dx+=charsize/2;
  else
setfillstyle(1,4);
 dx-=charsize;
 moveto(midx,midy);
 lineto(dx,dy);
 setcolor(BLUE);
}
void hour_hand(int midx, int midy,int d)
{
int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*100+xc);
  int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*100+yc);
  if(dy - yc >= 0)
  	dy+=charsize;
  else
  	dy-=charsize/2;
  if(dx -xc >=0)
  	dx+=charsize/2;
  else
setfillstyle(1,4);
 dx-=charsize;
 moveto(midx,midy);
 lineto(dx,dy);
 setcolor(GREEN);
}
Comentarios originales (3)
Recuperado de Wayback Machine