Ayuda con menu en C

Iniciado por jona_vip, 14 Marzo 2015, 19:24 PM

0 Miembros y 1 Visitante están viendo este tema.

jona_vip

Hola chicos soy nuevo aqui & principiante en programacion.
En el menu, al elegir la primera opcion 1.- Establecer mes de captura (mes actual) me despliega otras opciones en las que tengo que elegir del 1 al 12 un mes, ya elegido el mes me saldra un mensaje que corrobora el mes elegido (ejemplo enero). Al regresar al menu quiero que Enero me aparezca asi: 1.- Establecer mes de captura (mes actual Enero).

#include <stdio.h>
#include <stdlib.h>                                        
                                                           

int main()
{
   void MenuPrincipal ();
int op, salir;
float ingresos, gastos, IVA, GananciaBruta, ISR, total, resultado, RetencionISR, RetencionIVA;
const char Enero , Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre;


resultado = 0.00;
ingresos = 0.00;
gastos = 0.00;
IVA = 1.16;
RetencionISR = 10; // 10% del ingreso
RetencionIVA = 10; // 10% del ingreso

do {


   printf("Menu Principal\n\n");
   printf("1.-Establecer mes de captura (mes actual es % )\n", &Enero,  Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre);
   printf("2.-Captura de Ingresos\n");
   printf("3.-Captura de gastos\n");
   printf("4.-Mostrar lista de ingresos anual\n");
   printf("5.-Mostrar lista de gastos anual\n");
   printf("6.-Calculo de impuestos anual\n");
   printf("7.-Salir\n\n");
   scanf("%i", &op);
   fflush(stdin);
   system("cls");

   switch (op){
       int op;
   case 1:

     printf("Establece el mes de Captura.\n\n");

       printf("1) Enero\n");
       printf("2) Febrero\n");
       printf("3) Marzo\n");
       printf("4) Abril\n");
       printf("5) Mayo\n");
       printf("6) Junio\n");
       printf("7) Julio\n");
       printf("8) Agosto\n");
       printf("9) Septiembre\n");
       printf("10) Octubre\n");
       printf("11) Noviembre\n");
       printf("12) Diciembre\n\n");

       printf("Elige el mes (1-12): \n");

       scanf("%i", &op);

       printf("Se ha establecido el mes de captura en % ", Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre);

       switch (op) {
   case 1:
       printf("Enero\n");
       break;
   case 2:
       printf("Febrero\n");
       break;
   case 3:
       printf("Marzo\n");
       break;
   case 4:
       printf("Abril\n");
       break;
   case 5:
       printf("Mayo\n");
       break;
   case 6:
       printf("Junio\n");
       break;
   case 7:
       printf("Julio\n");
       break;
   case 8:
       printf("Agosto\n");
       break;
   case 9:
       printf("Septiembre\n");
       break;
   case 10:
       printf("Octubre\n");
       break;
   case 11:
       printf("Noviembre\n");
       break;
   case 12:
       printf("Diciembre\n");
       break;
   default:
       printf("Mes seleccionado invalido\n");
       return 0;
       }

           system("pause");
           system("cls");
           break;
   case 2:
       printf("Calculo de impuestos anual\n\n");

       printf("Menu Principal\n\n");
   printf("1.-Establecer mes de captura %c\n", &Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre );
   printf("2.-Captura de Ingresos\n");
   printf("3.-Captura de gastos\n");
   printf("4.-Mostrar lista de ingresos anual\n");
   printf("5.-Mostrar lista de gastos anual\n");
   printf("6.-Calculo de impuestos anual\n");
   printf("7.-Salir\n");

   printf("\nOpcion: ");
   scanf("%i", &op);
   fflush(stdin);
   system("cls");

   printf("Captura de Ingresos\n");
   printf("Dame el ingreso del mes %c : \n");
   scanf("%f", &ingresos);
   fflush(stdin);
   system("pause");
   system("cls");
   break;

   case 3:
   printf("Calculo de impuestos anual\n\n");

       printf("Menu Principal\n\n");
   printf("1.-Establecer mes de captura %c\n", &Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre);
   printf("2.-Captura de Ingresos\n");
   printf("3.-Captura de gastos\n");
   printf("4.-Mostrar lista de ingresos anual\n");
   printf("5.-Mostrar lista de gastos anual\n");
   printf("6.-Calculo de impuestos anual\n");
   printf("7.-Salir\n");

   printf("\nOpcion: ");
   scanf("%i", &op);
   fflush(stdin);
   system("cls");

   printf("Captura de gastos\n");
   printf("Dame el ingreso del mes de %c : \n");
   scanf("%f", &gastos);
   fflush(stdin);
   system("pause");
   system("cls");
   break;

   case 4:
   printf("Mostrar lista de ingresos anuales.\n\n");
   printf("Enero = %f\n", ingresos);
   printf("Febrero = %f\n", ingresos);
   printf("Marzo = %f\n", ingresos);
   printf("Abril = %f\n", ingresos);
   printf("Mayo = %f\n", ingresos);
   printf("Junio = %f\n", ingresos);
   printf("Julio = %f\n", ingresos);
   printf("Agosto = %f\n", ingresos);
   printf("Septiembre = %f\n", ingresos);
   printf("Octubre = %f\n", ingresos);
   printf("Noviembre = %f\n", ingresos);
   printf("Diciembre = %f\n", ingresos);


   system("pause");
   system("cls");
   break;

   case 5:

   printf("Mostrar lista de gastos anuales.\n\n");
   printf("Enero = %f\n", gastos);
   printf("Febrero = %f\n", gastos);
   printf("Marzo = %f\n", gastos);
   printf("Abril = %f\n", gastos);
   printf("Mayo = %f\n", gastos);
   printf("Junio = %f\n", gastos);
   printf("Julio = %f\n", gastos);
   printf("Agosto = %f\n", gastos);
   printf("Septiembre = %f\n", gastos);
   printf("Octubre = %f\n", gastos);
   printf("Noviembre = %f\n", gastos);
   printf("Diciembre = %f\n", gastos);

   system("pause");
   system("cls");

   break;
   case 6:

       printf("Calculo de impuestos anuales\n\n");
       printf("***Tabla de Ingresos y Retenciones***\n\n");
       printf("Ingresos %f \n", ingresos);
       resultado = ingresos * IVA;
       printf("(+) IVA %i\n", IVA);
       printf("(=) Subtotal %i\n");
       printf("(-) Retencion ISR %i\n", RetencionISR);
       printf("(-) Retencion IVA %i\n", RetencionIVA);
       printf("(=) Total %i\n\n", resultado);
       printf("***Tabla de Ganancias***\n\n");
       printf("Ingresos %f\n");
       printf("(-) Gastos %f\n", gastos);
       printf("(=) Ganancia Bruta %f\n", GananciaBruta);
       printf("(-) ISR 20.00%% %f\n", ISR);
       printf("(=) Ganancia Neta %f\n");
       printf("***Tabla ISR***\n\n");
       printf("ISR 20.00%% %f\n");
       printf("(-) ISR retenido %i\n", RetencionISR);
       printf("(=) ISR a pagar %i\n");
       printf("***Tabla IVA***\n\n");
       printf("IVA %f\n", IVA);
       printf("(-) Gastos IVA %f\n", gastos);
       printf("(-) Retencion IVA %i\n", RetencionIVA);
       printf("(=) IVA a pagar\n");
       system("pause");

       system("cls");






   case 7:

    default:
       printf("Presione Enter Para Salir");

   }
}
while (op != 7);
   return 0;
}

rir3760

Lo primero que debes hacer, si no tienes uno, es conseguir un curso o libro de calidad. Recomendaciones sobre ellos las puedes consultar mediante el motor de búsqueda de los foros.

Segundo, evita el uso de fflush(stdin), las razones de ello en el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

Por ultimo para imprimir la cadena correspondiente al mes con este como un entero en el rango [1, 12] debes utilizar un array que almacene esas cadenas utilizando al mes como indice. Para explicarlo mejor un programa de ejemplo:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   char *mes[] = {
      NULL,
      "Enero",
      "Febrero",
      "Marzo",
      "Abril",
      "Mayo",
      "Junio",
      "Julio",
      "Agosto",
      "Septiembre",
      "Octubre",
      "Noviembre",
      "Diciembre"
   };
   int num;
   
   puts("Introduce el mes (1 .. 12):");
   if (scanf("%d", &num) == 1 && num >= 1 && num <= 12)
      printf("El mes no %d es %s\n", num, mes[num]);
   
   return EXIT_SUCCESS;
}


Sin embargo si apenas empiezas con C ese tipo de programas deberías dejarlos para mas adelante cuando veas el tema de arrays y punteros.

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