También añado a la clase Libro los siguientes métodos: (que programaré más adelante)



Documentos relacionados
Ejercicio 1 (3 puntos).-

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Estilos. Añadir un Estilo:

Manual para la utilización de PrestaShop

Primer Parcial Septiembre 5 de 2009

APLICACIÓN PARA FACILITAR LA GESTIÓN DE LOS CENTROS UNIVERSITARIOS MANUAL

Modulo 1 El lenguaje Java

AGRUPA P R OBJET E OS 1

Aplicaciones seguras con ClaseSeguridad

Microsoft Dynamics NAV. Actualización Modelo 340

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

GVisualPDA Módulo de Almacén

Contabilidad y Estados Financieros Programas de Gestión

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Patrones para persistencia (I) Ingeniería del Software II

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

Servicio de Informática

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

ALGORITMICA Y PROGRAMACION POR OBJETOS I

Remesas bancarias de Clientes

INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com)

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

EJERCICIOS DEL TEMA 1

Pruebas de unidad con JUnit

Guía nuevo panel de clientes Hostalia

Guía paso a paso para la cumplimentación del formulario de candidatura

Gestión de Retales WhitePaper Noviembre de 2009

MANUAL SINCRONIZADOR LEKOMMERCE FACTUSOL

Procesador de texto Apunte N 7

Gestor de Expedientes 28/09/2010

Examen escrito de Programación 1

CÓMO AÑADIR UN FORMULARIO NUEVO O MODIFICAR EL DE CONTACTO DE LA WEB

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Ejercicios del tema 7: Clases y objetos

PASO 1: Entrada. a FOCO

Manual de usuario investigador

Arquitectura y Diseño de Sistemas Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre de 2015

BÚSQUEDA DE DOCUMENTOS DIGITALIZADOS

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

TUTORIAL FACTURACION ELECTRONICA.

Ejercicios - Persistencia en Android: ficheros y SQLite

AP ERTURA/ CIERRE DE CAJA TP V GN40

Manual Comptavila versión 3

Manual de Procedimiento

Gestión de cuentas de correo Gestión de cuentas de correo

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Dominios y Subtipos en Geodatabase

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC)

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

GESTOR DE DESCARGAS. Índice de contenido

Programación Orientada a Objetos en JAVA

BITÁCORA PREGUNTAS FRECUENTES FORMULARIO REGISTRO

MANUAL DE AYUDA MODULO TALLAS Y COLORES

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

BASE DE DATOS PARA LA REALIZACIÓN DE DIPLOMAS

SINAUTO. (Captura Requirimientos) GRUPO 03

Codex.pro. Módulo de gestión económica.

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

QUE ES UN CUPO? Cupos 1

Manual Oficina Web de Clubes - Federaciones Autono micas y Delegaciones

MANUAL DE USUARIO Y EJEMPLO DE UTILIZACIÓN HERRAMIENTA DLP-DELPHI LEARNING PACKAGE

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Manual Oficina Web de Clubes (FBM)

COLABORACIONES DOCENTES

ADAPTACIÓN A NORMATIVA SEPA

Prototipo de un sistema. interactivo de soporte y ayuda a los compradores de un centro. comercial de equipamiento del hogar

Sistema Ventanilla Manual Solicitud Ingreso de Datos Bancarios Proveedor

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

FOCO- LIQUIDACIÓN: DUDAS MÁS FRECUENTES

Manual del Investigador de OpenClinica

GUÍA PARA INICIAR UN TRÁMITE DESDE LA OFICINA VIRTUAL

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

GUIA BUSQUEDA RAPIDA DE PRODUCTOS

MANUAL DE USUARIO DEL MÓDULO TPV

Manual de Introducción a SIMULINK

Tutorial de manejo de los portafolios de objetivonatural.com. Bienvenidos a Portafolios.objetivonatural.com

Díaz Ramírez Asesores. Guía Rápida para Facturación Electrónica

Con esta nueva versión, si un artículo que está incluido dentro de un Paquete de Ventas tiene precio 0,00, significará gratis.

MANUAL DE INSTALACIÓN

INDICE. Página 2 de 23

Introducción a PHP. * No es necesario declarar previamente las variables.

OFICINA VIRTUAL SAE Minitutorial

Tramitación electrónica de Comunicaciones relativas a Aperturas de Centros de Trabajo

Matrices equivalentes. El método de Gauss

MARFIL CONTABILIDAD ACTUALIZACIÓN FEBRERO 2011

Contenido 1 INTRODUCCIÓN. Universidad Pablo de Olavide, de Sevilla Vicerrectorado de TIC, Calidad e Innovación

MANUAL DE FACTURACIÓN

Caso práctico Alquiler de películas en un vídeo-club

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Cierre y Apertura de ejercicio. Gestión - Contabilidad

CORPME CONSULTAS TÉCNICAS MÁS FRECUENTES

Mensario 2: Manual de importación

MANUAL DE CS-ALMACENES

Transcripción:

