Tareas 1º – Programación – DAM/DAW e-learning resueltas

Hola a todos, hoy os dejo las tareas de programación de 1º DAM/DAW de e-learning.

Esta es una recopilación de todas las tareas de 1º DAM/DAW que he realizado en mi canal de Youtube.

Pueden haber diferentes tareas según la región o instituto. Si quieres que agregue alguna tarea, contacta conmigo.

Contáctanos

Los enlaces de descarga contienen adfly, para saltar la publicidad, os dejo este video explicando como se hace.

Tarea 1 - V1

Tarea UT1: “Configurar nuestro entorno de programación”

Programación (245 horas)

Esta unidad ha realizado un recorrido por numerosos conceptos teóricos sobre programación, paradigmas, ciclos de vida, etc. para posteriormente centrar nuestra atención en el lenguaje de programación Java, sus características y ventajas. Seguidamente, se ha descrito cómo poder crear programas en Java, compilarlos y ejecutarlos de manera básica. Para finalmente, llevar a cabo estas tareas a través de un entorno integrado de desarrollo fiable y profesional.

Pues bien, en esta tarea tendrás como objetivo realizar las operaciones necesarias para preparar tu ordenador de tal manera que pueda desarrollar programas en el lenguaje Java, compilarlos y ejecutarlos de manera básica, y también a través de un entorno de desarrollo integrado como NetBeans.

Relación de apartados a realizar:

Apartado A:

1. Descarga desde la web recomendada en los contenidos, Java SE (v15) e instálalo en tu equipo.

2. Siguiendo las indicaciones dadas para configurar las variables PATH y CLASSPATH, lleva a cabo la configuración de las mismas, en caso de que sea necesario.

3. Comprueba a través de consola de comandos, que has realizado correctamente la instalación y configuración del JDK y JRE.

4. Crea una carpeta en tu equipo para alojar los ejercicios y programas que se irán generando en cada una de las actividades que se planteen en las unidades de trabajo. Te recomendamos que el nombre de esta carpeta sea sencillo, sin espacios en blanco (puedes sustituirlos por guiones bajos), ni caracteres especiales. Por ejemplo: Ejercicios_Java.

5. En dicha carpeta, crea utilizando algún editor de texto un archivo con extensión “.java” al que debes llamar PROG01_programa1.java. En su interior, basándote en el ejercicio resuelto de la unidad, inserta las líneas necesarias de código Java para obtener por pantalla el siguiente resultado: (No te preocupes si los caracteres acentuados no se muestran correctamente)

Módulo Profesional – PROGRAMACIÓN UNIDAD DE TRABAJO 01
Introducción a la programación
nombre y apellidos del alumno/a Localidad y provincia

Fecha de realización del ejercicio programa1

6. Una vez creado el código fuente, guarda el archivo y, mediante línea de comandos, realiza la compilación del mismo.

7. Comprueba lo que ha ocurrido en la carpeta donde esta el archivo “.java” que acabas de compilar.

8. Realiza la ejecución del programa creado. 9. Visualiza en pantalla los resultados.

10. Si no se ajustan al ejemplo, realiza las modificaciones necesarias sobre el archivo fuente, vuelve a compilarlo y lanza su ejecución otra vez.

Apartado B:

1. Siguiendo las indicaciones de los contenidos de la unidad, descarga desde los enlaces ofrecidos la última versión disponible del IDE NetBeans e instálalo en tu ordenador.

2. Inicia NetBeans, visualiza las partes del entorno y abre el archivo “.java” que habías creado anteriormente.

3. Añade alguna línea más al código fuente o un comentario aclaratorio, compila y ejecuta dicho programa.

4. Observa los resultados en el área reservada para tal efecto en el entorno.

Criterios de puntuación. Total 10 puntos.

Apartado A – 5 puntos
Apartado B – 5 puntos
Total: 10 puntos

Aquí lo puedes descargar.

Tarea 2 - V1

Relación de ejercicios a realizar:

1.- Dados los siguientes identificadores, indicar si son válidos o no. Justificar las respuestas.

  • mi variable
  • num_de_cte
  • ____programa
  • $alguna
  • 3tema
  • cierto?
  • númerodeCliente
  • jose~
  • año
  • PI
  • int

2.- Dado el siguiente programa, modifícalo para utilizar las variables que se indican. El tipo de dato elegido debe ser el de menos bits posibles que puedan representar el valor. Justifica tu elección.

public class ejerciciovariables {
public static void main(String[ ] args) {
}
}

  • Si un empleado está casado o no.
  • Valor máximo no modificable: 999999.
  • Día de la semana
  • Día del año.
  • Sexo: con dos valores posibles ‘V’ o ‘M’
  • Milisegundos transcurridos desde el 01/01/1970 hasta nuestros días.
  • Almacenar el total de una factura
  • Población mundial del planeta tierra.

3.- Realiza las siguientes modificaciones en el programa anterior:

  • Añade comentarios, entre otros:
    • Nombre de clase, descripción y autor
    • Comentario para la clase main y para cada una de las llaves de cierre
  • Utiliza el operador de asignación para inicializar las variables a los valores que se indican en los mensajes.
  • Utiliza la secuencia de escape correspondiente para generar un tabulador al principio de cada línea salvo de la primera
  • Mostrar el siguiente resultado:
    • Usando sólo la orden println:
    • —– EJERCICIO DE VARIABLES Y TIPOS DE DATOS —
    • El valor de la variable casado es true
    • El valor de la variable MAXIMO es 999999
    • El valor de la variable diasem es 1
    • El valor de la variable diaanual es 300
    • El valor de la variable miliseg es 1298332800000
    • El valor de la variable totalfactura es 10350.678
    • El valor de la variable poblacion es 6775235741
    • El valor de la variable sexo es M
    • Usando sólo la orden print:
    • —– EJERCICIO DE VARIABLES Y TIPOS DE DATOS —
    • El valor de la variable casado es true
    • El valor de la variable MAXIMO es 999999
    • El valor de la variable diasem es 1
    • El valor de la variable diaanual es 300
    • El valor de la variable miliseg es 1298332800000
    • El valor de la variable totalfactura es 10350.678
    • El valor de la variable poblacion es 6775235741
    • El valor de la variable sexo es M
    • Usando sólo la orden printf:
    • —– EJERCICIO DE VARIABLES Y TIPOS DE DATOS —–
    • El valor de la variable casado es true
    • El valor de la variable MAXIMO es 999999
    • El valor de la variable diasem es 1
    • El valor de la variable diaanual es 300
    • El valor de la variable miliseg es 1298332800000
    • El valor de la variable totalfactura es 10350,677734
    • El valor de la variable totalfactura en notación científica es 1.035068E+04
    • El valor de la variable poblacion es 6775235741
    • El valor de la variable sexo es M

4.- Indica los errores presentes en el siguiente código:

/
operadoresaritmeticos.java
Programa que muestra el uso de los operadores aritméticos
/
public class operadoresaritmeticos {
public static main(String[] args)
short x = 7;
int y = 5;
float f1 = 13.5;
float f2 = 8f;
System.out.println(“El valor de x es “, x, ” y el valor de y es “, y);
System.out.println(“El resultado de x + y es ” + (x + y));
System.out.println(“El resultado de x – y es ” + (x – y));
System.out.printf(“\n%s%s\n”,”División entera:”,”x / y = “,(x/y));
System.out.println(“Resto de la división entera: x % y = ” + (x % y));
System.out.printf(“El valor de f1 es %f y el de f2 es %f\n”,f1,f2);
System.out.println(“El resultado de f1 / f2 es ” + (f1 / f2))
}

5.- Diseña un programa Java que pida dos números por teclado, determine si el primero es múltiplo del segundo y muestre el resultado.

6.- Diseña un programa Java que cree un tipo enumerado para los meses del año. El programa debe realizar las siguientes operaciones:

  • Crear una variable m del tipo enumerado y asignarle el mes de marzo. Mostrar por pantalla su valor.
  • Asignar a la variable m, la cadena de texto “MARZO”. Mostrar por pantalla el valor de la variable de tipo enumerado tras realizar la asignación.

7.- Diseña un programa Java para resolver una ecuación de primer grado con una incógnita (x), suponiendo que los coeficientes de la ecuación (C1 y C2) se introducen desde teclado.

C1x + C2 = 0

8.- Diseña un programa Java que calcule la suma, resta, multiplicación y división de dos números introducidos por teclado. Incorpora también las funciones que permitan realizar la potencia de un número y la raíz cuadrada del otro. Salida del programa para x=9, y=3:

Introducir primer número: 9

Introducir segundo número: 3

x = 9.0 y = 3.0

x + y = 12.0

x – y = 6.0

x * y = 27.0

x / y = 3.0

x ^ 2 = 81.0

x = 3.0

9.- Diseña un programa Java que solicite un número de 5 dígitos del teclado, separe el número en sus dígitos individuales y los muestre por pantalla. Por ejemplo, si el número es 53123 que muestre:

5 3 1 2 3

Utilizando los operadores aritméticos de la división y el resto según precises.

— Resuelto

1.- Dados los siguientes identificadores, indicar si son válidos o no. Justificar las respuestas.

  • mi variable

Incorrecto, no puede tener espacios

  • num_de_cte

Correcto, empieza por una letra y pueden contener _

  • ____programa

Correcto, puede empezar por _

  • $alguna

Correcto, puede empezar por $

  • 3tema

Incorrecto, no puede empezar por números

  • cierto?

Incorrecto, no puede contener ?

  • númerodeCliente

Correcto, puede haber acentos.

  • jose~

Incorrecto, no se permite esos caracteres

  • año

Correcto, se permite la ñ

  • PI

Correcto, se permiten mayusculas

  • int

Incorrecto, int es una palabra reservada y no se puede usar.

Aquí lo puedes descargar.

Tarea 2 - Extra

Diseña un programa Java denominado PROG02_Ejerc4 que dada la edad de una persona, muestre un mensaje indicando si es mayor de edad. No puede utilizar operador if.

Diseña un programa Java denominado PROG02_Ejerc5 que dado un numero de segundos, muestre en pantalla cuantos minutos, horas y días contiene.

Diseña un programa Java denominado PROG02_Ejerc6 que cree un tipo enumerado para las siguientes razas de perro: Mastin, Terrier, Bulldog, Pekines, Caniche y Galgo. El programa debe realizar las siguientes operaciones:

  • Crea una variable denominada var1 del tipo enumerado. Asígnale un valor.
  • Crea una variable denominada var2 del tipo enumerado. Asígnale un valor.
  • Muestra por pantalla el valor obtenido de comparar ambas variables.

Investiga sobre la posibilidad de averiguar la posición que ocupa un determinado valor en el enumerado así como mostrar la cantidad de valores que contiene. Si lo consigues, muestra la posición de las dos variables en el tipo enumerado.

Diseña un programa Java denominado PROG02_Ejerc8 que dado el número de alumnos matriculados en programación, número de alumnos matriculados en Entornos de desarrollo y número de alumnos matriculados en Base de datos. El programa deberá mostrar el % de alumnos matriculado en cada uno de los tres módulos. Se supone que un alumno solo puede estar matriculado en un módulo. Trata de mostrar un solo decimal en los porcentajes.

Aunque aparentemente los años bisiestos son aquellos que son múltiplo de 4, no es del todo preciso, ya que años como 1900 y como 2100 no fueron, ni serán, bisiestos respectivamente. Existe una explicación física que tiene que ver con que el año del calendario no coincide exactamente, en duración, con año solar. Así, un cálculo más exacto indica que la duración real de un año es de 365,2425 días. Para corregir este desfase, se utiliza el criterio de que se considerara año bisiesto aquel que sea divisible por 4 pero no por 100 salvo que sea divisible por 400. Por esto 1900 no es bisiesto, 1904 si y 2000 también. Diseña un programa Java, denominado PROG02_Ejerc9, que dado un año indique si es bisiesto o no.

Aquí lo puedes descargar.

Tarea 3 - V1

UT3.- Programación orientada a objetos

Enunciado.

En esta unidad has visto las características fundamentales de la programación orientada a objetos y estudiado los conceptos más importantes de este modelo de programación. Has aprendido a crear y manipular objetos, qué son los métodos y cómo se definen los parámetros. También has podido conocer cómo se estructura la Biblioteca de Clases de Java, viendo algunas clases importantes, como por ejemplo las que nos permiten realizar la programación de la consola.

Ejercicio:

  • Construye un nuevo proyecto Java denominado Prog03_1. En el proyecto debe aparecer un paquete, que no puede ser el paquete por defecto, ponle el nombre que creas oportuno. Dentro de dicho paquete:
  • Crea una clase denominada Fecha. Esta clase no debe contener método main.
  • Declara en el fichero de la clase un tipo enumerado, denominado enumMes,para los meses del año.
  • La clase debe contener un atributo para el día, otro para mes (del tipoenumerado declarado) y un tercero para el año.
  • Implementa un constructor que inicialice el mes al valor recibido porparámetro y los demás atributos a 0. Observa su cabecera en el siguiente código:
Fecha (enumMes mes){
  • Declara otro constructor que inicialice todos los atributos de la clase. Su cabecera podría ser la siguiente:
Fecha (int dia, enumMes mes, int anio){
  • Implementa los métodos que permitan acceder y modificar cada uno de los atributos de la clase. Los nombres de dichos métodos serán: getXXX () para obtener el valor del atributo XXX y setXXX (v) para actualizar el atributo XXX con el valor v. Puedes observar la cabecera de algún método en el siguiente código:
public int getDia() {}
public void setDia(int dia) { }

• Implementa un método que devuelva true si el valor contenido en la fecha es verano y false en caso contrario. Observa su cabecera en el siguiente código:

public boolean isSummer(){

No es necesario utilizar estructuras condicionales pues aún no las hemos trabajado. Se puede implementar este método utilizando operadores de comparación.

• Implementa un método que devuelva una cadena con la fecha en formato largo, por ejemplo, 15 de julio de 2020. Observa su cabecera:

public String toString (){

Ya tenemos nuestra clase Fecha implementada. Ahora vamos a probar su funcionalidad desde otra clase, denominadaPrincipal, que contendrá el método main. Esta clase la debes crear en el mismo paquete que la clase Fecha. Dentro de dicha clase:

  1. Instancia un objeto de la clase Fecha denominado objFecha1 con el primer constructor.
  2. Actualiza los atributos dia y año para dicho objeto.
  3. Muestra la fecha por pantalla en formato largo.
  4. Muestra un mensaje por pantalla indicando si la fecha es verano (puedesutilizar el operador de comparación ternario. Punto 5.3 de la Unidad 2).
  5. Instancia otro objeto de la clase Fecha denominando objFecha2 con elsegundo constructor.
  6. Muestra el año de esta fecha por pantalla.
  7. Muestra la fecha en formato largo por pantalla.
  8. Muestra un mensaje por pantalla indicando si la fecha es verano o no.

Observa un ejemplo de ejecución:

Primera fecha, inicializada con el primer constructor La fecha es: 20 de febrero del 2000
No es verano

Segunda fecha, inicializada con el segundo constructor La fecha 2 contiene el año 2015
La fecha es: 15 de julio del 2015
Es verano

BUILD SUCCESSFUL (total time: 0 seconds)

Criterios de puntuación. Total 10 puntos.

1,25 puntos cada apartado

Aquí lo puedes descargar.

Tarea 3 - V2

En esta unidad has visto las características fundamentales de la programación orientada a objetos y estudiado los conceptos más importantes de este modelo de programación. Has aprendido a crear y manipular objetos, qué son los métodos y cómo se definen los parámetros. También has podido conocer cómo se estructura la Biblioteca de Clases de Java, viendo algunas clases importantes, como por ejemplo las que nos permiten realizar la programación de la consola. Para poder realizar la tarea de esta unidad vas a crear dos clases con una estructura básica. Las tareas a realizar se centrarán en la creación de instancias de esas clases, la creación y utilización de unos métodos básicos, y el trabajo con constructores y parámetros.

Para poder realizar la tarea de esta unidad vas a crear dos clases con una estructura básica. Las tareas a realizar se centrarán en la creación de instancias de esas clases, la implementación y utilización de unos métodos básicos, así como el trabajo con constructores con y sin parámetros. Además de realizar entrada de datos por teclado y salida de resultados por consola.

Construye un proyecto en Java en el que se realicen los puntos siguientes:

Crea la clase Artículo en la que se definan los atributos o variables miembros que se indican a continuación:


public class Articulo

{

    private String codigo_barra;
    private String denominacion;
    private int unidades;
    private double precio_compra;
    private int beneficio; // valor entre 0-100
    private double pvp;

    public setCodigo_barra(String codigo_barra) {
       this.codigo_barra =codigo_barra;
    }

    public getCodigo_barra () {
       return this.codigo_barra ;
    }
}

Añade a la clase Articulo los métodos que faltan para poder consultar y modificar el valor de todos los atributos, teniendo en cuenta que son privados a dicha clase. Para ello observa cómo se han creado los métodos del atributo codigo_barra y determina los parámetros y resultado de los demás atributos. Además de los constructores necesarios para realizar lo que se pide en el punto siguiente.

El atributo pvp se calculará a partir del precio de compra y el beneficio que se ha indicado querer obtener, la fórmula sería la siguiente:

pvp= precio_compra+((precio_compra*beneficio)/100)

de tal forma que este atributo nunca se pedirá al usuario, sino que se calculará en la propia clase Articulo a partir de los datos anteriormente citados.

Crea otra clase que se llamará EntradaArticulos, esta clase tendrá un método main donde se declararán 3 objetos de la clase Articulo, uno llamado articulo1 en el que se inicializarán todos sus atributos a través de la entrada por teclado de esos datos, sin utilizar variables intermedias locales dentro del método main, otro objeto articulo2 se instanciará e inicializará llamando al constructor donde se le pasa como parámetros las variables locales declaradas en el método main cuyos valores se han pedido por teclado, y un objeto articulo3 donde se utilizarán los métodos setters con los valores de estas variables locales declaradas anteriormente como locales al método main, y llenadas con valores introducidos desde el teclado.

Una vez que se han instanciado y dado valor a las variables miembros de estos 3 artículos, utilizar los métodos getters para sacarlos por consola, y comprobar que los resultados son los correctos.

(Tened en cuenta que el atributo pvp no se tendría que pasar para ninguno de los 3 artículos declarados anteriormente, y que debéis capturar los errores que se puedan producir para que no se corte el programa).

Aquí lo puedes descargar.

Tarea 4 - V1

Tarea UT4: “Uso de estructuras de control”

Enunciado:

Para afianzar los conocimientos en el uso de estructuras de control de flujo así como de excepciones, vamos a realizar dos programas. Se deberá crear un proyecto en Netbeans diferente para cada uno de los ejercicios propuestos, cuyo nombre será PROG04_EjercX, donde X es el número de ejercicio. Cada proyecto incluirá una sola clase que contendrá un método main. El alumno decidirá si incluir todo el código en el método main o dividirlo en diferentes métodos.

Relación de ejercicios a realizar:

1.- Deseamos implementar un juego en Java que permita al usuario adivinar un número oculto (que será aleatorio). El funcionamiento será el siguiente:

El programa mostrará un pequeño menú en pantalla con las siguientes opciones (1. Configurar, 2. Jugar, 3. Salir).

  • Si el usuario selecciona la primera opción, se le solicitará por teclado el número de intentos permitidos (numInt) y el número máximo (numMax) generado.
  • Si el usuario selecciona la opción 2, el programa generará un número aleatorio entre 0 y numMax que será el número a adivinar (numOculto). A partir de este momento, se le solicitarán al usuario números hasta adivinar el número oculto.

o Si el usuario adivina el número, se mostrará un mensaje “Has ganado!. Has necesitado X intentos”.

o Si se consume el número de intentos sin adivinar el número, se mostrará el mensaje “Perdiste!. Intentos consumidos”.

o En cada intento, si el usuario no adivina el número se le proporcionará una pista, por ejemplo, “El número oculto es menor”.

o En ambos casos, la siguiente acción será mostrar el menú.

  • Si el usuario selecciona Jugar sin configurar previamente el número de intentos y el número máximo generado, se tomarán como valores por defecto: numInt=5 y numMax=10.
  • Si el usuario pulsa la opción 3, el programa finaliza.Para generar un número aleatorio en java puedes utilizar el siguiente código:
    int numOculto = (int)Math.floor(Math.random()*20+1); //genera un número aleatorio entre 0 y 20, ambos incluidos.2.- Cuando dividimos un número entre 0 se genera un valor indeterminado. En cualquier lenguaje de programación este tipo de operaciones genera un error de ejecución que debe ser controlado desde el código para evitar malas experiencias al usuario. En Java, cuando se produce esta operación se genera la excepción ArithmeticException. Queremos implementar un programa Java que calcule la división de dos números solicitados por teclado (dividendo y divisor). El programa solicitará números indefinidamente hasta que los dos números solicitados sean -1. Se debe controlar mediante excepciones que el

divisor no sea 0. En caso de serlo, se mostrará un mensaje por pantalla. También habrá que mostrar por pantalla el número de divisiones calculadas. Utiliza número enteros para las variables.

Importante

  • En la cabecera de las clases añade documentación indicando autor y descripción de la clase.
  • En la cabecera de cada método añade documentación indicando la funcionalidad que implementa y el valor que devuelve.
  • No será necesario realizar comprobaciones de tipos de datos leídos desde teclado. Por ejemplo, si vamos a leer un número, no será necesario comprobar que el valor introducido es un número .Criterios de puntuación. Total 10 puntos.
  1. 6 puntos
  2. 4 puntos

Aquí lo puedes descargar (ejercicio 1).

Aquí lo puedes descargar (ejercicio 2).

Aquí lo puedes descargar la tarea completa.

Tarea 4 - V1

Tarea UT4: “Uso de estructuras de control”
Enunciado:
Para afianzar los conocimientos en el uso de estructuras de control de flujo así como de excepciones, vamos a realizar dos programas. Se deberá crear un proyecto en Netbeans diferente para cada uno de los ejercicios propuestos, cuyo nombre será PROG04_EjercX, donde X es el número de ejercicio. Cada proyecto incluirá una sola clase que contendrá un método main. El alumno decidirá si incluir todo el código en el método main o dividirlo en diferentes métodos.
Relación de ejercicios a realizar:
1.- Deseamos implementar un juego en Java que permita al usuario adivinar un número oculto (que será aleatorio). El funcionamiento será el siguiente:
El programa mostrará un pequeño menú en pantalla con las siguientes opciones (1. Configurar, 2. Jugar, 3. Salir).

  • Si el usuario selecciona la primera opción, se le solicitará por teclado el número de intentos permitidos (numInt) y el número máximo (numMax) generado.
  • Si el usuario selecciona la opción 2, el programa generará un número aleatorio entre 0 y numMax que será el número a adivinar (numOculto). A partir de este momento, se le solicitarán al usuario números hasta adivinar el número oculto.
    • Si el usuario adivina el número, se mostrará un mensaje “Has ganado!. Has necesitado X intentos”.
    • Si se consume el número de intentos sin adivinar el número, se mostrará el mensaje “Perdiste!. Intentos consumidos”.
    • En cada intento, si el usuario no adivina el número se le proporcionará una pista, por ejemplo, “El número oculto es menor”.
    • En ambos casos, la siguiente acción será mostrar el menú.
  • Si el usuario selecciona Jugar sin configurar previamente el número de intentos y el número máximo generado, se tomarán como valores por defecto: numInt=5 y numMax=10.
  • Si el usuario pulsa la opción 3, el programa finaliza.
    Para generar un número aleatorio en java puedes utilizar el siguiente código:
    int numOculto = (int)Math.floor(Math.random()*20+1); //genera un número aleatorio entre 0 y 20, ambos incluidos.

2.- Cuando dividimos un número entre 0 se genera un valor indeterminado. En cualquier lenguaje de programación este tipo de operaciones genera un error de ejecución que debe ser controlado desde el código para evitar malas experiencias al usuario. En Java, cuando se produce esta operación se genera la excepción ArithmeticException. Queremos implementar un programa Java que calcule la división de dos números solicitados por teclado (dividendo y divisor). El programa solicitará números indefinidamente hasta que los dos números solicitados sean -1. Se debe controlar mediante excepciones que el divisor no sea 0. En caso de serlo, se mostrará un mensaje por pantalla. También habrá que mostrar por pantalla el número de divisiones calculadas. Utiliza número enteros para las variables.
Importante

  • En la cabecera de las clases añade documentación indicando autor y descripción
    de la clase.
  • En la cabecera de cada método añade documentación indicando la funcionalidad
    que implementa y el valor que devuelve.
  • No será necesario realizar comprobaciones de tipos de datos leídos desde teclado.
    Por ejemplo, si vamos a leer un número, no será necesario comprobar que el valor
    introducido es un número

Aquí lo puedes descargar (ejercicio 1).

Aquí lo puedes descargar (ejercicio 2).

Aquí lo puedes descargar la tarea completa.

Tarea 5 - V1

Tarea UT5: “Desarrollo de clases”
Enunciado.
A lo largo de esta unidad has ido aprendiendo a crear tus propias clases así como sus distintos miembros (atributos y métodos). Has experimentando con la encapsulación y accesibilidad (modificadores de acceso a miembros), has creado miembros estáticos (de clase) y de instancia (de objeto), has escrito constructores para tus clases, has sobrecargado métodos y los has utilizado en pequeñas aplicaciones. También has tenido tu primer encuentro el concepto de herencia, que ya desarrollarás en unidades más avanzadas junto con otros conceptos avanzados de la Programación Orientada a Objetos. Una vez finalizada la unidad se puede decir que tienes un dominio adecuado del lenguaje Java como para desarrollar tus propias clases y utilizarlas en una aplicación final que sea capaz de manipular un conjunto de datos simple. Dada esa premisa, esta tarea tendrá como objetivo escribir una pequeña aplicación en Java empleando algunos de los elementos que has aprendido a utilizar. Se trata de desarrollar una aplicación Java denominado PROG05 que permita gestionar un vehículo. Mediante un menú que aparecerá en pantalla se podrán realizar determinas operaciones:
1. Nuevo Vehiculo.
2. Ver Matrícula.
3. Ver Número de Kilómetros.
4. Actualizar Kilómetros.
5. Ver años de antigüedad.
6. Mostrar propietario.
7. Mostrar descripción.
8. Mostrar Precio.
9. Salir.
La funcionalidad será la siguiente:

  • Al iniciar la aplicación se mostrará el menú propuesto.
  • Dependiendo de la opción seleccionada por el usuario:
    • Nuevo Vehículo: Se creará un nuevo Vehículo, si los datos introducidos por el usuario son correctos, que contendrá la siguiente información (marca, matrícula, número de kilómetros, fecha de matriculación, descripción, precio, nombre del propietario, dni del propietario). Todos los datos serán solicitados por teclado y tan solo habrá que comprobar:
      • Que la fecha de matriculación es anterior a la actual: puedes solicitar por separado dia, mes y año y construir un objeto LocalDate (tienes una referencia en el apartado Consejos y recomendaciones).
      • Que el número de kilómetros es mayor que 0.
      • Que el DNI del propietario es correcto.
      • Si no se cumple algunas de las condiciones se deberá mostrar el correspondiente mensaje de error. En ese caso habrá que mostrar de nuevo el menú principal.
    • Ver Matrícula: Mostrará la matrícula del vehículo por pantalla.
    • Ver Número de Kilómetros: Mostrará el número de kilómetros por pantalla.
    • Actualiza Kilómetros: Permitirá actualizar el número de kilómetros del vehículo. Habrá que tener en cuenta que solo se podrán sumar kilómetros.
    • Ver años de antigüedad: Mostrará por pantalla el número de años del vehículo desde que se matriculó, no la fecha de matriculación.
    • Mostrar propietario: Mostrará por pantalla el nombre del propietario del vehículo junto a su dni.
    • Mostrar Descripción: Mostrará una descripción del vehículo, incluyendo su matrícula y el número de kilómetros que tiene.
    • Mostrar Pecio: se mostrará el precio del vehículo.
    • Salir: El programa finalizará.

El proyecto de Netbeans constará de dos paquetes, donde se crearán las clases oportunas:

  • PROG05_Ejerc1: que contendrá la clase Vehiculo y la clase Principal.
  • PROG05_Ejerc1_util: contendrá una clase con métodos estáticos para realizar validaciones.
    La clase Vehículo dispondrá de los siguientes métodos:
  • Constructor o constructores.
  • Métodos get y set para acceder a sus propiedades.
  • Método get_Anios(): Retorna un entero con el número de años del vehículo.

TEN EN CUENTA

  • En la clase vehículo no debe solicitar datos por teclado ni escribir datos en pantalla. Esas operaciones se realizarán en la clase Principal.
  • En la clase Vehículo no se deben hacer validaciones de datos. Los datos se validan en la clase Principal y si son correcto, se instancia el objeto Vehículo.
  • Debes incluir una excepción para la validación del DNI. Es decir, cuando no sea válido, se lanzará una excepción que se gestionará en la clase Principal, desde donde se mostrará el correspondiente mensaje de error.
  • La aplicación solo trabajará con un vehículo, por lo tanto, solo utilizará una referencia a un objeto de tipo Vehículo en la clase Principal. Si existe un vehículo y el usuario selecciona Nuevo Vehículo en el menú, se perderá la información del vehículo existente y se guardará la del nuevo.
  • No será necesario realizar comprobaciones de tipo en los datos solicitados por teclado.
  • No se podrán mostrar datos de un vehículo si aún no se ha creado: en ese caso habrá que mostrar un mensaje por pantalla.

Piensa en los modificadores de acceso que debes utilizar tanto en atributos y métodos de la clase. Además del programa deberás escribir también un informe con todas las consideraciones oportunas que se necesiten para entender cómo has realizado la tarea.

Aquí lo puedes descargar la tarea completa.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *