Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 1mpuls0

#91
Foro Libre / Re: ¿Cuanto tardáis?
2 Abril 2014, 18:19 PM
Cita de: DanteInfernum en  2 Abril 2014, 17:52 PM
Marcas libres de doping.  :D

Que curioso que menciones eso, porque yo estoy bajo el efecto de un medicamento e.e, solo es algo para relajarme. Me pregunto si tendrá algo que ver el resultado, porque vamos creo que no están tan mal

1er intento: 0.211 segundos
2o intento:  0.071 segundos

*En cuando pueda subo las imágenes de los resultados
#92
Cita de: rir3760 en  2 Abril 2014, 17:46 PM
Ese comportamiento se debe a que, por alguna extraña razón, estas tratando de leer un entero justo después de indicar que se introduzca el nombre:

*¬*

Cita de: amchacon en  1 Abril 2014, 19:06 PM
El cin lee el número, pero se deja el salto de línea. Eso hace que el getline solo lea eso y acabe.

La solución es descartar el salto de línea y seguir:
Código (cpp) [Seleccionar]

int a;
string nombre;

cin>>a;
cin.ignore(); // descartar el salto de linea
getline(cin,nombre);


Cita de: rir3760 en  2 Abril 2014, 17:46 PM
También debes cambiar el uso de goto por una sentencia de repetición do ... while.

El programa inicial estaba con un do-while pero no funcionaba (no recuerdo bien que hacía o que no hacía, creo que al querer mostrar los resultados justo después de insertarlos no lo hacía, incluso colocando pause) por eso busqué otra opción y encontré sobre el goto.
#93
Todas las anteriores.

Yo digo que a lo mejor quien sabe, pero posiblemente el piloto tenía sed, eso sin duda!
Pero escuché que tienen a las mejores mentes en esa investigación.

"Las mejores mentes del mundo buscan al avión malasio"
http://www.infobae.com/2014/03/31/1553938-las-mejores-mentes-del-mundo-buscan-al-avion-malasio

Deberían llamar a "L"
#94
con respecto a throw new UnsupportedOperationException("Not supported yet."); nunca había visto algo así, pero no lo puedes borrar?
Exactamente que fue lo que se puso solo?, el throw o todo el método?

Lo que puedo notar es que ese método es el constructor y no tiene modificador, en este caso supongo que solo es un constructor sin parametros entonces debería quedar

Código (java) [Seleccionar]
public Vehiculo() {

}


non-static variable obj... cannot be referenced from a static context
con respecto a esto es porque tus métodos de la clase Vehiculo [ RetornarDatosV(), RetornarDatosA(), RetornarDatosC() ] no tienen la palabra static.

Como los estás llamando directamente desde public static void main(String args) {}
estos métodos de la clase Vehiculo también deben ser static, es decir algo así.

Código (java) [Seleccionar]

public static String RetornarDatosV() { //nota que agregue la palabra static a este metodo
return this.PropiedadesVehiculo();
}


Pero de preferencia coloca algo de código no imagenes xD, para mi fue un lio poder verlas porque estoy en el trabajo y aquí bloquean algunas páginas.

Saludos.
#95
Gracias, ya intenté!

e.e no me sale, algo se repite infinidad de veces en la consola, como si fuera un ciclo infinito.

Coloco mi código completo, tal vez hay algo más!

Clase Persona
Código (cpp) [Seleccionar]

#include <iostream>
#include <cstring>
#include <string>
#include <sstream>

using namespace std;

class Persona {
     
     private:
               string nombre;
               string sexo;
               int edad;
     
     public:
            void EstablecerNombre(string nombre);
            void EstablecerEdad(int edad);
            void EstablecerSexo(string sexo);
            string ObtenerNombre();
            int ObtenerEdad();
            string ObtenerSexo();
           
};

void Persona::EstablecerNombre(string nombre) {
    this->nombre = nombre;    
}

string Persona::ObtenerNombre() {
     return this->nombre;      
}

void Persona::EstablecerEdad(int edad) {
    this->edad = edad;    
}

int Persona::ObtenerEdad() {
   return this->edad;    
}

void Persona::EstablecerSexo(string sexo) {
    this->sexo = sexo;
}

string Persona::ObtenerSexo() {
     return this->sexo;      
}


Clase Empleado
Código (cpp) [Seleccionar]

#include <iostream>
#include <cstring>
#include <string>
#include <sstream>
#include <vector>
#include <string.h>

using namespace std;

//Clase Empleado, hereda de la clase Persona
class Empleado : public Persona {
     
     //Atributos
     private:
             float sueldo;
             vector<string> lista; //Vector (arreglo dinámico) para guardar la información            
     
