martes, 13 de octubre de 2015

SOLUCIÓN DE LA PRIMERA EVALUACIÓN

PREGUNTA 1:

Crea una clase Cuenta (bancaria) con atributos para el número de cuenta (un entero largo), el DNI del cliente (otro entero largo), el saldo actual y el interés anual que se aplica a la cuenta (porcentaje). Define en la clase los siguientes métodos:
a.       Constructor por defecto y constructor con DNI, saldo e interés
b.      Accedentes y mutadores. Para el número de cuenta no habrá mutador.
c.       actualizarSaldo(): actualizará el saldo de la cuenta aplicándole el interés diario (interés anual dividido entre 365 aplicado al saldo actual).
d.      ingresar(double): permitirá ingresar una cantidad en la cuenta.
e.      retirar(double): permitirá sacar una cantidad de la cuenta (si hay saldo).
Método que permita mostrar todos los datos de la cuenta. El número de cuenta se asignará de forma correlativa a partir de 100001, asignando el siguiente número al último asignado.


SOLUCIÓN

package Pregunta1;

public class Cuenta {

    static long numero_de_cuenta = 100001;
    float DNI;
    float saldo_actual;
    float interes_anual;

    //CONSTRUCTOR POR DEFECTO
    public Cuenta() {
    }

    //CONSTRUCTOR CON DNI, SALDO E INTERÉS
    public Cuenta(float DNI, float saldo_actual, float interes_anual) {
        this.DNI = DNI;
        this.saldo_actual = saldo_actual;
        this.interes_anual = interes_anual;
    }

    //ACCEDENTES
    public static long getNumero_de_cuenta() {
        return numero_de_cuenta++;
    }

    public float getDNI() {
        return DNI;
    }

    public float getSaldo_actual() {
        return saldo_actual;
    }

    public float getInteres_anual() {
        return interes_anual;
    }

    //MUTADORES.... Para el número de cuenta no habrá mutador
    public void setDNI(float DNI) {
        this.DNI = DNI;
    }

    public void setSaldo_actual(float saldo_actual) {
        this.saldo_actual = saldo_actual;
    }

    public void setInteres_anual(float interes_anual) {
        this.interes_anual = interes_anual;
    }

    //actualizarSaldo(): actualizará saldo de la cuenta aplicándole el interés diario
    //(interés anual dividido entre 365 aplicado al saldo actual)
    public float actualizarSaldo() {
        float saldo_nuevo;
        saldo_nuevo = saldo_actual + (saldo_actual * ((interes_anual / 100) / 365));
        return saldo_nuevo;
    }

    //ingresar(double): permitirá ingresar una cantidad en la cuenta
    public double ingresar(double cant_ingresada) {
        double nuevo_monto;
        nuevo_monto = actualizarSaldo() + cant_ingresada;
        return nuevo_monto;
    }

    //retirar(double): permitirá sacar una cantidad de la cuenta (si hay saldo)
    public double retirar(double cant_retiro) {
        double nuevo_monto = 0;
        if (this.saldo_actual >= cant_retiro) {
            nuevo_monto = actualizarSaldo() - cant_retiro;
        } else {
            System.out.println("No hay saldo suficiente en su cuenta!!");
        }
        return nuevo_monto;
    }

    //Método que permita mostrar todos los datos de la cuenta. El número de 
    //cuenta se incrementa en 1 por cada cuenta ingresada
    void mostrar(double ing, double ret) {
        System.out.println("Numero de cuenta:" + Cuenta.getNumero_de_cuenta());
        System.out.println("Número de DNI: " + this.DNI);
        System.out.println("Interes anual:" + this.interes_anual);
        System.out.println("Saldo actual:" + actualizarSaldo());
        System.out.println("Saldo despues del ingreso realizado:" + ingresar(ing));
        System.out.println("Saldo despues del retiro realizado:" + retirar(ret));

    }
}

PREGUNTA 2
Crea una clase Libro que modele la información que se mantiene en una biblioteca sobre cada libro: título, autor (usa la clase Persona), ISBN, páginas, edición, editorial , lugar (ciudad y país) y fecha de edición (usa la clase Fecha). La clase debe proporcionar los siguientes servicios: accedentes y mutadores, método para leer la información y método para mostrar la información. Este último método mostrará la información del libro con este formato:
Título: Introductionto Java Programming 3a. edición
Autor: Liang, Y. Daniel
ISBN: 0-13-031997-X Prentice-Hall, New Jersey (USA), viernes 16 de noviembre de 2001
784 páginas.

SOLUCIÓN

 CLASE LIBRO
package Pregunta2;

import java.util.*;


public class Libro {
    String titulo;
    Persona autor;
    String ISBN;
    int paginas;
    String edicion;
    String editorial;
    String lugar;
    Fecha fecha_edicion;

    public Libro() {
    }

    public Libro(String titulo, Persona autor, String ISBN, int paginas, String edicion, String editorial, String lugar, Fecha fecha_edicion) {
        this.titulo = titulo;
        this.autor = autor;
        this.ISBN = ISBN;
        this.paginas = paginas;
        this.edicion = edicion;
        this.editorial = editorial;
        this.lugar = lugar;
        this.fecha_edicion = fecha_edicion;
    }

    //ACCEDENTES Y MUTADORES
    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public Persona getAutor() {
        return autor;
    }

    public void setAutor(Persona autor) {
        this.autor = autor;
    }

    public String getISBN() {
        return ISBN;
    }

    public void setISBN(String ISBN) {
        this.ISBN = ISBN;
    }

    public int getPaginas() {
        return paginas;
    }

    public void setPaginas(int paginas) {
        this.paginas = paginas;
    }

    public String getEdicion() {
        return edicion;
    }

    public void setEdicion(String edicion) {
        this.edicion = edicion;
    }

    public String getEditorial() {
        return editorial;
    }

    public void setEditorial(String editorial) {
        this.editorial = editorial;
    }

    public String getLugar() {
        return lugar;
    }

    public void setLugar(String ciudad,String pais) {
        this.lugar = ciudad+"("+pais+")";
    }

    public Fecha getFecha_edicion() {
        return fecha_edicion;
    }

    public void setFecha_edicion(Fecha fecha_edicion) {
        this.fecha_edicion = fecha_edicion;
    }
    
    //Método para leer la información
    public void leer(Persona p, Fecha f){
        Scanner sc=new Scanner(System.in);
        System.out.println("INGRESE LOS DATOS DEL LIBRO");
        System.out.print("Titulo: ");
        this.titulo=sc.nextLine();
        System.out.println("Datos del autor ");
        System.out.print("Nombre: ");
        p.nombre=sc.nextLine();
        System.out.print("Apellido: ");
        p.apellido=sc.nextLine();
        System.out.print("ISBN del libro: ");
        this.ISBN=sc.nextLine();
        System.out.print("Paginas: ");
        this.paginas=sc.nextInt();
        System.out.print("Edición: ");
        this.edicion=sc.nextLine();
        System.out.print("Editorial: ");
        this.editorial=sc.nextLine();
        System.out.println("Lugar ");
        System.out.print("Ciudad: ");
        String ciudad=sc.nextLine();
        System.out.print("Pais: ");
        String pais=sc.nextLine();
        this.setLugar(ciudad, pais);
        System.out.print("Fecha de edicion ");
        System.out.println("Dia de la semana: ");
        f.día_semana=sc.nextLine();
        System.out.print("Dia del mes: ");
        f.dia_mes=sc.nextInt();
        System.out.print("Mes: ");
        f.mes=sc.nextLine();
        System.out.print("Año: ");
        f.anio=sc.nextInt();
    }
    
    //Método para mostrar la información
    public void mostrar(Persona p, Fecha f){
        System.out.print("Titulo: "+this.titulo+", "+this.edicion);
        System.out.print("\nAutor: "+p.nombre+", "+p.apellido);
        System.out.print("\nISBN: "+this.ISBN+" "+this.editorial+", "+this.lugar+", "+f.día_semana+" "+f.dia_mes+" de "+f.mes+" de "+f.anio);
        System.out.print("\n"+this.paginas+" páginas");
       
    }    
}

CLASE PERSONA
package Pregunta2;

public class Persona {
    String nombre;
    String apellido;

    public Persona() {
    }
    
    public Persona(String nombre, String apellido) {
        this.nombre = nombre;
        this.apellido = apellido;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }   
}

CLASE FECHA
package Pregunta2;

public class Persona {
    String nombre;
    String apellido;

    public Persona() {
    }
    
    public Persona(String nombre, String apellido) {
        this.nombre = nombre;
        this.apellido = apellido;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }   
}


PREGUNTA 3:

Desarrolla una clase CD con los siguientes atributos:
a.       canciones: un array de objetos de la clase Cancion.
b.      contador: la siguiente posición libre del array canciones. y los siguientes métodos:
c.       CD(): constructor predeterminado (creará el array canciones).
d.      numeroCanciones(): devuelve el valor del contador de canciones.
e.      dameCancion(int): devuelve la Cancion que se encuentra en la posición indicada.
f.        grabaCancion(int, Cancion): cambia la Cancion de la posición indicada por la nueva Cancion               proporcionada.
g.       agrega(Cancion): agrega al final del array la Cancion proporcionada.
h.      elimina(int): elimina la Cancion que se encuentra en la posición indicada.

SOLUCIÓN

CLASE CD
package Pregunta3;

import java.util.ArrayList;

public class CD {

    int contador = 0;
    int tamaño_maximo = 20;
    ArrayList canciones  //Array de objetos de la clase Cancion

    //CD(): Costructor predeterminado(creará arrar de canciones
    public CD() {
        canciones = new ArrayList(tamaño_maximo);
    }
    
    //numeroCanciones(): Devuelve el valor del contador de canciones
    public int numeroCanciones() {
        return canciones.size();
    }

    //dameCancion(int):devuelve la Cancion que se encuentra en la posición indicada 
    public Cancion dameCancion(int i) {
        return (Cancion) canciones.get(i);
    }

    //grabaCancion(int,Cancion): cambia la Cancion de la posición indicada por la nueva Cancion proporcionada
    public void grabaCancion(int i, Cancion c) {
        canciones.set(i, c);
    }

    //agrega(Cancion): agrega al final del array la Cancion proporcionada
    public void agrega(Cancion c) {
        canciones.add(c);
    }

    //elimina(int): elimina la Cancion que se encuentra en la posición indicada.
    public void elimina(int i) {
        canciones.remove(i);
    }
  
    public void graba_Cancion(String nombre_cancion, Cancion c) {
        int estado = 0;
        for (int i = 0; i < this.numeroCanciones(); i++) {
            if (dameCancion(i).nombre.equals(nombre_cancion)) {
                estado = 1;
                grabaCancion(i, c);
            }
        }
        if (estado == 0) {
            System.out.println("Cancion no encontrada!!");
        }
    }
  
    public void eliminar_Cancion(String nombre_cancion, Cancion c) {
        int estado = 0;
        for (int i = 0; i < this.numeroCanciones(); i++) {
            if (dameCancion(i).nombre.equals(nombre_cancion)) {
                estado = 1;
                canciones.remove(c);
            }
        }

        if (estado == 0) {
            System.out.println("Cancion no encontrada");
        }
    }
}

CLASE CANCION
package Pregunta3;

public class Cancion {
    String nombre;
    int duracion;
    String autor;

