/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

como lograr efecto sin afectar opciones de menu en Dev c++

 
      Índice del Foro elrincondelc.com -> Gráficos
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
LupitaApolinar



Registrado: 09 Ago 2013
Mensajes: 1

MensajePublicado: 09/08/2013 6:14 pm
Título: como lograr efecto sin afectar opciones de menu en Dev c++

Hola necesito ayuda tengo que crear un programa que es un menú de opciones pero este menú tiene que tener efectos de gráficos por ejemplo que las letras parpadee y se muevan,poner figuras que giren ya lo intente pero no me funcionan los efectos ya que no se como hacerlos lo intente pero al meterle un efecto ya no me deja elegir opciones del menú ¿como puedo hacer para meter estos efectos sin afectar mi menú? por favor me urge que me ayuden

int main(int argc, char *argv[])
{
int opc,u1,u2,u3,u4,u5;

do
{
{

int l = 10;

while(++l)
{

printf("\t MENU LUPITA \n \t ");
printf("1.-Unidad I \n");
printf("2.-Unidad II\n");
printf("3.-Unidad III\n");
printf("4.-Unidad IV\n");
printf("5.-Unidad V\n");
printf("6.- SALIR\n");
printf("ELIJA UNA OPCION:\t");



Sleep(300);
system("cls");
system("cls");
system("color 5e");
Sleep(300);
system("cls");
system("cls");
}
return 0;
}
scanf("%d",&opc);

switch(opc)
{
case 1:
system("cls");
printf(" \t\t\t UNIDAD I \n");
printf("1.TIPO DE TRIANGULO\n");
printf("2.MULTIPLICACION DE UNA CIFRA(4 digitos)\n");
printf("3.IMPRIMIR DEL 1 AL 100\n");
printf("4.IMPRIMIR DEL 100 AL 1\n");
printf("5.CALCULAR PROMEDIO DE 5 CALIF\n");
printf("6.SUMATORIA DEL 1 AL 10\n");
//printf("7.TABLAS DE MULTIPLICAR **\n");
printf("8.FACTORIAL\n");
printf("9.SERIE FIBONASSI\n");
printf("10.TABLA DE MULTIPLICAR\n");
printf("11.SUMA DE LOS MULTIPLOS DE 3\n");
printf("12.NUMERO MAYOR\n");
printf("13.PAR O IMPAR\n");
printf("14.PIRAMIDE DE *\n");
printf("ELIJA UNA OPCION:\t");
scanf("%d",& u1);
system("cls");
if(u1==1)
{ triangulo(); }
if(u1==2)
{ mult_4cjuntas(); }
if(u1==3)
{ num1al100(); }
if(u1==4)
{ num100al1(); }
if(u1==5)
{ promedio(); }
if(u1==6)
{ sumatoria(); }
if(u1==7)
{ }
if(u1==Cool
{ factorial(); }
if(u1==9)
{ fibonassi(); }
if(u1==10)
{ mult(); }
if(u1==11)
{ sumatoria3(); }
if(u1==12)
{numeromayor(); }
if(u1==13)
{ parimpar(); }
if(u1==14)
{piramide(); }
break;
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7517
Ubicación: Mexico

MensajePublicado: 10/08/2013 6:31 am
Título:

Hola

Bienvenido a los foros. Por favor lee sus reglas.

El fragmento que pones tiene algunos problemas importantes, si son los únicos o no es algo que solo se puede saber revisando el código fuente completo. En la parte inicial tienes:
Código:
int main (int argc, char *argv[])
{
   int opc, u1, u2, u3, u4, u5;
   
   do {
      {
         int l = 10;
         
         while (++l){
            printf ("\t MENU LUPITA \n \t ");
            printf ("1.-Unidad I  \n");
            printf ("2.-Unidad II\n");
            printf ("3.-Unidad III\n");
            printf ("4.-Unidad IV\n");
            printf ("5.-Unidad V\n");
            printf ("6.- SALIR\n");
            printf ("ELIJA UNA OPCION:\t");
            Sleep (300);
            system ("cls");
            system ("cls");
            system ("color 5e");
            Sleep (300);
            system ("cls");
            system ("cls");
         }
         
         return 0;
      }
     
      scanf ("%d", &opc);

Los errores ahí son: es un bucle infinito (no hay forma de salir de el) y aun si terminara la siguiente sentencia es "return 0;" la cual causaría la terminación del programa.

Lo usual en un caso como este es ejecutar un bucle pidiendo la opción hasta que se indique una dentro del rango valido y a continuación se procesa mediante una sentencia de selección switch que llama a la función indicada. Por ejemplo:
Código:
#include <stdio.h>
#include <stdlib.h>

void altas(void);
void bajas(void);
void editar(void);

int main(void)
{
   int opcion;
   int ch;
   int ok;
   
   do {
      puts("1) Altas");
      puts("2) Bajas");
      puts("3) Editar");
      puts("4) Salir");
      do {
         ok = scanf("%d", &opcion) == 1 && opcion >= 1 && opcion <= 4;
         while ((ch = getchar()) != EOF && ch != '\n')
            ;
      }while (!ok);
     
      switch (opcion){
      case 1:
         altas();
         break;
      case 2:
         bajas();
         break;
      case 3:
         editar();
         break;
      case 4:
         puts("La opcion seleccionada es Salir");
      }
   }while (opcion != 4);
   
   return EXIT_SUCCESS;
}

void altas(void)
{
   puts("La opcion seleccionada es Altas");
}

void bajas(void)
{
   puts("La opcion seleccionada es Bajas");
}

void editar(void)
{
   puts("La opcion seleccionada es Editar");
}


En cuanto al "hermoseado" del programa la recomendación es la habitual: no lo hagas. Y si es obligatorio deberías implementarlo solo después de verificar que el programa funcione correctamente, la forma mas fácil es mediante una biblioteca de terceros como ncurses (hay algunos ejemplos del uso de ella en la base de datos de los foros).

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
Anastacius



Registrado: 26 Oct 2013
Mensajes: 41

MensajePublicado: 20/12/2013 1:03 pm
Título:

Estoy de acuerdo con rir... Lo mejor es comenzar con que todo funcione a la perfeccion y luego busca la libreria grafica que mejor se adapte a tus necesidades...
_________________
Programacion en C - HTML - Batch -
Aprendiendo : Java...
Volver arriba
      Índice del Foro elrincondelc.com -> Gráficos
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com