     //Métodos
     public:
            void EstablecerSueldo(float sueldo);
            float ObtenerSueldo();
            void RegistrarEmpleado(string empleado, int edad, string sexo, float sueldo);
            void MostrarEmpleados();
};

void Empleado::EstablecerSueldo(float sueldo) {
    this->sueldo = sueldo;    
}

float Empleado::ObtenerSueldo() {
     return this->sueldo;    
}

void Empleado::RegistrarEmpleado(string empleado, int edad, string sexo, float sueldo) {
   stringstream registro;
   
   registro << "Empleado: " << empleado << ", " << edad << ", " << sexo << ", " << sueldo; //Concatenar información del empleado
   
   string resultado = registro.str( );
   lista.push_back(resultado); //Guarda el resultado en la lista (vector)
   sort(lista.begin(), lista.end());
}

//Método para mostrar los empleados
void Empleado::MostrarEmpleados() {
   for(vector<string>::const_iterator iter = lista.begin(); iter != lista.end(); iter++){
            cout << "\n" << *iter << endl;
   }
}


Main
Código (cpp) [Seleccionar]

#include "Persona.h"
#include "Empleado.h"
#include <iostream>
#include <cstring>
#include <string>
#include <sstream>
#include <stdio.h>

using namespace std;

int main() {
   
   //Declaracion de objetos
   Empleado miEmpleado;
   
   //Declarion variables
   int opcion;
   
   int aux;
   string nombreEmpleado;
   string sexoEmpleado;
   int edadEmpleado;
   float sueldoEmpleado;
   
   
   menu:    
       cout << "\nElige una opcion: \n\n 1 Registrar Empleado \n 2 Mostrar Empleados \n 3 Registrar Directivo \n 4 Registrar Cliente \n 5 Mostrar Clientes \n 9 Salir" << endl;
       cin>>opcion;
       
       switch(opcion) {
                      case 1: //Opcion 1, Registrar Empleado
                           //Datos del empleado
                           cout << "Escribe el nombre del empleado" << endl;
                           cin>>aux;
                           cin.ignore();
                           getline(cin,nombreEmpleado);
                           miEmpleado.EstablecerNombre(nombreEmpleado);
                           
                           cout << "Escribe el sexo del empleado" << endl;
                           cin>>sexoEmpleado;
                           miEmpleado.EstablecerSexo(sexoEmpleado);
                           
                           cout << "Escribe la edad del empleado" << endl;
                           cin>>edadEmpleado;
                           miEmpleado.EstablecerEdad(edadEmpleado);
                           
                           cout << "Escribe el sueldo del empleado" << endl;
                           cin>>sueldoEmpleado;
                           miEmpleado.EstablecerSueldo(sueldoEmpleado);
                           
                           //Metodo de la Clase Empleado para Guardar Información del Empleado
                           miEmpleado.RegistrarEmpleado(miEmpleado.ObtenerNombre(), miEmpleado.ObtenerEdad(), miEmpleado.ObtenerSexo(), miEmpleado.ObtenerSueldo());
                           
                           goto menu; //Ir A Menú, Después de registrar el empleado vuelve a mostrar el menú
                           break;
                           
                      case 2:
                           //Mostrar datos de empleado
                           miEmpleado.MostrarEmpleados();
                           
                           goto menu;
                           break;
                           
                      case 3:
                           
                           goto menu;
                           break;
                     
                      case 9: //Salir
                           cout << "Hasta luego! :)" << endl;
                           system("pause");
                           break;
                           
                      default:
                              cout << "\n\nOpcion no valida" << endl;
                              goto menu;
                           
       } //Fin Switch
   
   return (0);
}
#96
C++ está a punto de volverme loco e.e tal vez es la costumbre a la simpleza de otros lenguajes para hacer las cosas.

Toto marchaba casi bien en mi primer programa pero hay una parte en donde solicito el nombre del empleado, pues bien se me ocurrio colocar los apellidos y enseguida debería pedir el sexo pero se saltó esa solicitud (por consola).


Elige una opcion:

1 Registrar Empleado
2 Mostrar Empleados
3 Registrar Directivo
4 Registrar Cliente
5 Mostrar Clientes
9 Salir
1
Escribe el nombre de la empresa
hsbc
Escribe el nombre del empleado
1mpuls0
Escribe el sexo del empleado <-se salta esta petición
Escribe la edad del empleado


Estuve investigando y al parecer la solución es usar char nombre[50];
Pero también encontré otras supuestas soluciones

Primero leí aquí
:https://foro.elhacker.net/programacion_cc/problema_al_leer_cadenas_con_espacios_c-t328160.0.html

Lo que se propone ahí es hacer un do-while hasta que el código del medicamento sea menor que 7. Supongo que el usuario de ese problema dejaba espacios entre el código del producto.
Bien eso no me sirve.

