elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda xd regresar al menu con do while dev c++!!1
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda xd regresar al menu con do while dev c++!!1  (Leído 7,055 veces)
el1000erroresxd

Desconectado Desconectado

Mensajes: 5


Ver Perfil
ayuda xd regresar al menu con do while dev c++!!1
« en: 4 Junio 2016, 04:47 am »

necesito ayuda con mi codigo :,v me compila y todo, la primera corrida sale sin errores sin embargo al calcular otro sueldo empiezan los errores
me salta la opcion de introducir el nombre del empleado y en capturar las horas trabajadas al imprimirlas me sale el codigo ascii es decir si pongo 10 horas me muestra una "i"  :-\

ayuda porfavor alguien me dice como arreglarlo?

menu-

primera corrida-

2 corrida (error) -

el codigo

Código:
/*
*PROGRAMACION ESTRUCTURADA
*AUTOR: MENDEZ ACOSTA SEBASTIAN
*GRUPO: 2ABM
*TURNO: MATUTINO
*PRACTICA: SALARIO SENCILLO
*NO. 19.1
FECHA: 03/06/2016
*/

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

 int main()
//INICIO
{
//DECLARACION DE VARIABLES
char nombre[35];
int hrsTrab;
float cuotaHr, sueldosencillo;
int fin = 0;
    int opcion;
    char regreso;

//LIMPIAR PANTALLA
//clrscr();
 
 
 
 while (fin == 0)
  {
  system("cls");
  system ("color F2" );
  printf("\t------------------------------------------------------\n");
  printf("\t|PROGRAMA PARA CALCULAR EL SUENDO DE UN EMPLEADO     |\n");
  printf("\t------------------------------------------------------\n");
       
  printf(" °°°°°°°°°°°°°°°°°°°°°");
  printf("\n °1) INICIAR PROGRAMA°\n");
  printf(" °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
  printf("\n °2) BLOQUE DE IDENTIFICACION           °\n");
  printf(" °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
  printf("\n °3) salir °\n");
  printf(" °°°°°°°°°°°");
 
   
  printf("\n °QUE ACCION DESEA REALIZAR?:°\n");
  printf(" °°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n\n");
  printf ("ingrese un numero del menu:");
  scanf("%i", &opcion);
 
 
   
  switch(opcion)
   {
    do{system("cls");
    case 1:
 
    system("cls");
    //TITULO
printf("\t\t***********************************************");
printf("\n\t\tPROGRAMA PARA CALCULAR EL SUELDO DE UN EMPLEADO");
printf("\n\t\t***********************************************");

//INTRODUCIR DATOS
printf("\n\n\nNOMBRE DEL EMPLEADO: ");
//LEER DATOS
scanf("%s",&nombre);
//INTRODUCIR DATOS
printf("\nNUMERO DE HORAS TRABAJADAS: ");
//LEER DATOS
scanf("%i",&hrsTrab);
//INTRODUCIR DATOS
printf("\nINTRODUSCA LA CUOTA POR HORA: ");
//LEER DATOS
scanf("%f",&cuotaHr);

//CALCULAR UTILIZANDO IF
    if(hrsTrab<=40)
    {
      sueldosencillo=hrsTrab*cuotaHr;         
      //SE MANDA A IMPRIMIR EL SUELDO SENCILLO
      printf("\n|--------------------------------------| ");
      printf("\n|         SUELDO SENCILLO              | ");
      printf("\n|--------------------------------------| ");
      printf("\n|EL NOMBRE DEL EMPLEADO ES: %s         |",nombre);
      printf("\n|--------------------------------------| ");
      printf("\n|LAS HORAS TRABAJADAS FUERON: %i       |",hrsTrab);
  printf("\n|--------------------------------------| ");
  printf("\n|EL SUELDO DEL EMPLEADO ES: %0.2f      |",sueldosencillo);
  printf("\n|--------------------------------------| ");
    }
 
   




//FIN
printf("\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
printf("\n°DESEA CALCULAR EL SUELDO DE OTRO EMPLEADO (SI/NO)?");
    scanf("%c",&regreso);
   
    getchar ();
   

     }while(regreso == 'si');
 //}while (regreso == 's' || regreso =='S' || regreso == 'SI' || regreso == 'Si' || regreso == 'si');
   
break;
       case 2:
    system("cls");
    system ("color F8" );
    printf("\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");                                 
printf("\n°      PROGRAMACION ESTRUCTURADA       °");
printf("\n°    AUTOR: MENDEZ ACOSTA SEBASTIAN    °");
printf("\n°             GRUPO: 2ABM              °");
printf("\n°           TURNO: MATUTINO            °");
printf("\n°     PRACTICA: SALARIO SENCILLO       °");
printf("\n°               NO. 19.2               °");
printf("\n°           FECHA: 03/06/2016          °");
printf("\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
    getchar ();
   
     fin = 1;
     break;
       case 3:
    system("cls");
    system ("color F8" );
    printf("\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
printf("\n°PRESIONAR CUALQUIER <TECLA> PARA CONTINUAR...°");
    printf("\n°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
    getchar ();
   
     fin = 1;
   
     break;
    default:
    system("cls");
    system ("color F2" );
    printf ("\t\t\t=================\n");
    printf ("\t\t\topcion no valida\n");
    printf ("\t\t\t=================\n\n\n\n");
    fin = 1;
     fin = 0;
     fin++;
   
     break;

getchar ();
return 0;
}
}
}


 :( :( :( :( :( :( :( :( :( :(


En línea

el1000erroresxd

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ayuda xd regresar al menu con do while dev c++!!1
« Respuesta #1 en: 4 Junio 2016, 05:33 am »

ayudaaaaaaaaaaaaaaaaaaaaaaaa D::::::


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: ayuda xd regresar al menu con do while dev c++!!1
« Respuesta #2 en: 4 Junio 2016, 08:48 am »

2 cosas:
1)no creas que todos los integrantes de la lista están aquí solo para ayudarte a tí (aprende a tener paciencia, y a soportar la frustración, quizá hasta no te contesten alguna vez)
2) ¿intentaste vaciando el buffer? después de cada scanf de los datos con la sentencia:
Código
  1. fflush(stdin);
  2.  
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ayuda xd regresar al menu con do while dev c++!!1
« Respuesta #3 en: 4 Junio 2016, 09:12 am »

La variable regreso es carácter  no Cadena nunca va a ser igual a "si", ademas no se pueden comparar cadenas con == se necesita strcmp o strncmp.

Código
  1. }while(regreso == 'si');

y sobre lo de fflush esta indefinido para stdin funciona en algunos compiladores y sistemas pero no en todos, por lo cual no hay que recomendarlo  tanto

Se tiene que leer la cadena con fgets.

Código
  1. char regreso[10];
  2. ///...
  3.  fgets(regreso,10,stdin);
  4. }while(strncmp(regreso,"si",2)==0);


Tambien lo que comentas deo nombre.

Necesitas reinicializar la variable nombre y todas las demas en cada ciclo.

Iguala los enteros a 0 y las cadenas limpialas con memset

Código
  1. memset(nombre,0,35);

Y como te comente antes lee las cadenas con fgets.

ese i que te aparece es el i del "si" como solo lees un caracter con getchar.. el "ese" queda en "regresar" y el i pasa inmediatamente al nombre... repito esto no pasaria si les con fgets.. incluso puedes leer los numeros con fgets a un.buffer temportal y despues transformarlos a entero con atoi o con sscanf.

Saludo


« Última modificación: 4 Junio 2016, 15:24 pm por AlbertoBSD » En línea

el1000erroresxd

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ayuda xd regresar al menu con do while dev c++!!1
« Respuesta #4 en: 5 Junio 2016, 01:24 am »

gracias a todos ya pude resolverlo el problema era que tenia algunas variables char como %s y mas abajo del codigo la tenia como %c las puse todas como %s y funciono graciasss!  ;D ;D ;D ;D ;D :rolleyes: :rolleyes: :rolleyes: ;-) ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Regresar al menu anterior
Programación C/C++
Zakro 1 7,142 Último mensaje 23 Mayo 2011, 08:11 am
por <<<-Basura->>>
REGRESAR A MENU ANTERIOR CASE EN JAVA
Java
ArmandoQuintero 4 41,328 Último mensaje 3 Julio 2013, 16:37 pm
por ~ Yoya ~
ayuda..con repetir el programa o regresar al menu
Programación C/C++
retsam07 1 19,340 Último mensaje 1 Diciembre 2012, 16:37 pm
por leosansan
Como regresar al menu principal
Java
JoseRiiivera 1 5,230 Último mensaje 28 Abril 2014, 08:37 am
por gordo23
Regresar al menu principal
Programación C/C++
Ale1011 1 9,355 Último mensaje 5 Junio 2017, 14:28 pm
por n-utz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines