Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo hacer un reloj en lenguaje C?

¿Cómo hacer un reloj en lenguaje C?

También encontré esto en otro lugar.

Muy bien

#Contiene "stdio.h"

#Contiene "graphics.h"

#Contiene "math.h" " ”

#Contiene “time.h”

#Contiene “dos.h”

#Definición 200 rand

#Definición pi 3.1415926

#Definición X(a, b, c) c), reemplácelo con b * c * pi/180-pi/2) 240; * PI/180-PI/2) 240 Cuando encuentre Y (a, B, C); reemplace * /

#Define d(a, b, c) X(a, b, c); Y(a, b, c); line(300, 240, x, y) /* macro Una definición no es una descripción ni una declaración, por lo que no es necesario agregar símbolos al final de la línea. Si agrega un punto y coma, incluso el punto y coma se reemplazará */

/*

Entonces, cuando se ejecuta d(200, 12, 6), equivale a escribir tres oraciones .

Primero encuentre X(a, b, c), es decir, X(200, 12, 6), y luego calcule.

En otras palabras, el radio calculado es 200, el grado es 12 y el tamaño del paso es 6 (en realidad 72 grados, pero aquí se resta pi/2, es decir, 72-45=27 grados ).

La abscisa del punto es también el valor de x.

Luego ejecuta Y(a, b, c), es decir, Y(200, 12, 6). En este momento, calcule y = 200 * sin(12 * 6 * pi/180-pi/2) 240.

En otras palabras, el radio calculado es 200, el grado es 12 y el tamaño del paso es 6 (en realidad 72 grados, pero aquí se resta pi/2, es decir, 72-45=27 grados ).

La ordenada del punto también es el valor de y

La última es la línea (300, 240, x, y), lo que significa dibujar una línea para dejar salir el puntero. .

Entonces, el primer parámetro aquí es establecer la longitud del radio, el segundo parámetro es establecer el grado y el tercer parámetro es establecer el tamaño del paso (grado).

*/

main()

{

int x=300, y=240, bx, por, bx1, por1 , bx2, by2, bx3, by3, jd, I, j, k, h1, m1, hc=0, l, ax, ay, n, p = 0;

char b[]={ 'Amo ', ' ', ' ', ' ', ' ', ' ', ' ' Y ', ' o ', ' u ' };

int driver=VGA, mode = VGAHI/*Definir controlador de gráficos*/

int h, m, s ; /*Definir hora, hora, minuto, segundo*/puntero*/

Estructura tiempo t[1];/*Definir un array con una estructura llamada tiempo, con un solo miembro t[0]* /

init graph(& driver amp mode, ""; /*Configura el controlador de gráficos*/

setbkcolor(0); /*Configura el color de fondo en negro*/

for(n = 0; n lt=27; n )

printf(" \ n ");

for(n = 0; n lt =29) ; n )

printf(" ");

set color(14) /*Establece el color de primer plano en amarillo*/

Círculo ( x, y, r); /*Dibuja un círculo grande con un radio de 300, 240 y un radio de 200*/

set color(12); /*Establece el color de primer plano en magenta*/

Circle(x,y,190);/*Pequeño círculo dentro*/

/*Establecer estilo y color de relleno*/

setfillstyle(SOLID_FILL, 14) ;/ *Relleno sólido*/

floodfill(x, y, 12); /*El color de relleno del dial relleno es magenta (12) */

setfillstyle(SOLID_FILL, 13); /*Relleno sólido*/

Relleno difuso (1, 1, 14);

establecer color (2);

/*Dibujar un centro de mesa*/

circle(x, y, 2); /*Un pequeño círculo en el centro de la mesa*/

circle(x); , y, 5);/ *Círculo grande con centro*/

/*Ojo*/

Elipse (x-80, y-70, 0, 360, 23, 65 ); /*elipse exterior izquierda* /

Elipse (x 80, y-70, 0, 360, 23, 65); /*elipse exterior derecha*/

Elipse ( x-80, y-60, 0, 180, 23, 23); /*Elipse interior izquierda*/

setfillstyle(SOLID_FILL, 0); /*El color de relleno del color sólido es negro*/

Relleno difuso(x -80, y-60, 2); /*El color de relleno es verde*/

Elipse (x 80, y-60, 0, 180, 23, 23); /*Elipse interior derecha*/

setfillstyle(SOLID_FILL, 0); /*El color de relleno sólido es negro*/

Relleno de inundación (x 80, y-70, 2); /*El color de relleno es verde*/ /

/* outtextxy(225,380, "incrustado 06241 quince");

outtextxy(245,400, "Hecho en China"); */

/*Seis Barbas*/

establecer color(

5); /*rosa*/

Línea (x-120, y 70, x-250, y 90);

Línea (x-120, y 90, x- 250, y 110);

Línea (x-120, y 110, x-250, y 130);

Línea (x 120, y 70, x 250, y 90 );

Línea (x 120, y 90, x 250, y 110);

