Autor Tema: ENTREGA:CU00633B operador modulo o resto java  (Leído 4887 veces)

momo

  • Principiante
  • **
  • Mensajes: 64
    • Ver Perfil
ENTREGA:CU00633B operador modulo o resto java
« en: 27 de Agosto 2014, 17:14 »
Código:

Código: [Seleccionar]
/*Define una clase Medico considerando los siguientes atributos de clase:
 * nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String),
 * especialidad (String). Define un constructor asignando unos valores de defecto a los atributos
 * y los métodos para poder establecer y obtener los valores de los atributos. Define un método de nombre
 * “calculoParaMultiploEdad” que no recibe parámetros y es tipo procedimiento cuyo cometido será el
 * siguiente: determinar cuántos años faltan para que la edad del médico sea múltiplo de 5 y mostrar un
 * mensaje informativo por pantalla. Por ejemplo si el médico tiene 22 años deberá en primer lugar obtener
 * el resto de la división de 22 entre 5, que es 2. Ahora obtendrá los años que faltan para que el médico
 * tenga una edad múltiplo de 5, que serán 5-2 = 3 años. A continuación deberá mostrar un mensaje por
 * consola del tipo: “El médico de nombre … con especialidad … tendrá una edad múltiplo de 5 dentro de
 * … años”. Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y
 * comprueba que aparezcan correctamente los mensajes por consola, y que cuando cambias la edad aparece
 * correctamente el tiempo que falta para que la edad sea múltiplo de 5. Para comprobar si es correcta tu
 * solución puedes consultar en los foros aprenderaprogramar.com.

 */
public class calculoedad
{
    String nombre,apellido,cedula,especialidad;
    boolean casado;
    int edad; 
    int dd;



public calculoedad()
{
    nombre="";
    apellido="";
    cedula="";
    especialidad="";
    casado=true ;
    edad=29;
    dd=5;
   

}
//Establecer metodos
public void setnomb(String na)
{
    nombre=na;
   

}
public void setapell(String apel)
{
    apellido=apel;
}
public void setced(String cedd)
{
    cedula=cedd;
}
public void setespeci(String esp)
{
    especialidad=esp;
}
public void  setbo(boolean cas)
{
    casado=cas;
   
}
public void seted(int eda)
{
    edad=eda;
}//FIN ESTABLECER METODOS
public void  setmult()
{
    int aa;
    aa=edad%5;
    dd=5-aa;
   System.out.println("FALTA "+ dd +" AÑOS PARA QUE SEA MULTIPLO DE 5");
   
}
public String getnomb()
{
    return nombre;
}
public String getapell()
{
    return apellido;
}
public String getced()
{
    return cedula;
}
public String getespeci()
{
    return especialidad;
}
public boolean getbo()
{
    return casado;
}


}
« Última modificación: 31 de Agosto 2014, 10:42 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:ENTREGA:CU00633B
« Respuesta #1 en: 27 de Agosto 2014, 17:38 »
Hola, el código funciona bien pero hay muchos detalles a comentar y corregir.

- Lo primero (ya se ha comentado varias veces en el foro pero lo repetimos) : cuando se vaya a pegar código pulsar el botón # del editor del foro. Una vez aparezcan las etiquetas [ code ] ... [ / code] pegar el código entre esas dos etiquetas.

- Cuando se tenga el mensaje preparado pulsar en Previsualizar para ver si todo sale bien. Si todo está bien pulsar en publicar, si no corregir y volver a pulsar en previsualizar.

Sobre el código en sí:

- El nombre de la clase no es adecuado por dos cosas: los nombres de clase deben empezar en mayúsculas, no en minúsculas (no es obligatorio pero así lo hacen todos los programadores). Y por otro lado el nombre de clase debe ser alusivo a lo que representa la clase: esta clase representa un médico, por tanto el nombre de clase podría ser Medico ó MedicoConCalculador pero no calculoedad porque eso no indica qué representa la clase.

- En el constructor: lo más normal es iniciar los valores a 0 si son numéricos, "" si son Strings, false si son booleanos, etc.

Por tanto en vez de:

casado=true ;
    edad=29;
    dd=5;

Lo más normal sería:

casado=false ;
    edad=0;
    dd=0;


Los nombres de métodos deben intercalar mayúsculas cada vez que empieza una palabra. Por ejemplo debe ser getNombre en lugar de getnombre.

Los nombres de métodos deben ser descriptivos de lo que hace el método. getced no indica bien qué es lo que hace el método. Mejor sería getCedula, así queda más claro.

Los prefijos set y get están reservados para métodos que establecen o devuelven atributos.

El nombre setmult no es adecuado porque no es un método para establecer un atributo.

