Foros del Web » Programación para mayores de 30 ;) » Java »

revizar este ejercicio

Estas en el tema de revizar este ejercicio en el foro de Java en Foros del Web. Hola pues resulta que me pusieron un ejercicio, pero no sé si me quedó bueno así que aqui os dejo a ver si me pueden ...
  #1 (permalink)  
Antiguo 15/09/2012, 15:28
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 8 meses
Puntos: 3
Información revizar este ejercicio

Hola pues resulta que me pusieron un ejercicio, pero no sé si me quedó bueno así que aqui os dejo a ver si me pueden echar una manito, igual me corre pero si depronto tienen depronto sugerencias se los agradecería.

"se supone que es para practicar POO"
Ejercicio.
se desea crear una aplicacion para manejar la informacion de un empleado. un empleado tiene un nombre, una cedula, una direccion y un salario asignado, la aplicacion debe permitir crear un nuevo empleado, ingrementar el salario en un 10% decrementar el salario en un porcentaje dado por el usuario, devolver la direccion del empleado y devolver el salario.


e aquí el código
Código Java:
Ver original
  1. /*clase empleado*/
  2. package Aplication_Body;
  3.  
  4. public class Empleado {
  5.    
  6.     private String nombre;
  7.     private int cedula;
  8.     private String direccion;
  9.     private double salario;
  10.    
  11.     public Empleado(String nombre, int cedula, String direccion, double salario){
  12.        
  13.         super();
  14.         this.nombre = nombre;
  15.         this.cedula = cedula;
  16.         this.direccion = direccion;
  17.         this.salario = salario;
  18.        
  19.     }
  20.  
  21.     public String getNombre() {
  22.         return nombre;
  23.     }
  24.  
  25.     public void setNombre(String nombre) {
  26.         this.nombre = nombre;
  27.     }
  28.  
  29.     public int getCedula() {
  30.         return cedula;
  31.     }
  32.  
  33.     public void setCedula(int cedula) {
  34.         this.cedula = cedula;
  35.     }
  36.  
  37.     public String getDireccion() {
  38.         return direccion;
  39.     }
  40.  
  41.     public void setDireccion(String direccion) {
  42.         this.direccion = direccion;
  43.     }
  44.  
  45.     public double getSalario() {
  46.         return salario;
  47.     }
  48.  
  49.     public void setSalario(double salario) {
  50.         this.salario = salario;
  51.     }
  52.    
  53. }