Línea (x 120, y 110, x 250, y 130);

/*Dibujar orejas*/

Arco (150, 80, 0, 360, 60); /*Dibujar arco (aquí se puede usar un círculo)*/

setfillstyle(SOLID_FILL, 14); /*El color de relleno es amarillo*/

Relleno (150, 80, 5);

Arco (450, 80, 0, 360, 60);

setfillstyle(SOLID_FILL, 14);

Relleno de inundación (450, 80, 5);

establecer color (14); trazas de arco interno*/

Arco (150, 80, 0, 360, 60);

Arco (450, 80, 0, 360,

p); >

/*Dibujar una boca*/

set color(0);

Elipse (x, y 60, 160, 340, 23, 23); una boca con un arco*/

/*Dibuja un contorno*/

Círculo (x 120, y 10, 23 /*El color de primer plano es un círculo con 0 lados); */ /

setfillstyle(SOLID_FILL, 12); /*El color de relleno sólido es 12 magenta claro*/

floodfill(x 120, y 10, 0); borde Los colores del centro y el borde blanco 0 rellenan la forma cerrada */

set color(14 /*Establece el color de primer plano en amarillo para eliminar rastros de arcos internos*/

Circle (x 120, y 10, 23); /*Dibuja otro círculo pequeño*/

set color(0); /*El color de primer plano es un círculo con lado 0*/

Círculo (x-120, y 10, 23); /*Lo mismo que arriba*/

setfillstyle(SOLID_FILL, 12);

Sobrellenado (x-120, y 10, 0 );

establecer color(14);

Círculo (x-120, y 10, 23);

Elipse (x, y 60); , 0, 180, 23, 23);

for(I = 0; I lt60; i )

{ si (I 5 = = 0)l = 15

else l = 5;

ax = 200 * cos(I * 6 * pi/180) 300;

ay = 200 * sin(I * 6 * pi/180 ) 240;

bx =(200-l)* porque(I * 6 * pi/180) 300

por =(200-l)* sin( I * 6 * pi/180) 240;

line(ax, ay, bx, por

}

setwritemode(1); Esta oración Invencible*/

gettime(t);/*El tiempo del sistema para obtener la matriz T en realidad se da a t[0]*/

h=t[0] .

ti _ hora/*El valor de la manecilla de hora se da como h*/

m=t[0]. ti _ min/*valor minuto a m*/

s=t[0]. ti _ sec

/* Valor de segunda mano de s*/

set color(7 /*Establece el color de primer plano en 7 gris claro*/

<); p>/ *El primer parámetro es establecer la longitud del radio, el segundo parámetro es establecer el grado inicial y el tercer parámetro es establecer el tamaño del paso (grados)*/

d(150, h, 30);/ * Tome 150 como radio, H como grado inicial, la longitud del paso es 30 grados, la manecilla de hora siempre es * * * Primero haga un círculo y luego vaya a 12 */

set color(14); /*Establece el color del minutero 1 azul*/

d(170, m, 6) /*Con radio 170, m como grado inicial, longitud de paso 6); grados, el minutero se mueve 60 veces*/

set color(4);/*Establece el color del segundero 4 rojo*/

d(190, s, 6);/* Utilice un radio de 190, s como grado inicial y la longitud del paso es de 6 grados, la manecilla de segundos se mueve 60 veces en una semana*/

Y (!Khit ())/*Se realiza un bucle cuando no se escribe el teclado*/

{

Mientras(t[ 0]). ti_sec==s) /*Juzgue si la hora actual del sistema es igual a la segunda hora recién obtenida, debe ser igual, la hora del sistema no se actualiza*/

gettime(t);

set color(4);

d(190, s, 6); /*Así que actualiza la hora del sistema*/

s=t[0]. ti _ sec

setfillstyle(SOLID_FILL, 13); /*Relleno sólido*/

Desbordamiento (1, 380, 14);

If (p lt); =15)

{ setbkcolor(HC); printf("c ", b[p]);}

Otros

setbkcolor(0); /p>

p;

set color(4);/*Establece el color del segundero en 2 verde*/

d(190, s, 6) ;

if (t[0].ti_min!=m) /*Juzga si el tiempo actual del sistema (minutos) es igual a los puntos recién obtenidos*/

{

establecer color(14);

d(170, m, 6);

m=t[0]. ti _ min

d(170, m, 6);

}

if (t[0].ti_hour!=h)

{

establecer color(7);

d(150, h, 30);

h=t[0].

ti _ hora

d(150, h, 30);

}

establecer color(hc); ==12)

HC = 0;

Elipse (300, 300, 160, 340, 23, 23);

/*ojos*/

Elipse (220, 170, 0, 360, 23, 65);

Elipse (380, 170, 0, 360, 23, 65); Elipse (220, 180, 0, 180, 23, 23);

Elipse (380, 180, 0, 180, 23, 23); 20, 250, 59);

Arco (450, 80, -70, 165, 59);

}

getch(); >

p>

}