Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Página 1 de 39
Tarea para PROG02.
Tarea para PROG02.
Detalles de la tarea de esta unidad.
Enunciado.
En esta unidad hemos tenido la oportunidad de crear nuestro primer programa en Java. Hemos realizado pequeños ejemplos sobre cada apartado tratado, y ahora se
trata de ponerlos en práctica mediante la siguiente relación de ejercicios:
Relación de ejercicios a realizar:
1.- Dados los siguientes identificadores, indicar si son válidos o no. Justificar las respuestas.
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.
// Utilizamos tipos enumerados para crear la clase genero que puede tomar solo un conjunto
determinado de valores.
public enum genero {F, M};
Página 2 de 39
a. Añade comentarios, entre otros:
o Nombre de clase, descripción y autor
o Comentario para la clase main y para cada una de las llaves de cierre
b. Utiliza el operador de asignación para inicializar las variables a los valores que se indican en los mensajes.
c. Utiliza la secuencia de escape correspondiente para generar un tabulador al principio de cada línea salvo de la primera
d. Mostrar el siguiente resultado:
o 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
o 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
o 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
/**
* class ejerciciovariables
* tarea en la que practicamos las variables , comentarios y la salida por consola
* @author Eduardo Hortiguela Aparico
* en este primer comentario servirá para generar documentación automática con javadoc
*/
public class ejerciciovariables {
//Declaramos las variables y las asignamos el valor correspondiente
public static void main(String[] args) {
boolean casado = true;
final int MAXIMO = 999999;
byte diasem = 1;
short diaanual = 300;
char sexo = 'M';
long miliseg = 1298332800000L , poblacion = 6775235741L;
float totalfactura = 10350.678F;
/**
* definimos las distintas variables
* imprimimos por pantalla
* con println nos da el salto de linea automático
* con print tenemos que darlo con \n el salto de linea
* con printf podemos dar distintos formatos a los datos
*/
// println añadimos \t para dar el tabulador
System.out.println("----- EJERCICIO DE VARIABLES Y TIPOS DE DATOS -----");
System.out.println("\tEl valor de la variable casado es "+ casado);
System.out.println("\tEl valor de la variable MAXIMO es "+ MAXIMO);
System.out.println("\tEl valor de la variable diasem es "+ diasem);
System.out.println("\tEl valor de la variable diaanual es "+ diaanual);
System.out.println("\tEl valor de la variable miliseg es "+ miliseg);
System.out.println("\tEl valor de la variable totalfactura es "+ totalfactura);
System.out.println("\tEl valor de la variable poblacion es "+ poblacion);
Página 3 de 39
System.out.println("\tEl valor de la variable sexo es "+ sexo);
1. INCORRECTA: Para añadir comentarios que ocupen más de una línea se ha de comenzar por /*
2. CORRECTA
3. CORRECTA
4. INCORRECTA: Para terminar comentarios que ocupen más de una línea se debe poner */
5. CORRECTA
6. INCORRECTA: Falta incluir la palabra void y un { .La forma correcta sería public static void
main(String[] args) {
7. CORRECTA
8. CORRECTA
Página 4 de 39
9. INCORRECTA: Los valores de las variables float tienen que tener al final una letra f, la forma
correcta de declarar e iniciar f1 sería float f1 = 13.5f;
10. CORRECTA
11. INCORRECTA: Para concatenar elementos se utiliza el operador “+” y no “,” como aparece en el
código. La forma correcta de programar la línea sería System.out.println("El valor de x es "+ x+ " y
el valor de y es "+ y);
12. CORRECTA
13. CORRECTA
14. INCORRECTA: La línea de código incluye 3 argumentos, pero sólo se hace referencia a 2. La forma
correcta de programar la línea es System.out.printf("\n%s%s%d\n","División entera:","x / y = ",(x/y));
15. CORRECTA
16. CORRECTA
17. INCORRECTA: Al final de cada línea de código se debe poner “;” y esta línea no la tiene. Además en
la siguiente línea tendríamos que cerrar el corchete que abrimos (y que tampoco estaba en el código)
después del método main (línea 6).
18. CORRECTA
1. /
2. operadoresaritmeticos.java
3. Programa que muestra el uso de los operadores aritméticos
4. /
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.
import java.util.Scanner;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author CarHerEst
* @date 13-nov-2016
*/
public class prog02_ejer05 {
public static void main(String[] args) { // Metodo principal que inicia el programa.
Scanner teclado = new Scanner(System.in); // Clase Scanner para la introduccion de tados por
teclado.
int x,y; // Declaracion de variables.
String multiplos; // Declaracion de variables.
Página 5 de 39
y = teclado.nextInt(); // Asignación del valor introducido a la
variable y.
System.out.println("Los números " + x + " y " + y + multiplos); // Impresion por pantalla del
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.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author CarHerEst
* @date 13-nov-2016
*/
public class prog02_ejer06 {
public enum meses {Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre,
Noviembre, Dicimbre}; // Creación del tipo enumerado.
public static void main(String[] args) { // Metodo principal que inicia el programa.
meses m = meses.Marzo; // Declaración e iniciación de una variable del tipo enumerado
meses.
System.out.println("El valor de la variable enumerada m es " + m); //Muestra por pantalla
el valor de la variable enumerada.
System.out.println("El valor de la variable m de tipo String es " + String.valueOf(m)); //
Valor de la variable m despues de realizar la asignación a String.
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
import java.util.Scanner; //Importación del paquete necesario para el uso de la clase Scanner.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author CarHerEst
* @date 13-nov-2016
*/
Página 6 de 39
public class prog02_ejer07 {
Scanner teclado = new Scanner(System.in); // Clase Scanner para la introduccion de tados por
teclado.
double c1,c2,x; // Declaracion de variables.
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 numero: 9
Introducir segundo numero: 3
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author CarHerEst
* @date 13-nov-2016
*/
public class prog02_ejer08 {
Página 7 de 39
System.out.println("x + y = "+ (x+y)); //Impresión del valor de la
suma de los números.
System.out.println("x - y = "+ (x-y)); //Impresión del valor de la
resta de los números.
System.out.println("x * y = "+ (x*y)); //Impresión del valor del
producto de los números.
System.out.println("x / y = "+ (x/y)); //Impresion del valor de la
división entera de los números.
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:
53123
import java.util.Scanner; //Importación del paquete necesario para el uso de la clase Scanner.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author CarHerEst
* @date 13-nov-2016
*/
public class prog02_ejer09 {
/* Para obtener los dÃgitos que forman el número introducido, la operación que vamos a
realizar
* es utilizar el operador aritmético resto de la división entera para que al dividir entre
* 10 el resto que obtengamos sea el último dÃgito por la derecha. Después de cada
operación reasignamos a la
Página 8 de 39
* variable "num" el valor de la división entera de el mismo ente 10. Repetimos estas
operaciones
* hasta tener todos los dÃgitos que forman el número.
*/
quinto = digito % 10;
digito = digito / 10;
primero = digito;
System.out.println(primero + " " + segundo + " " + tercero + " " +cuarto + " " + quinto); //
Presetación por pantalla del resultado.
10.- Diseña un programa Java que realice las siguientes operaciones, en el orden que se muestran. Se indica la variable y el tipo de dato que recibe el valor o
resultado de la operación indicada:
Página 9 de 39
short 32767 + 1 = -32768
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author CarHerEst
* @date 14-nov-2016
*/
public class prog02_ejer10 {
double dx = 2.0;
double dz = dx * y;
System.out.println("Producto de float por double: dz = dx * y = " + dz);
byte bx = 5;
byte by = 2;
int bz = bx - by;
bx = -128;
by = 1;
bz = (byte)(bx - by);
short sx = 5;
short sy = 2;
short sz = (short) (sx - sy);
sx = 32767;
sy = 1;
sz = (short)(sx + sy);
char cx = '\u000F';
char cy = '\u0001';
int z = cx - cy;
Página 10 de 39
System.out.println("char " + cx + " - " + cy + " = " + z);
z = cx - 1;
cx = '\uFFFF';
z = cx;
sx = (short)cx;
Página 11 de 39
float altura;
String consulta_Nombre(){
return nombre;
}
void cambia_Nombre(String nom){
nombre=nom;
}
}
La clase debe incluir un método principal que solicite un valor al usuario y lo introduzca en el
atributo nombre, para posteriormente mostrar por pantalla el nuevo valor del atributo.
Añade a la clase Persona los métodos que faltan para poder consultar y modificar el valor de todos los
atributos. Para ello observa cómo se han creado los métodos del atributo nombre y determina los
parámetros y resultado de los demás atributos.
import java.util.Scanner;
nombre = nom;
}
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
String nombre;
} }
nombre="tu nombre"
edad=17
altura=1,87
import java.util.Scanner;
public class Persona {
String nombre;
int edad;
float altura;
String consulta_Nombre() {
return nombre;
}
void cambia_Nombre(String nom) {
nombre = nom;
}
public int consulta_Edad() {
return edad;
}
public void cambia_Edad(int edad) {
this.edad = edad;
}
public float consulta_Altura() {
return altura;
}
public void cambia_Altura(float altura) {
this.altura = altura;
}
Página 12 de 39
Scanner teclado = new Scanner(System.in);
String nombre;
System.out.println("Dame la edad");
miPersona.cambia_Edad(teclado.nextInt());
System.out.println("La nueva edad es " + miPersona.consulta_Edad());
A continuación crea un proyecto que declare un objeto de tipo Persona utilizando el constructor, para
posteriormente mostrar el contenido de sus atributos por pantalla.
Crea un constructor con parámetros para la clase Persona que inicialice los atributos del objeto con
los valores indicados en los parámetros.
import java.util.Scanner;
}}
A continuación crea un proyecto que declare un objeto de tipo Persona utilizando el constructor, para
posteriormente mostrar el contenido de los atributos por pantalla. Utiliza el operador this.
import java.util.Scanner;
public class Persona {
String nombre;
int edad;
Página 13 de 39
float altura;
String consulta_Nombre() {
return nombre;
nombre = nom;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package numeros;
Página 14 de 39
public class Complejo {
double real;
double imag;
public Complejo() {
real=0;
imag=0;
}
@Override
public String toString() {
return "Complejo{ "+real + "+"+ imag + "i}";
}
Página 15 de 39
sanchez_manas_begona_PROG03_Tarea
Grupos separados: 34007007-CAMINO DE L
Sumario de calificaciones
package Tema03_Ejer01;
/**
*
* @author CarHerEst
* @date 11-nov-2018
*/
public class Persona {
String nombre;
int edad;
float altura;
String consulta_Nombre(){
return nombre;
}
package Tema03_Ejer01;
import java.util.Scanner;
/**
*
* @author CarHerEst
* @date 11-nov-2018
*/
System.out.println("Introduce un nombre");
String nombre=scn.nextLine();
miPersona.cambia_Nombre(nombre);
System.out.println("El nombre de la persona es: " + miPersona.consulta_Nombre());
package Tema03_Ejer02;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
public class Persona {
String nombre;
int edad;
float altura;
Página 16 de 39
int getEdad(){
return edad;
}
float getAltura(){
return altura;
}
package Tema03_Ejer02;
import java.util.Scanner;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
System.out.println("Introduce un nombre");
String nombre=scn.nextLine();
miPersona.cambia_Nombre(nombre);
miPersona.setEdad(año);
miPersona.setAltura(alto);
Página 17 de 39
package Tema03_Ejer03;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
public class Persona {
String nombre;
int edad;
float altura;
int getEdad(){
return edad;
}
float getAltura(){
return altura;
}
package Tema03_Ejer03;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
Página 18 de 39
}
package Tema03_Ejer04;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
public class Persona {
String nombre;
int edad;
float altura;
int getEdad(){
return edad;
}
float getAltura(){
return altura;
}
package Tema03_Ejer04;
import java.util.Scanner;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
Página 19 de 39
public static void main(String[] args) {
// TODO code application logic here
package Numeros;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
public class Complejo {
//Atributos de la clase
double real;
double imag;
public Complejo(double real, double imag){ //Constructor que inicia los atributos con los
valores de los parametros.
this.real=real;
this.imag=imag;
}
/*
Metodos GETTER
*/
public double cosultaReal(){ // Devuelve la parte real del objeto.
return real;
}
public double consultaImaginaria(){ // Devuelve la parte imaginaria del objeto.
return imag;
}
public String toString(){
return real + " + " + imag + "i";
}
/*
Metodos SETTER
*/
public void cambiaReal(double real){ // Asigna a la parte real del objeto el valor indicado
en el parámetro real
this.real=real;
}
public void cambiaImaginaria(double imag){ // Asigna a la parte real del objeto el valor
indicado en el parámetro imag
this.imag=imag;
Página 20 de 39
}
public void sumar (Complejo b){ // Operacion suma de numero complejo. Suma la
parte real con la parte real del número complejo "b" y la parte imaginaria con la parte imaginaria del
número complejo "b".
real = real + b.real;
imag = imag + b.imag;
}
}
package Numeros;
import java.util.Scanner;
/**
*
* @author CarHerEst
* @date 15-nov-2018
*/
double aux1 = 2.3 , aux2 = 1.8; // Declaracion e iniciacion de dos variables de tipo double.
Complejo a = new Complejo(); // Creacion de un objeto de la clase complejo utilizando
uno de sus constructores, en este caso el que inicia sus atributos a cero.
Complejo b = new Complejo(4.5,2.0); // Creacion de un objeto de la clase complejo utilizando
uno de sus constructores, en este caso el que inicia sus atributos con los valores 4.5 y 2.0 para la
parte real e imaginaria respectivamente.
Scanner teclado = new Scanner(System.in); //Creacion de un objeto de la clase Scanner para
la entrada de datos por pantalla.
Página 21 de 39
Tarea para PROG04.
Detalles de la tarea de esta unidad.
Enunciado.
A continuación, se enumeran varios supuestos que el alumnado debe solventar a través de la realización un programa por cada uno de los supuestos propuestos.
Supuesto 1: Realiza un programa que lea un número entero e indique si es par.
• Supuesto 2: Realiza un programa que lea un mes en formato numérico y un año e indique el número de días de ese mes. Para realizar este ejercicio hay
que tener en cuenta que un año es bisiesto si es divisible por cuatro, excepto cuando es divisible por 100, a no ser que sea divisible por 400.
• Supuesto 3: Escribe un programa que lea un número y lo descomponga en factores primos.
• Supuesto 4: Escribe un programa que solicite a un usuario su nombre y edad. Debe mostrarse cuantos años tendrá dentro de una década y clasificarle
según su edad en A[0-25], B[26-50], C[51-...].
Lo que debes entregar: En un único archivo, el código fuente de cada uno de los supuestos debidamente identificados.
Cómo lo debes entregar: En formato pdf.
Criterios de puntuación. Total 10 puntos.
• Supuesto 1: 1 punto.
• Supuesto 2: 3 puntos.
• Supuesto 3: 3 puntos.
• Supuesto 4: 3 puntos.
Total: 10 puntos
Recursos necesarios para realizar la Tarea.
• Ordenador personal con un procesador de textos que pueda generar archivos pdf.
• Entorno de desarrollo NetBeans.
• Conexión a Internet.
• Navegador Web.
• Programa de impresión en formato pdf.
Consejos y recomendaciones.
El orden de realización de los supuestos no importa.
Para el supuesto 2 y 3 debes documentarte adecuadamente para conocer en mayor detalle qué es lo que te solicita el enunciado.
El código fuente de cada uno de los supuestos debe estar debidamente identificado y separado de los demás.
Se recomienda que antes de enviar el código fuente hayas realizado la compilación y ejecución de los programas, de este modo evitarás posibles fallos.
Utiliza comentarios a lo largo de tu código.
Utiliza tabulaciones y estructura tu código para que sea lo más legible posible.
Indicaciones de entrega.
Una vez realizada la tarea elaborarás un único documento donde figuren las respuestas correspondientes. El envío se realizará a través de la plataforma de la forma
establecida para ello, y el archivo se nombrará siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la cuarta unidad del
MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG04_Tarea
Página 22 de 39
• Los dígitos de control son válidos.
Además del programa principal de la aplicación (clase con una función main), habrá que escribir una clase CuentaBancaria que proporcione todas las herramientas
necesarias para trabajar con este tipo de información:
• Constructor (o constructores) adecuados.
• Almacenamiento del nombre del titular (atributos).
• Almacenamiento del código de cuenta (atributos).
• Almacenamiento del saldo actual (atributos).
• Gestión de ingresos y depósitos (métodos de interfaz pública).
• Obtención del saldo (métodos de interfaz pública).
• Obtención de información sobre la cuenta: número de la cuenta, entidad, oficina, titular, etc. (métodos de interfaz pública).
• Aquellas herramientas auxiliares necesarias para poder trabajar cómodamente con el objeto. Algunas de esas herramientas podrán ser públicos y otras
quizá no. Algunas podrán ser específicas de clase y otras podrán ser de objeto (métodos de objeto privados, métodos estáticos públicos, etc.).
Para trabajar con el número de cuenta debes utilizar el modelo de Código Cuenta Cliente (CCC), que está formado por cuatro campos: entidad - sucursal - dígito de
control - número de cuenta. La idea es que puedas introducir el código de cuenta completo y que la clase disponga de un mecanismo para comprobar que ese código
es válido. Si el código no es válido, se debería generar una excepción (y por supuesto no almacenar ese código de cuenta). Para ello podrías tener, por ejemplo, un
método estático que permita validar códigos de cuenta.
En general, deberías incluir excepciones para controlar aquellos casos en los que el uso de un método no sea posible (intentar sacar más dinero del que hay en el
saldo, intentar introducir un titular con más caracteres de los permitidos, intentar ingresar o retirar una cantidad negativa, etc.).
El código fuente Java de esta clase debería incluir comentarios en cada atributo (o en cada conjunto de atributos) y método (o en cada conjunto de métodos del
mismo tipo) indicando su utilidad. El programa principal también debería incluir algunos comentarios explicativos sobre su funcionamiento y la utilización de objetos
de la clase CuentaBancaria.
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.
El proyecto deberá contener al menos dos archivos fuente Java:
• Programa principal (clase con método main: AplicacionCuentaBancaria.java).
• La clase CuentaBancaria (CuentaBancaria.java).
El documento que contendrá el informe lo elaborarás con un procesador de texto. Debe ser de tipo ".doc" (Microsoft Word) o de tipo ".odt" (OpenOffice.org). Debe
tener tamaño de página A4, estilo de letra Times New Roman, tamaño 12 e interlineado normal.
Criterios de puntuación. Total 10 puntos.
Para poder empezar a aplicar estos criterios es necesario que la aplicación compile y se ejecute correctamente en un emulador. En caso contrario la puntuación será
directamente de 0,00.
Criterios de puntuación.
La clase CuentaBancaria dispone de todos los atributos necesarios. 1,00
La clase CuentaBancaria dispone de al menos un constructor y funciona correctamente. 1,00
La clase CuentaBancaria dispone de los métodos públicos de interfaz necesarios y funcionan correctamente. 4,00
La clase CuentaBancaria es capaz de validar un CCC. 2,00
Los métodos de la clase CuentaBancaria son capaces de lanzar excepciones si se produce alguna situación anómala. 1,00
La clase CuentaBancaria dispone de métodos estáticos públicos para proporcionar herramientas de gestión útiles al código de fuera de la clase. 1,00
No se han incluido comentarios en la clase CuentaBancaria tal y como se ha pedido en el enunciado. -1,00
No se han incluido comentarios apropiados en el programa principal describiendo el funcionamiento de éste. -1,00
No se ha entregado el informe explicativo o se trata de un informe explicativo insuficiente. -2,00
El programa principal no es capaz de crear un objeto de la clase CuentaBancaria. -5,00
Alguna de las opciones de menú pedidas en el enunciado (menú del programa principal) no funciona correctamente. -1,00 por cada opción
Total 10,00
Dado que algunos criterios de puntuación son negativos, podría suceder que el balance final fuera negativo. En tal caso la puntuación final será simplemente de 0,00.
Recursos necesarios para realizar la Tarea.
• Ordenador personal.
• JDK y JRE de Java SE.
• Entorno de desarrollo NetBeans con las funcionalidades necesarias para desarrollar y emular midlets.
Consejos y recomendaciones.
Para realizar la aplicación te realizamos la siguiente serie de recomendaciones:
• Básate en los diferentes ejemplos que has tenido que probar durante el estudio de la unidad. Algunos de ellos te podrán servir de mucha ayuda, así que
aprovéchalos.
• El ejercicio resuelto de la clase DNI, en el cual se hacen comprobaciones de entrada, puede servirte de base para la comprobación de la validez de un
CCC.
• Puedes obtener información acerca del funcionamiento de la CCC y de cómo calcular los dígitos de control del siguiente artículo de Wikipedia:
Indicaciones de entrega.
Una vez que tengas terminados el programa (carpeta de proyecto Netbeans, incluyendo todos los archivos fuente y todos los recursos) y el documento explicativo,
comprime ambos en un único archivo comprimido. El envío se realizará a través de la plataforma de la forma establecida para ello, y el archivo se nombrará
siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la quinta unidad del
MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG05_Tarea
Página 23 de 39
package aplicacioncuentabancaria;import java.io.*;
//---------------------------------------------------------------
// CLASE AplicacionCuentaBancaria
//---------------------------------------------------------------
// Ejemplo de uso de la clase CuentaBancaria.
//---------------------------------------------------------------
//---------------------------------------------------------------
// MÉTODO main: PROGRAMA PRINCIPAL
//---------------------------------------------------------------
public static void main(String[] args) throws Exception {
// PRESENTACIÓN
// ------------
System.out.printf ("PRUEBA DE USO DE LA CUENTA BANCARIA. \n");
System.out.printf ("------------------------------------\n\n");
// ENTRADA DE DATOS
// ----------------
// Titular
String titular= null;
boolean titularValido= false;
while (!titularValido) {
System.out.println("Nombre del titular de la cuenta: (máximo 20
caracteres)");
try {
titular= lecturaTeclado();
}
catch (Exception e) {
System.err.println(e.getMessage());
}
if (titular.length()>=CuentaBancaria.MIN_LOMG_TITULAR &&
titular.length()<=CuentaBancaria.MAX_LOMG_TITULAR) {
titularValido= true;
}
}
// Número de cuenta
String ccc= null;
boolean cuentaValida= false;
while (!cuentaValida) {
System.out.println("Número de cuenta: (debe ser una cuenta válida)");
ccc= lecturaTeclado ();
cuentaValida= CuentaBancaria.validarCuenta(ccc);
if (!cuentaValida)
System.err.println ("Cuenta no válida.");
// Creación de la cuenta
CuentaBancaria cuenta= null;
boolean fin = false;
try {
cuenta= cuenta= new CuentaBancaria (titular, ccc);
cuentaValida= true;
System.out.println("Cuenta creada");
Página 24 de 39
}
catch (Exception e) {
//System.out.println (e.getMessage());
System.err.println ("Cuenta no válida.");
fin= true;
}
while (!fin) {
Página 25 de 39
cantidad= Double.parseDouble(stringCantidad);
try {
cuenta.ingresar(cantidad);
System.out.printf ("Cantidad de %10.2f euros ingresada.\
n", cantidad);
}
catch (Exception e) {
System.err.println (e.getMessage());
}
break;
case 8:
System.out.printf ("Retirada de efectivo:\n");
System.out.printf ("Cantidad que desea retirar: ");
stringCantidad= lecturaTeclado();
cantidad= Double.parseDouble(stringCantidad);
try {
cuenta.retirar(cantidad);
System.out.printf ("Cantidad de %10.2f euros retirada.\
n", cantidad);
}
catch (Exception e) {
System.err.println (e.getMessage());
}
break;
case 9:
System.out.printf ("Saldo actual: %10.2f\n",
cuenta.obtenerSaldo());
break;
case 0:
System.out.printf ("Fin de la aplicación...\n");
fin = true;
break ;
default:
System.out.println("Selecciona una opción válida.");
}
//---------------------------------------------------------------
// MÉTODO lecturaTeclado: Captura de una cadena de teclado
//---------------------------------------------------------------
private static String lecturaTeclado () throws Exception {
try {
InputStreamReader inputStreamReader = new
InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(inputStreamReader);
String line = reader.readLine();
return line;
}
catch (Exception e) {
throw e;
//---------------------------------------------------------------
Página 26 de 39
// MÉTODO pulsacionTecla: Captura de un tecla de teclado
//---------------------------------------------------------------
private static int pulsacionTecla () throws Exception {
try {
InputStreamReader inputStreamReader = new
InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(inputStreamReader);
int c = reader.read();
return c;
}
catch (Exception e) {
throw e;
//---------------------------------------------------------------
// MÉTODO pulsacionTecla: Captura de un tecla numérica de teclado
// (opción del menú)
//---------------------------------------------------------------
private static int leeOpcion() {
int nOpcion = 10 ;
try {
return (nOpcion) ;
}
package aplicacioncuentabancaria;
Página 27 de 39
//---------------------------------------------------------------
// CLASE CuentaBancaria
//---------------------------------------------------------------
public class CuentaBancaria {
//---------------------------------------------------------------
// ATRIBUTOS
//---------------------------------------------------------------
// Atributos privados que almacenan el "estado" del objeto
private double saldo;
private String titular;
private String entidad;
private String oficina;
private String cuenta;
//---------------------------------------------------------------
// MÉTODOS PRIVADOS
//---------------------------------------------------------------
// Métodos privados que proporcionan funcionalidad auxiliar.
// Método establecerCuenta
private void establecerCuenta (String ccc) {
ccc= CuentaBancaria.normalizarCCC (ccc);
if (CuentaBancaria.validarCuenta(ccc)) {
this.entidad= ccc.substring(0,4);
this.oficina= ccc.substring(4,8);
this.cuenta= ccc.substring(10, 20);
}
}
// Método establecerTitular
private void establecerTitular (String titular) throws Exception {
if (titular!= null) {
if (titular.length() <= 20) {
this.titular= titular;
}
else {
throw new Exception ("Longitud excesiva.");
}
}
else {
throw new Exception ("Cadena vacía.");
}
}
//---------------------------------------------------------------
// CONSTRUCTORES
//---------------------------------------------------------------
// Constructores
public CuentaBancaria (String titular, String ccc) throws Exception {
this.establecerTitular(titular);
this.establecerCuenta(ccc);
}
Página 28 de 39
//---------------------------------------------------------------
// MÉTODOS ESTÁTICOS (DE CLASE) PÚBLICOS
//---------------------------------------------------------------
// utilidades que pueden ser usadas desde fuera
// Método calcular1DC
// Calcula un dígito de control (DC) para un código de 10 dígitos
public static String calcular1DC (String codigo) throws Exception {
String dc;
// Método calcularDigitosControl
// Calcula los dígitos de control de una combinación entidad-oficina-cuenta
(18 dígitos)
public static String calcularDigitosControl (String entidad, String oficina,
String cuenta) throws Exception {
String dc;
String dc1, dc2;
Página 29 de 39
// Una vez que los parámetros cumplen las reglas, calculamos los DC
return dc;
}
// Método ValidarCuenta
// Valida si un código cuenta cliente (entidad-oficina-dc-cuenta) es válido
o no
public static boolean validarCuenta (String ccc) {
boolean valido= true;
String entidad, oficina, dcExtraido, cuenta, dcCalculado="";
if (ccc == null) {
valido= false;
return valido;
}
ccc= CuentaBancaria.normalizarCCC(ccc);
if (ccc.length() == 20 && valido) {
entidad= ccc.substring(0,4);
oficina= ccc.substring(4,8);
dcExtraido= ccc.substring(8, 10);
cuenta= ccc.substring(10, 20);
try {
dcCalculado= CuentaBancaria.calcularDigitosControl(entidad,
oficina, cuenta);
}
catch (Exception e) {
valido= false;
}
if (valido) {
if (dcExtraido.compareTo(dcCalculado) != 0) {
valido= false;
}
}
}
else
valido= false;
return valido;
}
// Método normalizarCCC
// Elimina los posibles guiones de un CCC: entidad-oficina-dc-cuenta
public static String normalizarCCC (String ccc) {
String cccNormalizada;
if (ccc.length() == 23) {
cccNormalizada= ccc.substring(0,4) + ccc.substring(5,9) +
ccc.substring(10,12) + ccc.substring(13, 23);
}
else {
cccNormalizada= ccc;
}
Página 30 de 39
return cccNormalizada;
}
//---------------------------------------------------------------
// MÉTODOS DE INTERFAZ
//---------------------------------------------------------------
// Métodos públicos para manipular los objetos de esta clase
// Método obtenerSaldo
// Para consultar el saldo actual de la cuenta
public double obtenerSaldo () {
return this.saldo;
}
// Método obtenerTitular
public String obtenerTitular () {
return this.titular;
}
// Método obtenerEntidad
public String obtenerEntidad () {
return this.entidad;
}
// Método obtenerOficina
public String obtenerOficina () {
return this.oficina;
}
// Método obtenerCuenta
public String obtenerCuenta () {
return this.cuenta;
}
// Método obtenerDC
public String obtenerDC () throws Exception {
try {
return calcularDigitosControl (this.entidad, this.oficina,
this.cuenta);
}
catch (Exception e) {
throw new Exception ("Cuenta inválida.");
}
}
// Método obtenerCCC
public String obtenerCCC () throws Exception {
String numcuenta="";
try {
numcuenta= this.entidad + this.oficina +
CuentaBancaria.calcularDigitosControl(this.entidad, this.oficina, this. cuenta)
+ this.cuenta;
}
catch (Exception e) {
throw new Exception ("Cuenta inválida.");
}
return numcuenta;
}
// Método obtenerCCCGuiones
// Obtiene el CCC completo de una cuenta en formato "con guiones": entidad-
oficina-dc-cuenta
public String obtenerCCCGuiones () throws Exception {
Página 31 de 39
String numcuenta="";
try {
numcuenta= this.entidad + "-" + this.oficina + "-" +
CuentaBancaria.calcularDigitosControl(this.entidad,
this.oficina, this. cuenta) + "-" + this.cuenta;
}
catch (Exception e) {
throw new Exception ("Cuenta inválida.");
}
return numcuenta;
}
// Método ingresar
// Para ingresar una cantidad en la cuenta
public void ingresar (double cantidad) throws Exception {
if (cantidad >0) {
saldo += cantidad;
}
else {
throw new Exception ("Cantidad no válida.");
}
}
// Método retirar
// Para retirar una cantidad de la cuenta
public void retirar (double cantidad) throws Exception {
if (cantidad<0) {
throw new Exception ("Cantidad no válida.");
}
if (saldo>= cantidad) { // Si el saldo permite retirar esa cantidad
saldo -= cantidad; // Se retira esa cantidad
}
else {
throw new Exception ("Saldo insuficiente.");
}
}
Página 32 de 39
• Borrar cliente. Pedirá al usuario el nif del cliente a borrar, y si existe, lo borrará del fichero.
• Borrar fichero de clientes completamente. Elimina del disco el fichero clientes.dat
• Salir de la aplicación.
Elabora el programa y un documento con un procesador de texto. El documento debe ser de tipo ".doc" (Microsoft Word) o de tipo ".odt" (OpenOffice.org). Debe tener
tamaño de página A4, estilo de letra Times New Roman, tamaño 12 e interlineado normal.
En el documento escribirás un informe sobre todas las consideraciones oportunas que se necesiten para entender cómo has realizado la tarea.
Indicaciones de entrega.
Una vez realizada la tarea elaborarás un único documento donde figuren las respuestas correspondientes. El envío se realizará a través de la plataforma de la forma
establecida para ello, y el archivo se nombrará siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la sexta unidad del
MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG06_Tarea
Indicaciones de entrega.
Una vez que tengas terminados el programa y el documento explicativo, comprime ambas cosas en un único fichero. El envío se realizará a través de la plataforma
de la forma establecida para ello, y el archivo se nombrará siguiendo las siguientes pautas:
Página 33 de 39
apellido1_apellido2_nombre_SIGxx_Tarea.zip
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la septima unidad
del MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG07_Tarea.zip
Página 34 de 39
6. Usa la interfaz Comparator para crear un comparador adecuado. Una opción para comparar los teléfonos es realizar conversión a entero en determinadas
situaciones. En dicho caso, no uses el tipo Integer, es mejor usar el tipo Long, dado que los teléfonos pueden ser números mayores que lo que el tipo Integer soporta.
7. Para ahorrate trabajo, puedes poner los errores detectados como comentarios en el documento XML.
8. Encontrar un teléfono o un correo duplicado no debería detener la ejecución del programa, sino simplemente no insertarlo en el documento XML final. Si
encuentras un duplicado, es conveniente insertar un comentario en el documento XML con la incidencia ocurrida, te servirá para depurar tu código.
9. La solución ronda las 200 líneas de código, aunque se puede hacer en menos de forma elegante. Si tu código supera esa cantidad de líneas, antes de
estar completamente operativo, posiblemente te estés complicando en sobremanera. Puedes usar JOptionPane para ahorrar trabajo de entrada y salida de
información.
10. Usa la clase DOMUtil facilitada en los contenidos para que te sea más fácil manejar el archivo XML.
Clase DOMUtil
Indicaciones de entrega.
Una vez realizada la tarea elaborarás un único documento donde figuren las respuestas correspondientes. El envío se realizará a través de la plataforma de la forma
establecida para ello, y el archivo se nombrará siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la octava unidad del
MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG08_Tarea
Programación
1. Página Principal
2. Mis cursos
3. Programación
4. Tema 9
5. Tarea para PROG09.
Permisos
Registros
Ver libro de calificaciones
Ver/Calificar todas las entregas
Descargar todas las entregas
Tarea para PROG09.
Tarea para PROG09.
Detalles de la tarea de esta unidad.
Enunciado.
A lo largo de esta unidad has terminado de familiarizarte con el resto de conceptos relacionados con la Programación Orientada a Objetos que faltaban por ver de
una manera más formal y con ejemplos explícitos: composición; herencia; clases y métodos abstractos; sobrescritura de métodos; interfaces; polimorfismo; ligadura
dinámica, etc.
Has experimentando con todos estos conceptos y los has utilizado en pequeñas aplicaciones para comprobar su funcionamiento y su utilidad.
Una vez finalizada la unidad se puede decir que tienes ya un dominio adecuado del lenguaje Java como un lenguaje que permite aplicar todas las posibilidades de la
Programación Orientada a Objetos. Dado ese supuesto, esta tarea tendrá como objetivo escribir una pequeña aplicación en Java empleando algunas de las
construcciones que has aprendido a utilizar.
Se trata de desarrollar una aplicación Java que permita gestionar varios tipos de cuentas bancarias. Mediante un menú se podrán elegir determinas operaciones:
1. Abrir una nueva cuenta.
2. Ver un listado de las cuentas disponibles (código de cuenta, titular y saldo actual).
3. Obtener los datos de una cuenta concreta.
4. Realizar un ingreso en una cuenta.
5. Retirar efectivo de una cuenta.
6. Consultar el saldo actual de una cuenta.
7. Salir de la aplicación.
Las cuentas se irán almacenando en alguna estructura en memoria según vayan siendo creadas. Cada cuenta será un objeto de una clase que contendrá la siguiente
información:
• Titular de la cuenta (un objeto de la clase Persona, la cual contendrá información sobre el titular: nombre, apellidos, fecha de nacimiento).
• Saldo actual de la cuenta (número real).
• Número de cuenta (CCC - Código Cuenta Cliente).
• Tipo de interés anual (si se trata de una cuenta de ahorro).
Página 35 de 39
• Lista de entidades autorizadas para cobrar recibos de la cuenta (si se trata de una cuenta corriente).
• Comisión de mantenimiento (para el caso de una cuenta corriente personal).
• Tipo de interés por descubierto (si es una cuenta corriente de empresa).
• Máximo descubierto permitido (si se trata de una cuenta corriente de empresa)
Las cuentas bancarias pueden ser de dos tipos: cuentas de ahorro o bien cuentas corrientes. Las cuentas de ahorro son remuneradas y tienen un determinado tipo
de interés. Las cuentas corrientes no son remuneradas, pero tienen asociada una lista de entidades autorizadas para cobrar recibos domiciliados en la cuenta.
Dentro de las cuentas corrientes podemos encontrar a su vez otros dos tipos: las cuentas corrientes personales, que tienen una comisión de mantenimiento (una
cantidad fija anual) y las cuentas corrientes de empresa, que no la tienen. Además, las cuentas de empresa permiten tener una cierta cantidad de descubierto
(máximo descubierto permitido) y por tanto un tipo de interés por descubierto y una comisión fija por cada descubierto que se tenga. Es el único tipo de cuenta que
permite tener descubiertos.
Cuando se vaya a abrir una nueva cuenta bancaria, el usuario de la aplicación (empleado del banco) tendrá que solicitar al cliente:
• Datos personales: nombre, apellidos, fecha de nacimiento.
• Tipo de cuenta que desea abrir: cuenta de ahorro, cuenta corriente personal o cuenta corriente de empresa.
• Saldo inicial.
Además de esa información, el usuario de la aplicación deberá también incluir:
• Número de cuenta (CCC) de la nueva cuenta. Debe ser válido (habrá que comprobarlo).
• Tipo de interés de remuneración, si se trata de una cuenta de ahorro.
• de mantenimiento, si es una cuenta corriente personal.
• Máximo descubierto permitido, si se trata de una cuenta corriente de empresa.
• Tipo de interés por descubierto, en el caso de una cuenta corriente de empresa.
• Comisión fija por cada descubierto, también para el caso de una cuenta corriente de empresa.
La aplicación deberá asegurarse que la información introducida sea válida y coherente (CCC válido; saldos, comisiones y tipos de interés positivos, etc.).
El programa que escribas debe cumplir al menos los siguientes requisitos:
• Para almacenar los objetos de tipo cuenta podrás utilizar cualquier estructura de almacenamiento que consideres oportuna (ArrayList, Hashtable, etc.).
• Para trabajar con los datos personales, debes utilizar una clase Persona que contenga la información sobre los datos personales básicos del cliente
(nombre, apellidos, fecha de nacimiento).
• Para trabajar con el número de cuenta debes utilizar el modelo de Código Cuenta Cliente (CCC), que es posible que también la ya hayas usado en otras
unidades.
• Para guardar las entidades autorizadas a cobrar recibos debes utilizar una Hashtable que contenga pares de tipo (código de entidad (String), máxima
cantidad autorizada para un recibo).
Aquí tienes un ejemplo de una posible estructura de clases para llevar a cabo la aplicación:
El código fuente Java de cada clase debería incluir comentarios en cada atributo (o en cada conjunto de atributos) y método (o en cada conjunto de métodos del
mismo tipo) indicando su utilidad. El programa principal (clase principal) también debería incluir algunos comentarios explicativos sobre su funcionamiento y la
utilización de objetos de las distintas clases utilizadas.
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.
El proyecto deberá contener al menos los siguientes archivos fuente Java:
• Programa principal (clase con método main: AplicacionCuentaBancaria.java).
• Un archivo por cada clase o interfaz que hayas implementado.
El documento que contendrá el informe lo elaborarás con un procesador de texto. Debe ser de tipo ".doc" (Microsoft Word) o de tipo ".odt" (OpenOffice.org). Debe
tener tamaño de página A4, estilo de letra Times New Roman, tamaño 12 e interlineado normal.
Criterios de puntuación. Total 10 puntos.
Para poder empezar a aplicar estos criterios es necesario que la aplicación compile y se ejecute correctamente en un ordenador. En caso contrario la puntuación
será directamente de 0,00.
Criterios de puntuación.
Existe una clase CuentaBancaria base que proporciona los atributos y métodos necesarios para cualquier tipo de cuenta bancaria genérica. La clase funciona
correctamente. 2,00
Existe una clase CuentaAhorro que proporciona los atributos y métodos necesarios para trabajar con una cuenta de ahorro. La clase funciona correctamente. 2,00
Existe una clase CuentaCorrientePersonal que proporciona los atributos y métodos necesarios para trabajar con una cuenta de corriente personal. La clase funciona
correctamente. 2,00
Existe una clase CuentaCorrienteEmpresa que proporciona los atributos y métodos necesarios para trabajar con una cuenta de corriente de empresa. La clase
funciona correctamente. 2,00
Las clases de tipo cuenta corriente disponen de una colección que contiene la lista de entidades autorizadas para cobrar recibos en esa cuenta. 1,00
Se utiliza algún tipo de colección (Hashtable, ArrayList, etc.) para manipular las cuentas que se van creando durante la ejecución del programa. 1,00
La información de un titular no es almacenada en objetos de la clase Persona que a su vez son almacenados dentro de los objetos de cuenta bancaria. -
1,00
Las clases no son capaces de validar y gestionar correctamente un CCC. -1,00
Los métodos de las clases no son capaces de lanzar excepciones si se produce alguna situación anómala. -1,00
Se utiliza el polimorfismo y la ligadura dinámica para trabajar con las cuentas bancarias y funciona correctamente. 2,00
No se han incluido comentarios en las clases tal y como se ha pedido en el enunciado. -1,00
No se han incluido comentarios apropiados en el programa principal describiendo el funcionamiento de éste. -1,00
No se ha entregado el informe explicativo. -2,00
El programa principal no es capaz de crear objetos de alguno de los tres tipos de cuentas bancarias solicitados (cuenta de ahorro, cuenta corriente personal o cuenta
corriente de empresa). -5,00
Alguna de las opciones de menú pedidas en el enunciado (menú del programa principal) no funciona correctamente. -1,00 por cada opción
Total (máximo) 10,00
Dado que algunos criterios de puntuación son negativos, podría suceder que el balance final fuera negativo. En tal caso la puntuación final será simplemente de 0,00.
Si el balance final es positivo y mayor que 10,00, la puntuación final quedará como 10,00.
Recursos necesarios para realizar la Tarea.
• Ordenador personal.
• JDK y JRE de Java SE.
Página 36 de 39
• Entorno de desarrollo NetBeans con las funcionalidades necesarias para desarrollar y emular aplicaciones Java.
Consejos y recomendaciones.
Para realizar la aplicación te sugerimos las siguientes recomendaciones:
• Básate en los diferentes ejemplos que has tenido que probar durante el estudio de esta unidad y de unidades anteriores. Algunos de ellos te podrán servir
de mucha ayuda, así que aprovéchalos.
• Puedes obtener información sobre del funcionamiento del CCC y cómo calcular los dígitos de control del siguiente artículo de Wikipedia:
Wikipedia: Código Cuenta Cliente.
• Puedes generar cuentas bancarias válidas (o comprobarlas) para hacer pruebas en tu programa desde el siguiente enlace:
Generador/validador de cuentas bancarias.
Indicaciones de entrega.
Una vez que tengas terminados el programa (carpeta de proyecto Netbeans, incluyendo todos los archivos fuente y todos los recursos) y el documento explicativo,
comprime ambos en un único archivo comprimido. El envío se realizará a través de la plataforma de la forma establecida para ello, y el archivo se nombrará
siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la novena unidad
del MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG09_Tarea
Página 37 de 39
Una vez realizada la tarea elaborarás un único documento donde figuren las respuestas correspondientes. El envío se realizará a través de la plataforma de la forma
establecida para ello, y el archivo se nombrará siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la decima unidad
del MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG10_Tarea
Tarea para PROG11.
Tarea para PROG11.
Detalles de la tarea de esta unidad.
Enunciado.
Se trata de hacer una aplicación en Java que acceda a una base de datos MySQL de una notaría y mediante un menú pueda realizar determinadas operaciones. La
base de datos a la que accederemos, por comodidad, será la correspondiente al esquema test, que ya viene por defecto en la instalación de MySQL, y ahí crearemos
las tablas necesarias.
Puedes utilizar un JOptionPane para presentar el menú con las opciones que permita realizar el programa:
• Crear tabla Clientes.
o codCli
o codEsc
• Insertar datos en la tabla Clientes.
o Realizar una consulta de actualización, "Update", sobre un registro previamente insertado, por ejemplo cambiar el teléfono a un cliente, o el nombre.
• Listar el nombre de los clientes que hayan realizado una compraventa (tipo de escritura CPVE).
Elabora el programa y si además de esas opciones que se piden, realizas alguna o algunas otras, entonces elabora también un documento con un procesador de
texto. El documento debe ser de tipo ".doc" (Microsoft Word) o de tipo ".odt" (OpenOffice.org). El documento debe tener tamaño de página A4, estilo de letra Times
New Roman, tamaño 12 e interlineado normal.
En el documento escribirás un informe sobre las opciones adicionales que hayas incluido con las consideraciones oportunas que se necesiten para entender su
utilidad.
Una vez que tengas terminados el programa y el documento explicativo (si lo has elaborado), comprime ambas cosas en un único fichero. El nombre del fichero debe
ser del siguiente estilo: "PROG_T11_Apellido1Apellido2Nombre.zip". Por ejemplo para el alumno Juan Cruz García, el fichero se llamará:
PROG_T11_CruzGarciaJuan_E1.zip
No utilices espacios en blanco, la letra ñ o tildes en el nombre de archivo. Envía el fichero al buzón de tareas para que la corrija tu tutor del módulo.
Criterios de puntuación. Total 10 puntos.
La tarea es la actividad más importante de la unidad, por tanto debemos transmitir al alumnado la trascendencia de responder y elaborar dicha actividad con el
máximo de rigor e interés ya que esta es el principal mecanismo de consolidación de su aprendizaje.
La tarea se evalúa valorándola con 10 puntos.
Recursos necesarios para realizar la Tarea.
Es suficiente con los contenidos y los enlaces que se proporcionan en la propia unidad. Ningún recurso adicional es necesario.
Consejos y recomendaciones.
Te recomendamos que antes de abordar la tarea leas con detenimiento la unidad, consultando los enlaces para saber más y debes conocer que aparecen en la
misma, y aclarando las dudas que te surjan con tu tutor o tutora. Después realiza el examen online de la unidad, y consulta nuevamente las dudas que te surjan. Solo
cuando lo tengas todo claro, deberás abordar la realización de la tarea.
Indicaciones de entrega.
Una vez realizada la tarea elaborarás un único documento donde figuren las respuestas correspondientes. El envío se realizará a través de la plataforma de la forma
establecida para ello, y el archivo se nombrará siguiendo las siguientes pautas:
apellido1_apellido2_nombre_SIGxx_Tarea
Asegúrate que el nombre no contenga la letra ñ, tildes ni caracteres especiales extraños. Así por ejemplo la alumna Begoña Sánchez Mañas para la décimo primera
unidad del MP de PROG, debería nombrar esta tarea como...
sanchez_manas_begona_PROG11_Tarea
Página 38 de 39
Página 39 de 39