1.Creación de la capa de negocios La capa del Dominio de Negocios consta de una clase creada a partir de la tabla Libro a la que le he añadido los atributos no persistentes: CodPais, artic y digcontrol. He decidido que sean de tipo Integer para tener que despreocuparme del hecho de que al declararlos String habría que comprobar que fuesen números. Por otro lado, está decisión hará que, seguramente en algún momento, para tratarlos tendré que usar el método tostring(). También añado a la clase Libro los siguientes métodos: (que programaré más adelante) private void construirisbn(string pais, Integer artic, Integer digito) Primero invocará el otro método para comprobar si el ISBN es correcto y si es así lo construirá, y si no lo es, mandará un mensaje de error. private boolean comprobarisbn(string ISBN) Comprobará según el anexo al examen si el ISBN es correcto. He decidido que el ISBN se construya en el momento que el usuario haya rellenado todos los campos necesarios. Para ello debo modificar los métodos siguientes: public void setartic(integer value) { setattributeinternal(artic, value); //Si se han introducido previamente el código del pais y el dígito de control if (getcodpais()!=null && getdigcontrol()!=null) construirisbn(getcodpais(), value, getdigcontrol()); public void setdigcontrol(integer value) { setattributeinternal(digcontrol, value); //Si se han introducido previamente el código del pais y el articulo if (getartic()!=null && getcodpais()!=null) construirisbn(getcodpais(), getartic(), value);

public void setcodpais(integer value) { setattributeinternal(codpais, value); //Si se han introducido previamente el articulo y el dígito de control if (getartic()!=null && getdigcontrol()!=null) construirisbn(value, getartic(), getdigcontrol()); 2.Creación del modelo de datos A partir del modelo de datos que se genera automáticamente de la capa de negocios, hago una modificaciones. Primero creo el Diagrama del Modelo de Datos, al que le añado un objeto vista ListaCodigosPaises. Este objeto vista nos servirá para crear en la capa de presentación la lista desplegable de países. Además le añado al diagrama el ModuloAplicaciones, que automáticamente lleva asociado LibroView1, y además a éste último le añado el nuevo objeto vista, para que la lista salga en nuestra aplicación.

3.Creación de la capa de presentación Creo un nuevo formulario y le añado los elementos necesarios para que tenga el aspecto necesario. Durante la creación de la lista dinámica he tenido que cambiar el tipo de dato de CodPais a String, para que no me diera problemas. El aspecto final del formulario es:

3.Programación de los métodos Los métodos que he indicado antes quedan finalmente: private void construirisbn(string pais, Integer artic, Integer digito){ String ISBN; ISBN=978+pais+artic+digito; //Más adelante, cuando transformemos a Integer se comprobara que son numeros //ya que si hubiera alguna letra daría una excepción //De todas manera en el único sitio donde podría haber problemas es en pais //y éste viene dado por la tabla CodigoPais, que cabe esperar esté bien construida if (comprobarisbn(isbn)){ setisbn(isbn); System.out.println("El ISBN es:"+getisbn()); else throw new JboException("Los datos proporcionados para el ISBN son erróneos."); private boolean comprobarisbn(string ISBN){ //Compruebo que el ISBN tiene exactamente 13 dígitos: if (ISBN.length()!=13) return false; //Elimino el dígito de control String dato=isbn.substring(0,12); //Sumo los dígitos de lugares pares con los de impares Integer par=0; Integer impar=0; Integer resto=0; par=integer.parseint(dato.substring(1,2))

+Integer.parseInt(dato.substring(3,4)) +Integer.parseInt(dato.substring(5,6)) +Integer.parseInt(dato.substring(7,8)) +Integer.parseInt(dato.substring(9,10)) +Integer.parseInt(dato.substring(11,12)); impar=integer.parseint(dato.substring(0,1)) +Integer.parseInt(dato.substring(2,3)) +Integer.parseInt(dato.substring(4,5)) +Integer.parseInt(dato.substring(6,7)) +Integer.parseInt(dato.substring(8,9)) +Integer.parseInt(dato.substring(10,11)); par=par*3; resto=(impar+par)%10; resto=10-resto; if (resto==10) resto=0; System.out.println (ISBN+ " " + par + " " + impar + " " + resto); if(! ISBN.substring(12).equals(resto.toString())) return false; return true; 3.Pregunta extra Para resolver he creado un método que rellena los campos de los atributos transitorios: private void rellenacampos() { String value = getisbn(); System.out.println ("rellenacampos:"+value); if(getcodpais()==null getartic()==null getdigcontrol()==null){ Integer num= new Integer(8); if (value.substring(3,4).compareto(num.tostring())==0){ System.out.println (value.substring(3,5)+ " "+value.substring(5,12) ); setcodpais(value.substring(3,5)); setartic(integer.parseint(value.substring(5,12))); else{ System.out.println (value.substring(3,4)+ " "+value.substring(4,12) ); setcodpais(value.substring(3,4)); setartic(integer.parseint(value.substring(4,12))); System.out.println (value.substring(12)); setdigcontrol(integer.parseint(value.substring(12))); Este método se invoca cuando se modifica el contenido de la caja del titulo del libro: public String gettitul() { if (getisbn()!=null) rellenacampos(); return (String)getAttributeInternal(TITUL);