Intenté como menciona ahí
Código (cpp) [Seleccionar]
while(getchar()!='\n'); y aunque dejó de saltarse la petición del sexo, no muestra el nombre del empleado (en mi programa)


Después leí aquí
:http://www.forosdelweb.com/f14/leer-cadena-caracteres-por-teclado-c-279157/
<off> por cierto creo que ese Eternal Idol es el mismo de este foro </off>

Especificamente intenté con esta parte.
Código (cpp) [Seleccionar]

getline(cin, empleado, '\n');

Cabe resaltar que ademas del getline una linea antes utilizo cin, porque si no lo hago se salta prácticamente 2 peticiones xD

Pero tuve el mismo resultado que el anterior (solo muestra una parte del nombre del empleado)

Citar
Elige una opcion:

1 Registrar Empleado
2 Mostrar Empleados
3 Registrar Directivo
4 Registrar Cliente
5 Mostrar Clientes
9 Salir
1
Escribe el nombre de la empresa
hsbc
Escribe el nombre del empleado
1mpuls0 <- problema
Escribe el sexo del empleado
hombre
Escribe la edad del empleado
25
Escribe el sueldo del empleado
12000

Elige una opcion:

1 Registrar Empleado
2 Mostrar Empleados
3 Registrar Directivo
4 Registrar Cliente
5 Mostrar Clientes
9 Salir
2

Empleado: hsbc,  schneider, 25, hombre, 12000 <-Resultado, falta el nombre del empleado

Aquí también leí.
:http://elrincondelc.com/nuevorincon/foros/viewtopic.php?t=6353&sid=639bfc3e0941ebb5ed03439ede6da401
y el resultado fue el mismo que el anterior.

Ahí mencionan algo sobre cin.
Citar
cin usa como delimitador el espacio. La solucion es la funcion global getline

La solución que posiblemente sea es usar char, pero tendría que modificar el tipo de dato a practicamente todas mis variables xD
:http://ejercicioscpp.blogspot.mx/2013/07/c-leer-caracteres-cadenas-de-caracteres.html
Esta aun no la he implementado. Pero me gustaría escuchar alguna posible solución al utilizar tipo de dato string

Citar
El operador >> sobre cin no es útil para leer cadenas de caracteres que contengan espacios en blanco.
Por ejemplo,  para leer en un programa el nombre y apellidos de una persona, si utilizamos las siguientes instrucciones:
char nombre[50];  // cadena de caracteres de longitud máxima 50

Mi código lo tengo de la siguiente forma. No creo que sea conveniente colocarlo todo. Pero si me lo piden lo coloco.

Código (cpp) [Seleccionar]

//objetos de clases
   Empresa miEmpresa;
   Empleado miEmpleado;

//variables
   string nombreEmpresa;    
   string nombreEmpleado; //Variable en cuestion
   string sexoEmpleado;
   int edadEmpleado;
   float sueldoEmpleado;
   string categoriaEmpleado;


   cout << "Escribe el nombre del empleado" << endl;
   cin>>nombreEmpleado;
   //while(getchar()!='\n'); <- Al usarlo con cin obtiene solo la primera parte del nombre
   //getline(cin,nombreEmpleado,'\n'); // Al usarlo sin cin se salta a la siguiente peticion, al usarlo con cin obtiene la segunda parte
   miEmpleado.EstablecerNombre(nombreEmpleado);



Sugerencias, por favor, antes de que me vuelva loco
#97
Aplica un poco de vitacilina. Esa madr* cura todo e.e
Es broma.

Mejor consulta a tu médico a ver que dice.
Suerte (y)
#98
Hacking / Re: software con candado
1 Abril 2014, 01:45 AM
Da más información.
El programa lo tienes instalado? o solo es el ejecutable?
si es un ejecutable que extensión tiene el archivo.
a que te refieres con candado?, tiene una contraseña al abrirlo?, o el icono tiene un candado?.
#99
También pensé en publicarlo, pero no quería verme medio....

Felicitaciones Randomize

Cita de: topomanuel en 31 Marzo 2014, 21:35 PM
mientras tenga dedos...

Hay una pelicula llamada Wild Hogs (Cerdos salvajes, Rebeldes con causa) en la que uno de los personajes es programador.
Entonces hay unos motociclistas que los atrapan y el tipico chico malo le dice a su gente "cortenle las piernas" y el programador dice "está bien!, soy programador", después el motociclista dice: entonces cortenle las manos. xD Bueno me parecio gracioso.

Perdon por el off.

Saludos.
#100
Como dice engel lex puede que por tu nickname, tal vez así estás en alguna red social xD y verificaron algunos datos desde ahí.
O tal vez tu email está como público en ese foro.

Por ejemplo algunos miembros del foro me han agregado al skype o fb porque tengo mi email y skype como publicos aquí.

Puede que haya pasado algo así.