domingo, 21 de abril de 2013

C++, colores, gotoxy y Sleep

BORLAND C++;

PROGRAMA 11: Colores, gotoxy y sleep


Para dar mejor formato y presentacion al programa existe la posibilidad y la herramienta para dar color al fondo y al texto, ¿como funciona esta herramienta? en el codigo de C++ tenemos la opción:
  1. textcolor(YELLOW); Este solo funciona para dar color a la letra y solo cuando el texto sea mostrado por cprintf("texto por colorear"); 
  2. textbackground(GREEN); Este pinta el fondo de un color en especifico
  3. system ("color 05");  Este funciona para dar color a la letra y al fondo a todo el programa y puede funcionar para el   cout<<"se pintaran todos del mismo color cuando utilizen el cout";     y para el  cin>>var; 

La siguiente herramienta es el gotoxy el cual consiste en la localizacion del texto dentro del programa ahorrando el uso de la sangria, y poder colocarlo en cualquier lugar de la ventana. bajo la colocación del X,Y como si fuese un plano cartesiano.

El otro punto es poner temporizador mientras se ejecuta el programa y se hace mediante la herramienta sleep(1); es la cual procesara la transicion del programa. el numero (1); representalos milisegundos del temporizador asi que depende cuanto tiempo se desee


Ejemplo:
El siguiente ejercicio consiste en hacer un menu para ver la tablas de verdad utilizando el SWITCH-CASE, pedirle al usuario seleccionar una para mostrarla (mostrar la tabla de verdad y dibujo grafico), utilizar gotoxy para  centrar la informacion en la ventana y ajustar el color de texto y fondo utlizando las tres herramientas para colorear y por ultimo utilizar el sleep.

#include <dos.h>

#include <conio.h>

#include <iostream.h>

#include <stdio.h>

#include <windows>


/*ALICIA CHAVEZ ROMERO

2do CUATRIMESTRE "C"

MECATRONICA

COLORES-SLEEP

*/

int log;

char resp;

void main()

{
d
{
clrscr();
system ("color 05");
gotoxy(25,5);
textcolor(2);
cprintf("%%%%%%%%%U T V M%%%%%%%");
gotoxy(15,6);
textcolor(WHITE);
cprintf("menu de CI");
gotoxy(15,8);
textcolor(7);
cprintf("1.- AND");
gotoxy(15,9);
textcolor(2);
cprintf("2.- OR");
gotoxy(15,10);
textcolor(3);
cprintf("3.- NOT");
gotoxy(15,11);
textcolor(4);
cprintf("4.- XOR");
gotoxy(15,12);
textcolor(5);
cprintf("5.- NAND");
gotoxy(15,13);
textcolor(6);
cprintf("6.- SALIR");
gotoxy(15,14);
textcolor(8);
cprintf("SELECCIONA LA OPCION E INGRESALA....");
cin>>log;
switch(log)
{
case 1:
sleep(1);
gotoxy(15,16);
sleep(1);
cout<<".";
sleep(1);
gotoxy(15,17);
sleep(1);
cout<<"...";
sleep(1);
gotoxy(15,17);
sleep(1);
cout<<".................ESPERE.....";
sleep(2);
clrscr();
textcolor(WHITE);
cout<<"HA SELECCIONADO";
 gotoxy(18,4);
 textcolor(7);
 cprintf(" A N D ");
 gotoxy(15,5);
 textcolor(WHITE);
 cprintf(" A    B  | C");
 gotoxy(15,6);
 textcolor(WHITE);
 cprintf(" 0    0  | 0");
 gotoxy(15,7);
 textcolor(WHITE);
 cprintf(" 0    1  | 0");
 gotoxy(15,8);
 textcolor(WHITE);
cprintf(" 1    0  | 0");
 gotoxy(15,9);
 textcolor(WHITE);
 cprintf(" 1    1  | 1");
 gotoxy(40,5);
textcolor(WHITE);

cout<<"SIMBOLO";

gotoxy(40,6);

 textcolor(WHITE);

 cprintf("       _____  ");

 gotoxy(40,7);

 textcolor(WHITE);

 cprintf(" a----|  |      ");

 gotoxy(40,8);

 textcolor(WHITE);

 cprintf("      |  &  |---s");

 gotoxy(40,9);

 textcolor(WHITE);

 cprintf(" b----|_____|   ");




break;

case 2:

sleep(1);

gotoxy(15,16);

sleep(1);

cout<<".";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<"...";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<".................ESPERE.....";

sleep(2);


 clrscr();

 textcolor(WHITE);

cout<<"HA SELECCIONADO";

 gotoxy(19,4);

 textcolor(2);

 cprintf(" OR ");

 gotoxy(15,5);

 textcolor(WHITE);

 cprintf(" A    B  | C");

 gotoxy(15,6);

 textcolor(WHITE);

 cprintf(" 0    0  | 0");

 gotoxy(15,7);

 textcolor(WHITE);

 cprintf(" 0    1  | 1");

 gotoxy(15,8);

 textcolor(WHITE);

 cprintf(" 1    0  | 1");

 gotoxy(15,9);

 textcolor(WHITE);

 cprintf(" 1    1  | 1");

 gotoxy(40,5);

textcolor(WHITE);

cout<<"SIMBOLO";

gotoxy(40,6);

 textcolor(WHITE);

 cprintf("       ________       ");

 gotoxy(40,7);

 textcolor(WHITE);

 cprintf("      |        |      ");

 gotoxy(40,8);

 textcolor(WHITE);

 cprintf(" a----|  |      ");

 gotoxy(40,9);

 textcolor(WHITE);

 cprintf("      |  >= 1  |---s  ");

 gotoxy(40,10);

 textcolor(WHITE);

 cprintf(" b----|  |      ");

 gotoxy(40,11);

 textcolor(WHITE);

 cprintf("      |________|      ");




break;

case 3:

sleep(1);

gotoxy(15,16);

sleep(1);

cout<<".";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<"...";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<".................ESPERE.....";

sleep(2);


  clrscr();

cout<<"HA SELECCIONADO";

 gotoxy(19,4);

 textcolor(3);

 cprintf(" NOT ");

 gotoxy(15,5);

  textcolor(WHITE);

 cprintf(" A  |  B");

 gotoxy(15,6);

  textcolor(WHITE);

 cprintf(" 0  |  1");

 gotoxy(15,7);

  textcolor(WHITE);

 cprintf(" 1  |  0");

 gotoxy(40,5);

textcolor(WHITE);

cout<<"SIMBOLO";

  gotoxy(40,6);

 textcolor(WHITE);

 cprintf("      _____");

  gotoxy(40,7);

 textcolor(WHITE);

 cprintf("     |     | ");

  gotoxy(40,8);

 textcolor(WHITE);

 cprintf("a ---|  1  |O-- s");

  gotoxy(40,9);

 textcolor(WHITE);

 cprintf("     |_____| ");

break;


case 4:

sleep(1);

gotoxy(15,16);

sleep(1);

cout<<".";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<"...";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<"......";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<".................ESPERE.....";

sleep(2);


  clrscr();

  textcolor(WHITE);

cout<<"HA SELECCIONADO";

 gotoxy(19,4);

 textcolor(3);

 cprintf(" XOR ");

 gotoxy(15,5);

 textcolor(WHITE);

 cprintf(" A    B  | C");

 gotoxy(15,6);

 textcolor(WHITE);

 cprintf(" 0    0  | 0");

 gotoxy(15,7);

 textcolor(WHITE);

 cprintf(" 0    1  | 1");

 gotoxy(15,8);

 textcolor(WHITE);

 cprintf(" 1    0  | 1");

 gotoxy(15,9);

 textcolor(WHITE);

 cprintf(" 1    1  | 0");

 gotoxy(40,5);

textcolor(WHITE);

cout<<"SIMBOLO";

  gotoxy(40,6);

 textcolor(WHITE);

 cprintf("       ________       ");

 gotoxy(40,7);

 textcolor(WHITE);

 cprintf("      |        |      ");

 gotoxy(40,8);

 textcolor(WHITE);

 cprintf(" a----|  |      ");

 gotoxy(40,9);

 textcolor(WHITE);

 cprintf("      |  = 1   |---s  ");

 gotoxy(40,10);

 textcolor(WHITE);

 cprintf(" b----|  |      ");

 gotoxy(40,11);

 textcolor(WHITE);

 cprintf("      |________|      ");


break;

case 5:

sleep(1);

gotoxy(15,16);

sleep(1);

cout<<".";

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<"...";

sleep(1);

gotoxy(15,17);

sleep(1);

gotoxy(15,17);

sleep(1);

cout<<".................ESPERE.....";

sleep(2);


  clrscr();

  textcolor(WHITE);

cout<<"HA SELECCIONADO";

 gotoxy(19,4);

 textcolor(3);

 cprintf("NAND");

 gotoxy(15,5);

 textcolor(WHITE);

 cprintf(" A    B  | C");

 gotoxy(15,6);

 textcolor(WHITE);

 cprintf(" 0    0  | 1");

 gotoxy(15,7);

 textcolor(WHITE);

 cprintf(" 0    1  | 1");

 gotoxy(15,8);

 textcolor(WHITE);

 cprintf(" 1    0  | 1");

 gotoxy(15,9);

 textcolor(WHITE);

 cprintf(" 1    1  | 0");

 gotoxy(40,5);

textcolor(WHITE);

cout<<"SIMBOLO";

gotoxy(40,6);

 textcolor(WHITE);

  cprintf("       _____  ");

gotoxy(40,7);

 textcolor(WHITE);

 cprintf(" a----|  |      ");

gotoxy(40,8);

 textcolor(WHITE);

 cprintf("      |  &  |O---s");

 gotoxy(40,9);

 textcolor(WHITE);

 cprintf(" b----|_____|   ");




break;

case 6:

 exit(0);

     break;

   clrscr();

     default:

      gotoxy(14,17);

     cout<<"OPCION INVALIDA"<<endl;

        }

 gotoxy(14,18);

 cout<<"DESEA REVISAR OTRA CI    <s=si><n=no>"<<endl;

 cin>>resp;

  if(resp=='s'|| resp=='S')

   {

  sleep(1);

gotoxy(15,20);

sleep(1);

cout<<".";

sleep(1);

gotoxy(15,21);

sleep(1);

cout<<"...";

sleep(1);

gotoxy(15,21);

sleep(1);

cout<<"............ESPERE UN MOMENTO GRACIAS.....";

sleep(2);

}

else

{

exit(0);

}

 }while(resp=='s' || resp=='S');


getche();

}


la primer etapa del programa es mostrar el menu y el texto ajustado al centro de la ventana (utilizacion del gotoxy)


se muestra que el color de texto es fiusha ajustado por medio del system("color .."), ademas aparece el primer sleep en forma de puntos y con la palabra Espere 

se borra pantalla y aparece lo que selecciono el usuario para ver y se pregunta si desea volver a seleccionar.

si el usuario escribio s, en este caso, se muestra la acción del segundo sleep realizando la misma accion, y se inicializa el programa.


4 comentarios:

  1. Por alguna razón el código al copiarlo se le mueven las llaves de su lugar lo que ocasiona errores de sintaxis por todos lados

    ResponderEliminar
  2. Si puedes compartenos tu código fuente a través de un enlace. O google drive. Gracias!

    ResponderEliminar
  3. ps la verdd no se en que systema estas por que el void en windows no lo toma xd

    ResponderEliminar