Código Java:
Ver original
  1. /*esta es la clase principal, donde crearemos el Objeto Empleado1 o e1*/
  2. package Aplication_Body;
  3. import Aplication_Body.Metodos;
  4.  
  5. public class Empresa {
  6.  
  7.    
  8.     public static void main(String[] args) {
  9.         new Empresa();
  10.  
  11.     }
  12.     public Empresa(){
  13.        
  14.         String nombre = Metodos.pedir("ingrese el nombre del empleado");
  15.         int cedula = Metodos.convertirEntero(Metodos.pedir("Ingrese el número de
  16.  
  17. cedula"));
  18.         String direccion = Metodos.pedir("ingrese la dirección del empleado");
  19.         double salario = Metodos.convertirEntero(Metodos.pedir("ingrese el salario
  20.  
  21. asignado del empleado"));
  22.         Empleado e1 = new Empleado(nombre, cedula, direccion, salario);
  23.         double salario10 = Metodos.ValorMasPorcentaje(e1.getSalario(), 10);
  24.         double salarioFinal = Metodos.valorMenosPorcentaje(salario10,
  25.  
  26. Metodos.convertirEntero(Metodos.pedir("Ingrese el porcentaje que le desea decrementar al
  27.  
  28. salario del empleado")));
  29.         Metodos.mostrar(e1.getNombre()+" "+e1.getCedula()+" "+e1.getDireccion());
  30.         Metodos.mostrar("Este es su salairio final, +el 10%, [descontados todas las
  31.  
  32. prestaciones y deudas] "+"salario "+salarioFinal);
  33.     }
  34.  
  35. }


Código Java:
Ver original
  1. /*Aquí en esta clase tengo todos los métodos básicos que utilizo a lo largo del programa*/
  2. package Aplication_Body;
  3. import javax.swing.JOptionPane;
  4. public class Metodos {
  5.  
  6.    
  7.     public static String pedir(String x)
  8.     {
  9.         return JOptionPane.showInputDialog(x);
  10.     }
  11.    
  12.     public static int convertirEntero(String x)
  13.     {
  14.         return Integer.parseInt(x);
  15.     }
  16.     public static void mostrar(String x)
  17.     {
  18.         System.out.println(x);
  19.     }
  20.     public static double ValorMasPorcentaje(double valor, double porcentaje){
  21.        
  22.         double valorFinal=((valor*porcentaje)/100);
  23.         return(valor+valorFinal);
  24.        
  25.     }
  26.     public static double valorMenosPorcentaje(double valor, int porcentaje){
  27.        
  28.         double valorFinal=((valor*porcentaje)/100);
  29.         return(valor-valorFinal);
  30.        
  31.     }
  32. }

Si depronto no hay nada que corregir, que no creo, igual coloquen que está bien porfa, para yo saber que lohize bien, gracias
  #2 (permalink)  
Antiguo 15/09/2012, 19:55
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: revizar este ejercicio

todo bien, pero estas exagerando en la modularidad de tu código, la clase Métodos no tiene razón de ser, por que los métodos que defines hacen exactamente lo mismo que si llamas directamente la instrucción que realizan....

almenos estos 3 métodos yo los quitaría:
Código:
public static String pedir(String x)
    {
        return JOptionPane.showInputDialog(x);
    }
    
    public static int convertirEntero(String x)
    {
        return Integer.parseInt(x);
    }
    public static void mostrar(String x)
    {
        System.out.println(x);
    }
Por qué? Por la razon de que no ejecutan más que una linea de código, la definicion de un método básicamente es un bloque de código con múltiples instrucciones a realizar, en tu caso son solo una sentencia, es decir sale más caro el caldo que las albondigas...
__________________
De nada, hay te encargo +1...
  #3 (permalink)  
Antiguo 16/09/2012, 02:34
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: revizar este ejercicio

Cita:
Por la razon de que no ejecutan más que una linea de código, la definicion de un método básicamente es un bloque de código con múltiples instrucciones a realizar, en tu caso son solo una sentencia, es decir sale más caro el caldo que las albondigas...
Es un poco exagerado lo que dices, que tenga una sentencia o 200 no es motivo.

Concretamente los tres métodos que dices sobran, es muy posible que necesite modificarlos, para evitar los null en la conversión por ejemplo. Yo no lo hago habitualmente por lo de siempre, las prisas.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 16/09/2012, 16:20
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: revizar este ejercicio

Cita:
Iniciado por Xerelo Ver Mensaje
Es un poco exagerado lo que dices, que tenga una sentencia o 200 no es motivo.
Osea que qué?
__________________
De nada, hay te encargo +1...
  #5 (permalink)  
Antiguo 17/09/2012, 04:57
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: revizar este ejercicio

Lo normal sería tener esos métodos en la clase Empresa, y llamarlos directamente. Salvo que haya un motivo para usarlos en múltiples clases no tendría por qué existir una clase específica.

Le falta hacer la gestión de excepciones. Por ejemplo si no introduce un número entero en el texto, tiene que hacer que lo vuelva a pedir de nuevo y ademas dar la opción de abandonar la aplicación.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #6 (permalink)  
Antiguo 17/09/2012, 13:28
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 8 meses
Puntos: 3
De acuerdo Respuesta: revizar este ejercicio

Cita:
Iniciado por Fuzzylog Ver Mensaje
Le falta hacer la gestión de excepciones. Por ejemplo si no introduce un número entero en el texto, tiene que hacer que lo vuelva a pedir de nuevo y ademas dar la opción de abandonar la aplicación.
Si tienes razón eso falta, ahora me pongo en ello.


Respecto a la clase Métodos, la cree con el objetivo de reutilizarla en otros trabajos, es decir cada vez que vaya a hacer un trabajo, meto esa clase dentro del paquete de mi proyecto y ya esta... no tengo que volver a hacerlos...


Tal vez así si valga la pena ?
  #7 (permalink)  
Antiguo 17/09/2012, 16:30
 
Fecha de Ingreso: diciembre-2007
Mensajes: 427
Antigüedad: 16 años, 11 meses
Puntos: 35
Respuesta: revizar este ejercicio

Lo q pasa es q los metodos de la clase metodos son de una sola linea de codigo, es decir no tiene sentido lo mismo que gastas es llamar al metodo lo gastas haciendo la linea de codigo.
De echo gastarias menos sin llamar a la clase metodo.
  #8 (permalink)  
Antiguo 17/09/2012, 16:49
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: revizar este ejercicio

Cita:
Iniciado por zero0097 Ver Mensaje
Osea que qué?
Pues que no es tanto cosa del tamaño, también influye y mucho si es algo que vas a utilizar en varios sitios y que pueda ser necesario modificar.

Por ejemplo imagina que quiere cambiar los System.out por escritura a un archivo o mensaje en popup. Por haberlo previsto con mostrar(texto) no tendrá que buscar todos los System.out que ha puesto en el código.

O simplemente por comodidad para leer código, es más legible un isEmailValido(email) que email.matches("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$") o email.matches(PATTERN_EMAIL)
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #9 (permalink)  
Antiguo 22/09/2012, 15:43
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: revizar este ejercicio

No lo había pensado de esa manera...
__________________
De nada, hay te encargo +1...

Etiquetas: aplication, body, clase, etiqueta, objetos, poo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:12.