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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  buenas otra vez jaja tengo un problema con programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: buenas otra vez jaja tengo un problema con programa  (Leído 8,047 veces)
eduardo17445

Desconectado Desconectado

Mensajes: 162


Ver Perfil
buenas otra vez jaja tengo un problema con programa
« en: 4 Abril 2014, 06:48 am »

ingreso los primeros y me los acepta pero cuando voy a ingresar el siguiente empleado por que es una clase empleado me brinca el nombre para el sueldo que podria ser eso


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #1 en: 4 Abril 2014, 08:16 am »

La verdad es que en tu código se aprecia una fuga de memoria, además ese puntero que tienes dentro de la tercera función no está incializado...

No, ya en serio, no somos adivinos, o pones código o nadie te va a contestar.


En línea

eduardo17445

Desconectado Desconectado

Mensajes: 162


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #2 en: 4 Abril 2014, 08:22 am »


este es el codigo
#include<iostream>
#include<math.h>
using namespace std;
class empleado
{
      char nom[15];
      float sueldo;
      public:
             void ingresar_datos();
             void imprimir();
             void mostrar_impuesto_a_pagar();
             };
             void empleado::ingresar_datos()
             {
                 
                 cout<<"nombre----";
                 cin.getline (nom,15);
                 cout<<endl;
                 cout<<"sueldo ---   ";
                 cin>>sueldo;
                 cout<<endl;
                 }
                 void empleado::imprimir()
                 {
                     
                     cout<<"nombre-------  "<<nom<<endl;
                     cout<<endl;
                     cout<<"sueldo-------- "<<(sueldo)<<endl;
                     cout<<endl;
                     }
                 void empleado::mostrar_impuesto_a_pagar()   
                 {
                     int iva=0;
                   int totalemple;
                   int sueldo ;
                     cout<<"impuesto__pagar------"<<iva<<endl;
                     cout<<endl;
                   
                      if(sueldo<=300)
                     if(totalemple==1)
                   iva=totalemple/sueldo;
                   
                     
                 }
                                 
           int main()
           {
               empleado b;
               b.ingresar_datos();
               b.imprimir();
               b.mostrar_impuesto_a_pagar();
               system("pause");
               return 0;
               }
En línea

nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #3 en: 4 Abril 2014, 08:33 am »

Hola primero que nada.

a primera vista puedo ver que solo declaraste las funciones como public y no las variables no las declarastes como private

Código
  1. private:
  2. char nom[15];
  3. float sueldo;

2. con respecto a lo que preguntas

Código
  1. cout<<"nombre----";
  2. cin.getline (nom,15);

debe de ir un

Código
  1. cin.ignore();

quedandote asi.


Código
  1. cout<<"nombre----";
  2. cin.getline (nom,15);
  3. cin.ignore();

creo que esa es la razon de por que te salta y no te pide el nombre de regreso espero averte ayudado saludos.


PD: si quieres saber para que sirve el cin.ignore();
http://foro.elhacker.net/programacion_cc/funcion_cinignore-t290246.0.html

« Última modificación: 4 Abril 2014, 08:36 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
eduardo17445

Desconectado Desconectado

Mensajes: 162


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #4 en: 4 Abril 2014, 08:47 am »

ahora es con el sueldo ago lo mismo o ahi es distinto


EI: juntando mensajes.


ya si avia que hacer lo mismo pero ahora m muestra uno solo a q c debera
 

 
 
 
« Última modificación: 4 Abril 2014, 12:02 pm por Eternal Idol » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #5 en: 4 Abril 2014, 08:56 am »

Si estás usando C++... por qué no usas la clase string?

Código
  1. class empleado
  2. {
  3.  string nombre;
  4.  
  5.  void ingresar_datos()
  6.  {
  7.    cout<<"nombre----";
  8.    cin >> nombre;
  9.    cout<<endl;
  10.  }
  11. };

PD.: Creo que es la segunda vez que te lo digo: Usa las etiquetas GeSHi para el código. Ya llevas 199 mensajes en el foro... va siendo hora de adaptarse un poco a las normas, no crees??
En línea

nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #6 en: 4 Abril 2014, 09:01 am »

eferion depende con una string no puedes poner un nombre completo como (Haker Perez).
si no me equivoco no?

Me corrigo tienes razon tambien puede usar una string.  gg lapsus.

eduardo no es nesesario poner cin.ignore(); por todos lados, solo ponlo despues de que el siquente dato que se ingresara sea una cadena de caracteres.

esta es la salida que me da a mi.
« Última modificación: 4 Abril 2014, 09:09 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
eduardo17445

Desconectado Desconectado

Mensajes: 162


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #7 en: 4 Abril 2014, 09:05 am »

no m piden nadamas nombre no ponerlo completo pero me dices string como dato



EI: juntando mensajes.




yo lo puse despues del nombre y despues del sueldo q m asia lo mismo que con el nombre
« Última modificación: 4 Abril 2014, 12:04 pm por Eternal Idol » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #8 en: 4 Abril 2014, 09:34 am »

eferion depende con una string no puedes poner un nombre completo como (Haker Perez).
si no me equivoco no?

Me corrigo tienes razon tambien puede usar una string.  gg lapsus.

Código
  1. string nombre;
  2. cin >> nombre;

Así tal cual te va a almacenar el nombre todo lo que introduzcas hasta el salto de línea... aunque con tu respuesta me da que ya lo has visto ;)

no m piden nadamas nombre no ponerlo completo pero me dices string como dato

Que solo te pidan una cosa no implica que tengas que limitar el código a únicamente ese caso... en no pocas ocasiones es más fácil hacer código para casos generales que para casos concretos.

yo lo puse despues del nombre y despues del sueldo q m asia lo mismo que con el nombre

En vez de escribir dos mensajes seguidos es mejor que modifiques el primer mensaje, te evitarás problemas con los moderadores y además tu mensaje se leerá mejor ( no se pondrán en dos páginas diferentes por ejemplo ).

char* y string son, digamos, equivalentes. Sirven para lo mismo. Lo que sucede es que char*, por ser herencia de C, es mucho más sensible a errores y está mucho más limitado, mientras que string tiene un diseño mucho más potente que, además, está libre de errores, sin lagunas de memoria, sin buffer overflow...

Además, la STL de C++ ofrece muchas más prestaciones para string que para char*.
En línea

eduardo17445

Desconectado Desconectado

Mensajes: 162


Ver Perfil
Re: buenas otra vez jaja tengo un problema con programa
« Respuesta #9 en: 4 Abril 2014, 09:36 am »

no entiendo algo dices cambiar char por string
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines