Ejercicios de la UD02¶
Actividades¶
-
(Temperatura) Crear una clase llamada Temperatura con dos métodos:
celsiusToFahrenheit. Convierte grados Celsius a Fahrenheit.
\[ F=(1,8*C)+32 \]fahrenheitToCelsius. Convierte grados Fahrenheit a Celsius.
\[ C=\frac{F-32}{1,8} \] -
(Moto) A partir de la siguiente clase:
1 2 3 4 5 6 7 8
public class Moto { private int velocidad; public Moto() { velocidad=0; } }Añade los siguientes métodos:
int getVelocidad(). Devuelve la velocidad del objeto moto.void acelera(int mas). Permite aumentar la velocidad del objeto moto.void frena(int menos). Permite reducir la velocidad del objeto moto.
-
(Rebajas) Crea una clase
Rebajascon un métododescubrePorcentaje()que descubra el descuento aplicado en un producto. El método recibe el precio original del producto y el rebajado y devuelve el porcentaje aplicado. Podemos calcular el descuento realizando la operación: $$ porcentajeDescuento = \frac{precioOriginal-precioRebajado}{precioOriginal} $$ -
(Finanzas) Realiza una clase
Finanzasque convierta dólares a euros y viceversa. Codifica los métodosdolaresToEurosyeurosToDolares. Prueba que dicha clase funciona correctamente haciendo conversiones entre euros y dólares. La clase tiene que tener:- Un constructor
Finanzas()por defecto el cual establece el cambio Dólar-Euro en 1.36. - Un constructor
Finanzas(double cambio), el cual permitirá configurar el cambio Dólar-euro a una cantidad personalizada.
- Un constructor
-
(MiNumero) Realiza una clase
MiNumeroque proporcione el doble, triple y cuádruple de un número proporcionado en su constructor (realiza un método paradoble, otro paratripley otro paracuadruple).(Opcional, no hay puntos) Haz que la clase tenga un método
mainy comprueba los distintos métodos. -
(Numero) Realiza una clase
Numeroque almacene un número entero y tenga las siguientes características:- Constructor por defecto que inicializa a 0 el número interno.
- Constructor que inicializa el número interno.
- Método
anadeque permite sumarle un número al valor interno. - Método
restaque resta un número al valor interno. - Método
getValor. Devuelve el valor interno. - Método
getDoble. Devuelve el doble del valor interno. - Método
getTriple. Devuelve el triple del valor interno. - Método
setNumero. Inicializa de nuevo el valor interno.
-
(Peso) Crea la clase
Peso, la cual tendrá las siguientes características:- Deberá tener un atributo donde se almacene el peso de un objeto en kilogramos. En el constructor se le pasará el peso y la medida en la que se ha tomado ("Lb" para libras, "Li" para lingotes, "Oz" para onzas, "P" para peniques, "K" para kilos, "G" para gramos y "Q" para quintales).
- Deberá de tener los siguientes métodos:
getLibras. Devuelve el peso en libras.getLingotes. Devuelve el peso en lingotes.getPeso. Devuelve el peso en la medida que se pase como parámetro ("Lb" para libras, "Li" para lingotes, "Oz" para onzas, "P" para peniques, "K" para kilos, "G" para gramos y "Q" para quintales).- Para la realización del ejercicio toma como referencia los siguientes datos:
- 1 Libra = 16 onzas = 453 gramos.
- 1 Lingote = 32,17 libras = 14,59 kg.
- 1 Onza = 0,0625 libras = 28,35 gramos.
- 1 Penique = 0,05 onzas = 1,55 gramos.
- 1 Quintal = 100 libras = 43,3 kg.
(Opcional, no hay puntos) Crea además un método
mainpara testear y verificar los métodos de esta clase. -
(Millas) Crea una clase con un método
millasAMetros()que toma como parámetro de entrada un valor en millas marinas y las convierte a metros. Una vez tengas este método escribe otromillasAKilometros()que realice la misma conversión, pero esta vez exprese el resultado en kilómetros.Nota: 1 milla marina equivale a 1852 metros.
-
(Coche) Crea la clase
Cochecon dos constructores. Uno no toma parámetros y el otro sí. Los dos constructores inicializarán los atributosmarcaymodelode la clase. El constructor por defecto (sin parametros) crea el coche "Ford" modelo "C-MAX".(Opcional, no hay puntos) Crea dos objetos (cada objeto llama a un constructor distinto) y verifica que todo funciona correctamente.
-
(Consumo) Implementa una clase
Consumo, la cual forma parte del "ordenador de a bordo" de un coche y tiene las siguientes características:- Atributos:
- kilometros.
- litros. Litros de combustible consumido.
- vmed. Velocidad media.
- pgas. Precio de la gasolina.
- Métodos:
getTiempo. Indicará el tiempo empleado en realizar el viaje.consumoMedio. Consumo medio del vehículo (en litros cada 100 kilómetros).consumoEuros. Consumo medio del vehículo (en euros cada 100 kilómetros).
No olvides crear un constructor para la clase que establezca el valor de los atributos. Elige el tipo de datos más apropiado para cada atributo.
- Atributos:
-
(ConsumoModificadores) Para la clase anterior implementa los siguientes métodos, los cuales podrán modificar los valores de los atributos de la clase:
setKilometrossetLitrossetVmedsetPgas
-
(Restaurante) Un restaurante cuya especialidad son las patatas con carne nos pide diseñar un método (
calcularClientes) con el que se pueda saber cuántos clientes pueden atender con la materia prima que tienen en el almacén. El método recibe la cantidad de patatas y carne en kilos y devuelve el número de clientes que puede atender el restaurante teniendo en cuenta que por cada tres personas, utilizan un dos kilos de patatas y un kilo de carne. -
(RestauranteClase) Modifica el programa anterior creando una clase que permita almacenar los kilos de patatas y carne del restaurante. Implementa los siguientes métodos:
public void addCarne(int x). Añade x kilos de carne a los ya existentes.public void addPatatas(int x). Añade x kilos de patatas a los ya existentes.public int getComensales(). Devuelve el número de clientes que puede atender el restaurante (este es el método del ejercicio anterior).public double getCarne(). Devuelve los kilos de carne que hay en el almacén.public double getPatatas(). Devuelve los kilos de patatas que hay en el almacén.
-
(Proveedor) Crear un clase llamada
Proveedorcon las siguientes propiedades:CIFnombreEmpresadescripcionsectordirecciontelefonopoblacioncodPostalcorreo
Crear para la clase
Proveedorlos métodos:- Constructor que permite crear una instancia con los datos de un proveedor.
- Métodos get (getters).
- Métodos set (setters).
- Método
verificaCorreoque devuelve true si la dirección de correo contiene@. - Método que muestre todos los datos del proveedor.
Crear un método principal
mainejecutable que:- Cree una instancia del objeto
Proveedorllamadoproveedor. - Cambie el sector del
proveedor. - Muestre el sector del
proveedor. - Verifique si el correo es válido.
- Muestre todos los datos del
proveedor.
-
(Producto) Crear una clase llamada
Productocon las siguientes propiedades:codProductonombreProductodescripcioncategoriapesopreciostock
Crear para la clase
Productolos siguiente métodos:Producto: Permite crear una instancia con los datos de un producto.- Getters y Setters para todas las propiedades.
aumentaStock: Permite aumentar el stock de unidades del producto. Se le pasa el dato de unidades que aumentamos.disminuyeStock: Permite disminuir el stock de unidades del producto. Se le pasa el dato de unidades que disminuimos.ivaProducto: Permite calcular el IVA aplicado al precio del producto. Se le pasa el dato del porcentaje de IVA.mostrarDatos: Muestra los datos del producto. (No tiene test)
Crear un método principal
mainejecutable que:- Crear dos instancias de la clase
ProductollamadasproductoHardwareyproductoSoftware. - Mostrar los datos de los dos objetos
Productoque hemos creado. - Aumenta el stock de unidades del
productoHardwareen 12 unidades. - Disminuir el stock de unidades del
productoSoftwareen 5 unidades. - Calcula el IVA de los dos objetos
Productoque hemos creado. - Mostrar los datos de los dos objetos
Producto, así como sus importes de IVA y los precios finales de cada una de las instancias.
-
(Cuenta) Crea una clase llamada
Cuentaque tendrá los siguientes atributos:titularycantidad(puede tener decimales).Al crear una instancia del objeto Cuenta, el titular será obligatorio y la cantidad es opcional. Crea dos constructores que cumplan lo anterior, es decir debemos crear dos métodos constructores con el mismo nombre que será el nombre del objeto.
Crea sus métodos get, set y el método
mostrarDatosque muestre los datos de la cuenta. Tendrá dos métodos especiales:ingresar(double cantidad): se ingresa una cantidad a la cuenta, si la cantidad introducida es negativa, no se hará nada.retirar(double cantidad): se retira una cantidad a la cuenta, si restando la cantidad actual a la que nos pasan es negativa, la cantidad de la cuenta pasa a ser 0 retirando el importe máximo en función de la cantidad disponible en el objeto.
Crear una método principal
mainejecutable:- Crear una instancia del objeto Cuenta llamada
cuentaParticular1con el nombre del titular. - Crear una instancia del objeto Cuenta llamada
cuentaEmpresa1con el nombre del titular y una cantidad inicial de dinero. - Mostrar el titular de la instancia
cuentaParticular1. - Mostrar el saldo de la instancia
cuentaEmpresa1. - Ingresar 1000 € en la instancia
cuentaParticular1. - Retirar 500 € en la instancia
cuentaEmpresa1. - Mostrar los datos de las dos instancias del objeto
Cuenta.
-
(Libro) Crea una clase llamada
Libroque guarde la información de cada uno de los libros de una biblioteca. La clase debe guardar las siguientes propiedades:títuloautoreditorialnúmero de ejemplares totalesnúmero de prestados
La clase contendrá los siguientes métodos:
- Constructor por defecto.
- Constructor con parámetros.
- Métodos Setters/getters.
- Método
prestamoque incremente el atributo correspondiente cada vez que se realice un préstamo del libro. No se podrán prestar libros de los que no queden ejemplares disponibles para prestar. Devuelvetruesi se ha podido realizar la operación yfalseen caso contrario. - Método
devolucionque decremente el atributo correspondiente cuando se produzca la devolución de un libro. No se podrán devolver libros que no se hayan prestado. Devuelvetruesi se ha podido realizar la operación yfalseen caso contrario. - Método
perdidoque decremente el atributo número de ejemplares por perdida de ejemplar. No se podrán perder libros que no tengan ejemplares o no se hayan prestado. Devuelvetruesi se ha podido realizar la operación yfalseen caso contrario. - Método
mostrarDatospara mostrar los datos de los libros.
Crear un método principal
mainejecutable:- Crear una instancia del objeto libro
libroInformatica1con los datos de un libro. - Consultar el título de la instancia
libroInformatica1. - Cambiar la editorial de la instancia
libroInformatica1por Anaya. - Realiza el préstamo de la instancia
libroInformatica1. - Realiza otro préstamo de la instancia
libroInformatica1. - Muestra los prestamos de la instancia
libroInformatica1. - Realiza la devolución de la instancia
libroInformatica1. - Muestra los prestamos de la instancia
libroInformatica1. - Gestiona la pérdida de un ejemplar de la instancia
libroInformatica1. - Muestra los ejemplares de la instancia
libroInformatica1. - Muestra todos los datos de la instancia
libroInformatica1.
-
(Hospital) Crear una clase llamada
Hospitalcon las siguientes propiedades y métodos:-
Propiedades:
codHospitalnombreHospitaldirecciontelefonopoblacioncodPostalhabitacionesTotaleshabitacionesOcupadas
-
Métodos:
Hospital: Permite crear una instancia con los datos de un hospital.- Métodos get.
- Métodos set.
- Método
ingresoque incrementa las habitaciones ocupadas. No puede realizarse el ingreso si las habitaciones ocupadas son iguales a las habitaciones totales del hospital. Devuelvetruesi se ha podido realizar el ingreso. - Método
altaque decrementa las habitaciones ocupadas. No puede realizarse el alta las habitaciones ocupadas son 0. Devuelvetruesi se ha podido realizar el alta. - Método que muestre todos los datos del hospital.
-
Crear un método principal
mainejecutable que:- Cree una instancia de la clase
HospitalllamadahospitalRibera. - Cambie el número de habitaciones de la instancia
hospitalRibera. - Muestre el número de habitaciones de la instancia
hospitalRibera. - Realiza un ingreso de la instancia
hospitalRibera. - Muestra las habitaciones ocupadas de la instancia
hospitalRibera. - Realiza un alta de la instancia
hospitalRibera. - Muestra las habitaciones ocupadas de la instancia
hospitalRibera. - Muestre todos los datos de la instancia
hospitalRibera.
- Cree una instancia de la clase
-
-
(Medico) Crear un clase llamada
Medicocon las siguientes propiedades y métodos:-
Propiedades:
codMediconombreapellidosdnidirecciontelefonopoblacioncodPostalfechaNacimientoespecialidadsueldo
-
Métodos:
- Medico: Permite crear una instancia con los datos de un médico.
- Métodos get. Recuperan datos de la instancia del objeto.
- Métodos set. Asignan datos a la instancia del objeto.
retencionMedico: Permite calcular la retención aplicada al sueldo del médico. Se le pasa el dato del porcentaje de retención.mostrarDatos: Muestra los datos del médico.
-
Crear un método principal
mainejecutable que:- Crear dos instancias de la clase
MedicollamadosmedicoDigestivoymedicoTraumatologo. - Cambia el sueldo del
medicoTraumatologo. - Muestra el sueldo del
medicoTraumatologo. - Cambia el dni del
medicoDigestivo. - Muestra el dni del
medicoDigestivo. - Calcula la retención de las dos instancias de la clase
Medicoque hemos creado. - Mostrar los datos de las dos instancias de la clase
Medicoque hemos creado, así como las retenciones y los sueldos finales de cada una.
- Crear dos instancias de la clase
-
Ejercicios¶
Estos ejercicios utilizan la interfaz gráfica a la que dedicaremos más tiempo hacia finales de curso. De momento con entender algunos conceptos muy básicos de como dibujar elementos gráficos en una ventana podemos intentar resolverlos usando los conceptos de objetos, clases, herencia, métodos, etcétera que hemos visto en teoría.
El primero está resuelto y comentado para que te ayude a resolver el resto por tu cuenta o con la ayuda del docente.
-
(LlenarConCirculo) Crear una pizarra cuadrada y dibujar en ella un círculo que la ocupe por completo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
//importaciones necesarias para los ejercicios, no necesitas más. import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Color; import java.awt.Graphics; /* Necesitamos que nuestra clase LlenarConCirculo herede de JPanel para poder pintar en su interior. */ public class LlenarConCirculo extends JPanel { @Override public void paint(Graphics g) { //Fijamos el color que tendrá la figura g.setColor(Color.RED); /* Dibujamos un ovalo relleno fijando las 4 esquinas que lo delimitan: - x1, y1, x2, y2 En nuestro caso además hacemos uso de la función reflexiva this.getWidth() y this.getHeight() para conocer la anchura y altura (respectivamente) de nuestra ventana. */ g.fillOval(0, 0, this.getWidth(), this.getHeight()); /* Otras funciones disponibles para dibujar son: - fill3DRect(int x, int y, int width, int height, boolean raised) Paints a 3-D highlighted rectangle filled with the current color. - fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) Fills a circular or elliptical arc covering the specified rectangle. - fillOval(int x, int y, int width, int height) Fills an oval bounded by the specified rectangle with the current color. - fillPolygon(int[] xPoints, int[] yPoints, int nPoints) Fills a closed polygon defined by arrays of x and y coordinates. - fillPolygon(Polygon p) Fills the polygon defined by the specified Polygon object with the graphics context's current color. - fillRect(int x, int y, int width, int height) Fills the specified rectangle. - fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) Fills the specified rounded corner rectangle with the current color. - fill3DRect(int x, int y, int width, int height, boolean raised) Paints a 3-D highlighted rectangle filled with the current color. - fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) Fills a circular or elliptical arc covering the specified rectangle. - fillOval(int x, int y, int width, int height) Fills an oval bounded by the specified rectangle with the current color. - fillPolygon(int[] xPoints, int[] yPoints, int nPoints) Fills a closed polygon defined by arrays of x and y coordinates. - fillPolygon(Polygon p) Fills the polygon defined by the specified Polygon object with the graphics context's current color. - fillRect(int x, int y, int width, int height) Fills the specified rectangle. - fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) Fills the specified rounded corner rectangle with the current color. - */ } public static void main(String[] args) { //Creamos una nueva ventana JFrame MainFrame = new JFrame(); //Fijamos su tamaño en 300px de ancho por 300px de alto MainFrame.setSize(300, 300); //Creamos el objeto que vamos a dibujar con el método paint() LlenarConCirculo circlePanel = new LlenarConCirculo(); //Añadimos el objeto recien creado a la ventana MainFrame.add(circlePanel); //Hacemos visible la ventana (con el dibujo) MainFrame.setVisible(true); } }Este es el esquema básico que necesitas para resolver todos los ejercicios planteados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
//importaciones necesarias para los ejercicios, no necesitas más. import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Color; import java.awt.Graphics; /* Necesitamos que nuestra clase herede de JPanel para poder pintar en su interior. */ public class TuClaseEjercicio extends JPanel { @Override public void paint(Graphics g) { // INSERTA TU CÓDIGO AQUÍ!!! <<-- //Fijamos el color que tendrá la figura //Dibuja la/s figura/s que te pide el ejercicio } public static void main(String[] args) { //Creamos una nueva ventana JFrame MainFrame = new JFrame(); //Fijamos su tamaño en 300px de ancho por 300px de alto MainFrame.setSize(300, 300); //Creamos el objeto que vamos a dibujar con el método paint() LlenarConCirculo tuDibujo = new LlenarConCirculo(); //Añadimos el objeto recien creado a la ventana MainFrame.add(tuDibujo); //Hacemos visible la ventana (con el dibujo) MainFrame.setVisible(true); } } -
(LlenarConRectangulo) Crear una pizarra de tamaño aleatorio y dibujar en ella un rectángulo que la ocupe por completo.
-
(MitadYMitad) Crear una pizarra de tamaño aleatorio y dibujar un rectángulo ROJO que ocupe la mitad izquierda y uno VERDE que ocupe la mitad derecha.
-
(Dos partes) Crear una pizarra de tamaño aleatorio y dibujar un rectángulo ROJO que ocupe la parte superior (25% de la altura) y uno VERDE que ocupe la parte inferior (75% restante).
-
(CentrarFiguras) Crear una pizarra de tamaño aleatorio. Dibujar en el centro un cuadrado de lado 100 y un circulo de radio 25.
-
(RadioAleatorioCentrado) Crear una pizarra de tamaño aleatorio. Dibujar en centro de la pizarra un círculo de radio aleatorio (entre 50 y 200 pixels de radio)
-
(RadioAleatorio) Crear una pizarra de tamaño aleatorio. Dibujar en la esquina superior izquierda un círculo de radio aleatorio (entre 50 y 200)