En este método tienes esto:

public void  setmult()
{
    int aa;
    aa=edad%5;
    dd=5-aa;
   System.out.println("FALTA "+ dd +" AÑOS PARA QUE SEA MULTIPLO DE 5");
   
}

aa es un nombre de variable que no describe para qué sirve esa variable. Tienes que intentar que los nombres sean descriptivos, por ejemplo en vez de aa poner añosQueFaltanParaMultiplo5

Lo mismo ocurre con dd

Otra cosa: dd es un valor que se calcula a partir de la edad. dd no debe ser un atributo de la clase. Un médico debe saber su edad, debe llevar esa información (como atributo), pero no tiene por qué llevar dd, eso no es importante para representar al médico.

Repitiendo ejercicios y haciendo más te irás acostumbrando a muchas de las cosas comentadas, adelante y a por ello

Anskhar

  • Visitante
Re:ENTREGA:CU00633B
« Respuesta #2 en: 27 de Agosto 2014, 19:22 »
Hola, primero de todo presentarme, soy nuevo en este foro, ayer empecé con este curso de programación Java.
Aqui te dejo mi código del ejercicio a ver que te parece, muchas gracias.


Código: [Seleccionar]
/*Ejercicio - CU00632B y CU00633B*/
//Esta clase represent un médico

public class Medico{
    String nombre; //nombre del médico
    String apellidos; //apellidos del médico
    int edad; //edad del médico
    boolean casado; //estado civil del médico
    String numeroDocumentoIdentidad; //DNI del médico
    String especialidad; //especialidad del médico
    int añosFaltanMultiploCinco;
    //Consturctor
    public Medico(){
        nombre="";
        apellidos="";
        edad=0;
        casado=false;
        numeroDocumentoIdentidad="";
        especialidad="";
        añosFaltanMultiploCinco=0;
    } //cierre del constructor
   
    //Métodos para establecer valores a los atributos
    public void setNombre (String valorNombre){
        nombre=valorNombre;
    }
    public void setApellidos (String valorApellidos){
        apellidos=valorApellidos;
    }
    public void setEdad (int valorEdad){
        edad=valorEdad;
    }
    public void setCasado (boolean valorCasado){
        casado=valorCasado;
    }
    public void setNumeroDocumentoIdentidad (String valorNumeroDocumentoIdentidad){
        numeroDocumentoIdentidad=valorNumeroDocumentoIdentidad;
    }
    public void setEspecialidad (String valorEspecialidad){
        especialidad=valorEspecialidad;
        System.out.println ("Ha cambiado la especialidad del médico de nombre " + nombre+ ". La nueva especialidad es: "+ especialidad);
    }
    public void setCalculoParaMultiploEdad (){
        int modEdadPorCinco;
        int añosFaltanMultiploCinco;
        modEdadPorCinco=edad%5;
        añosFaltanMultiploCinco=5-modEdadPorCinco;
        System.out.println ("El médico de nombre "+nombre+" con especialidad "+especialidad+" tendrá una edad múltiplo de 5 dentro de "+añosFaltanMultiploCinco+" años.");
       
    }
    //Métodos para obtener los valores de los atributos
    public String getNombre(){
        return nombre;
    }
    public String getApellidos(){
        return apellidos;
    }
    public int getEdad(){
        return edad;
    }
    public boolean getCasado(){
        return casado;
    }
    public String getNumeroDocumentoIdentidad(){
        return numeroDocumentoIdentidad;
    }
    public String getEspecialidad(){
        return especialidad;
    }
}//cierre de la clase
       

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:ENTREGA:CU00633B
« Respuesta #3 en: 27 de Agosto 2014, 19:30 »
Esta perfectisimamente perfecto excepto por un detalle.... jajajajajajaja

Las Ñ´s jajajaja quítalas antes de que lo vea alguien que entienda porque eso duele a la vista, jajaja.

Los lenguajes de programación por lo general usan alfabeto ingles, y las ñ no les mola a los guiris.

Pero nada compi has empezado perfecto.

Anskhar

  • Visitante
Re:ENTREGA:CU00633B
« Respuesta #4 en: 27 de Agosto 2014, 19:41 »
Muchas gracias!!!!
me apunto lo de las Ñ's  ;D ;D

momo

  • Principiante
  • **
  • Mensajes: 64
    • Ver Perfil
Re:ENTREGA:CU00633B
« Respuesta #5 en: 28 de Agosto 2014, 00:08 »

   Muchas Gracias Alex Rodriguez en realidad estoy comenzando a programar y pues siempre tengo detalles por corregir tomare en cuenta  lo que me dijiste

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".