    public Cancion(String nombre, int duracion, String autor) {
        this.nombre = nombre;
        this.duracion = duracion;
        this.autor = autor;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getDuracion() {
        return duracion;
    }

    public void setDuracion(int duracion) {
        this.duracion = duracion;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    public void mostrar(){
        System.out.println("Nombre: "+this.nombre);
        System.out.println("Duracion: "+this.duracion);
        System.out.println("Autor: "+this.autor);
    }
}

10 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. estimado en la clase fecha se confundió colocando la clase persona.

    ResponderEliminar
  3. podrias hacer este ejercicio? es que hay unos cuantos metodos en los que tengo dudas:

    Crea una clase NIF que se usará para mantener DNIs con su correspondiente letra.
    Los atributos serán el número de DNI (entero largo) y la letra que le corresponde.
    La clase dispondrá de los siguientes métodos:
    Constructor predeterminado que inicialice el nº de DNI a 0 y la letra a espacio en
    blanco (será un NIF no válido).
    Constructor que reciba el DNI y establezca la letra que le corresponde.
    Accedentes y mutador para el número de DNI (que ajuste automáticamente la letra).
    leer(): que pida el número de DNI (ajustando automáticamente la letra)
    Método que nos permita mostrar el NIF (ocho dígitos, un guión y la letra en
    mayúscula; por ejemplo: 00395469-F)
    La letra se calculará con un método auxiliar (privado) de la siguiente forma:
    se obtiene el resto de la división entera del número de DNI entre 23 y se usa la
    siguiente tabla para obtener la letra que corresponde:
    0 - T 1 - R 2 - W 3 - A 4 - G 5 - M 6 – Y
    7 - F 8 - P 9 - D 10 - X 11 - B 12 - N 13 – J
    14 - Z 15 - S 16 - Q 17 - V 18 - H 19 - L 20 – C
    21 - K 22 – E




    muchas gracias!

    ResponderEliminar
  4. Crear la clase Cuenta con los siguientes atributos: Número de Cuenta, nombres y Saldo. Esta clase debe tener los métodos para depositar una cantidad, retirar una cantidad.

    puedes hacer este ejercicio

    ResponderEliminar
  5. Crea una clase Cuenta (bancaria) con atributos para el número de cuenta
    (un entero largo), el CI del cliente (cadena de texto), el saldo actual y el interés
    anual que se aplica a la cuenta (porcentaje). Define en la clase los siguientes métodos:
    • Constructor por defecto y constructor con parámetros de CI, saldo e interés
    • Métodos de acceso y modificadores para cada atributo de la clase Cuenta.
    • ActualizarSaldo(): actualizará el saldo de la cuenta aplicándole el interés
    diario (interés anual dividido entre 365 aplicado al saldo actual).
    • Acreditar(double): permitirá depositar una cantidad de dinero en la cuenta.
    • Debitar(double): permitirá sacar una cantidad de dinero de la cuenta (si hay
    saldo suficiente).
    • Método Impresión que nos permita mostrar todos los datos de la cuenta.

    AYUDENME COMO SE REALIZA LA PROGRAMACION EN JAVA POR FAVOR AYUDENME
    CORRE: Rmaster_salinas@hotmail.com

    ResponderEliminar
  6. (Clase cuenta de ahorros): Cree una clase llamada CuentaDeAhorros. Sus atributos son: tasa-InteresAnual (tasa de interés anual para todos los cuentahabientes). el saldoAhorros, que indica la cantidad que el ahorrador tiene actualmente en depósito. Proporcione el método calcularInteresMensual para calcular el interés mensual, multiplicando el saldoAhorros por la tasaInteresAnual dividida entre 12; este interés debe sumarse al saldoAhorros. Proporcione un método modificarTasaInteres para establecer la tasaInteresAnual en un nuevo valor. Escriba un programa para probar la clase CuentaDeAhorros. Cree dos instancias de objetos CuentaDeAhorros, ahorrador1 y ahorrador2, con saldos de $2000.00 y $3000.00, respectivamente. Establezca la tasaInteresAnual en 4%, después calcule el interés mensual e imprima los nuevos saldos para ambos ahorradores. Luego establezca la tasaInteresAnual en 5%, calcule el interés del siguiente mes e imprima los nuevos saldos para ambos ahorradores. Debe realizar las respectivas verificaciones de valores negativos o no permitidos en cada escenario.
    ayudenme con esa epregunta x fa

    ResponderEliminar
  7. Desarrolla una clase CD con los siguientes atributos:
     canciones: un array de objetos de la clase Cancion.
     contador: la siguiente posición libre del array canciones.

    y los siguientes métodos:
     CDInicial(): metodo predeterminado (creará el array canciones).
     numeroCanciones(): devuelve el valor del contador de canciones.
     dameCancion(int): devuelve la Cancion que se encuentra en la posición
    indicada.
     grabaCancion(int, Cancion): cambia la Cancion de la posición indicada por
    la nueva Cancion proporcionada.
     agrega(Cancion): agrega al final del array la Cancion proporcionada.
     elimina(int): elimina la Cancion que se encuentra en la posición indicada

    si me ayudan con este codigo pero en POO ( Programacion Orientada a Objetos ) les agradeceria mucho

    ResponderEliminar
    Respuestas
    1. Buenas tardes, necesito este mismo codigo en POO, de casualidad lo tienes?

      Eliminar
  8. Una compañía editorial produce tanto libros impresos como audio-libros en discos
    compactos. Diseñe una clase denominada Publicación que almacene el título (cadena)
    y el precio (numérico real) de una publicación. A partir de esta clase, derive dos clases:
    Libro a la cual le agregue el número de páginas (entero) y CD, a la cual le agregue el
    tiempo de reproducción en minutos (numérico real).

    ResponderEliminar