37
E01 / página 1 de 37 / 100280128 E01 OBJETIVO: Simular un Sistema de Información usando las herramientas hasta ahora aprendidas de Java SE 7.0 (NOTA: En esta ocasión usted realizará esta tarea usando la fuerza bruta, a martillazos. En las asignaturas de A&DOO (INF-329) e ISOO(INF-522), se le enseñará la metodología para hacerlo como todo un Ingeniero de Software, desarrollando software). Declaración del problema: Su Negocio.- Requerimientos: - Escriba una narrativa breve, muy breve, no sea muy extensivo en esta parte porque se le podría complicar mucho su proyecto. Solo lo necesario para que el profesor entienda la idea de su negocio. Su narrativa debe tener este formato: NARRATIVA PROYECTO: El nombre del proyecto según instructivos en el grupo (Naming Software Project.doc) DESCRIPCION DEL PROYECTO: < Aquí usted debe incluir no mas de dos líneas que de manera concisa explique su proyecto. ICONO DEL PROYECTO: << usted debe usar un icono que no tenga propietario >> NARRATIVA <Aquí inicia su narrativa> - Identificar la información que usted necesitaría para administrar su negocio; - Identificar las clases con sus atributos y acciones y escribir la notación UML de cada una. - CRC para cada clase; - Acomodar el diseño de las clases para que sus objetos les permitan capturar, almacenar, procesar y mostrar la información necesaria identificada; - Un diagrama UML mostrando la relación (asociación, agregación, composición, herencia, el tipo o los tipos que de relación que usted considere tienen sus clases) entre todas las clases con las cuales usted construirá su aplicación. En éste diagrama UML puede usar solo el cuadro que identifica la clase. - Identificar las clases cuyos objetos requerirán persistencia y escribir su notación UML incluyendo el estereotipo <<ID>> y, luego, escribir la notación UML que mapea cada una de dichas clases a tablas relacionales; - Escribir la aplicación Java que permita: Crear la base de datos Conectarse a la base de datos Crear las tablas relacionales antes identificadas Poblar las tablas Hacer operaciones de mantenimiento (insertar, actualizar y eliminar ) de registros, conforme a la gestión de información que usted identificó como requerimiento en “su negocio”. Espere másUASD/ 2015-10/ INF-514/ Ferreiras V5.0 PF NOMBRE Darlyn Daniel MATRICULA 1 0 0 2 8 0 1 2 8 APELLIDO Victoriano Bremont SECCION 02

Ejemplo de programa con Java

Embed Size (px)

DESCRIPTION

Ok este es un ejemplo con java un buen lenguaje de programación muy usado en la actualidad , oh diablos es que no voy ha legar a los tres puntos de calidad.

Citation preview

E01 / página 1 de 37 / 100280128

E01

OBJETIVO: Simular un Sistema de Información usando las herramientas hasta ahora aprendidas de Java SE 7.0

(NOTA: En esta ocasión usted realizará esta tarea usando la fuerza bruta, a martillazos. En las asignaturas de A&DOO

(INF-329) e ISOO(INF-522), se le enseñará la metodología para hacerlo como todo un Ingeniero de Software, desarrollando software). Declaración del problema: Su Negocio.-

Requerimientos:

- Escriba una narrativa breve, muy breve, no sea muy extensivo en esta parte porque se le podría complicar mucho su

proyecto. Solo lo necesario para que el profesor entienda la idea de su negocio. Su narrativa debe tener este formato:

NARRATIVA

PROYECTO: El nombre del proyecto según instructivos en el grupo (Naming Software Project.doc)

DESCRIPCION DEL PROYECTO: < Aquí usted debe incluir no mas de dos líneas que de manera concisa explique su proyecto.

ICONO DEL PROYECTO: << usted debe usar un icono que no tenga propietario >>

NARRATIVA <Aquí inicia su narrativa>

- Identificar la información que usted necesitaría para administrar su negocio;

- Identificar las clases con sus atributos y acciones y escribir la notación UML de cada una.

- CRC para cada clase;

- Acomodar el diseño de las clases para que sus objetos les permitan capturar, almacenar, procesar y mostrar la información necesaria identificada;

- Un diagrama UML mostrando la relación (asociación, agregación, composición, herencia, el tipo o los tipos que de relación que usted considere tienen sus clases) entre todas las clases con las cuales usted construirá su aplicación. En

éste diagrama UML puede usar solo el cuadro que identifica la clase. - Identificar las clases cuyos objetos requerirán persistencia y escribir su notación UML incluyendo el estereotipo

<<ID>> y, luego, escribir la notación UML que mapea cada una de dichas clases a tablas relacionales;

- Escribir la aplicación Java que permita:

Crear la base de datos

Conectarse a la base de datos

Crear las tablas relacionales antes identificadas

Poblar las tablas

Hacer operaciones de mantenimiento (insertar, actualizar y eliminar ) de registros, conforme a la gestión de información que usted identificó como requerimiento en “su negocio”.

Espere más…

UASD/ 2015-10/ INF-514/ Ferreiras V5.0 PF

NOMBRE Darlyn Daniel MATRICULA

1 0 0 2 8 0 1 2 8

APELLIDO Victoriano Bremont

SECCION 02

E01 / página 2 de 37 / 100280128

1: Por cada requerimiento de estos que usted no cumpla tendrá los correspondientes puntos menos. :-)

ENTREGABLES

EXX

DOCUMENTO % PUNTUACION OBTENIDA.

E01 Estas dos páginas completes con todos sus datos. 5

E02 Narrativa de su negocio. 5

E03 Información que usted identifico necesitara para administrar su negocio 5

E04 Proceso de identificación de clases, atributos y acciones. 5

E05 Diagrama UML mostrando las relaciones entre las clases. 5

E06 CRC de las clases. 5

E07 Notación UML para cada clase completa con todos sus campos y funciones. 5

E08 Diagrama de clases UML incluyendo el estereotipo <<ID>> de las clases cuyos

objetos requerirán persistencia

5

E09 Notación UML de las clases mapeadas a tablas relacionales 5

E10 Código fuente Java de su aplicación cumpliendo con el estándar. Ver en el grupo el archivo JavaCodingStandards.pdf

50

E11 Ejemplos de corridas ( varias corridas ) de su aplicación demostrando que

permite procesar la información que usted identifico en el E03

5

REQUERIMIENTOS PARA RECIBIR SU PROYECTO1

1) Todo en un solo archivo PDF, absolutamente todo.

2) El contenido es en el orden de los entregables

3) Cada entregable Exx debe iniciar en una página centrado con fuente arial y tamaño 96

4) Cada página debe estar identificada en la parte superior derecha así: Exx / página X de Y / matrícula, donde Y se refiere al total de páginas entregadas en el PDF

5) Entrega: enviar a [email protected] en la fecha y hora límite indicada

Después de enviar usted recibirá una confirmación informándole si su archivo PDF se recibió y si se pudo abrir. Debe estar atento a recibir esta confirmación a más tardar en las siguientes 24 horas después de su envío.

6) Fecha y hora límite: Sábado 16-Mayo-2015 hasta las 2400 Hr.

Su archivo PDF debe estar identificado así: 514-SS-PF2015-10-<matrícula>.PDF, donde SS es la sección. Por ejemplo: 514-01-PF2015-10-1000045678.PDF

El asunto del correo con el cual este enviará su trabajo de ser así, por ejemplo:

ASUNTO (SUBJECT): 514-01-PF2015-10-1000045678 (mire bien que no tiene punto ni incluye la extensión PDF) Si usted no cumple estos requerimientos, su trabajo no será recibido, será borrado directamente desde la bandeja de

entrada del manejador de correo y su nota del PF sería un 0.

E02 / página 3 de 37 / 100280128

E02

NARRATIVA

PROYECTO: AdminForest DESCRIPCION DEL PROYECTO: Este software está dirigido a la administración de una empresa maderera. Permitirá

registración datos, actualizar dichos datos y por ultimo permitirá acceder a dichos datos. ICONO DEL PROYECTO:

E03 / página 4 de 37 / 100280128

E03 Para registrar los nuevos empleados necesito:

Cedula del nuevo empleado.

Nombre y apellido del nuevo empleado.

Función que desempeñará el nuevo empleado.

Fecha de contratación.

Salario del nuevo empleado.

Para registrar nuevos proveedores necesito: ID del proveedor. Nombre del proveedor.

Contacto del proveedor.

Tipo de producto ofrecido por el proveedor.

Para registrar los elementos a comprar: Un productor.

Tipo de elemento a comprar.

Para registrar los productos ofrecidos: ID del producto.

Nombre del producto.

Descripción del producto.

Precio del producto.

E04 / página 5 de 37 / 100280128

E04 Elemento Gramatical Elemento del modelo OO

Empleado Clase

cedula Atributo

nombre Atributo

Función Atributo

Fecha de contratación Atributo

Ver Datos Método

Proveedor Clase

ID Atributo

Nombre Atributo

Contacto Atributo

Tipo de producto ofrecido Atributo

Elemento comprar Atributo

Ver Datos Método

Elemento a comprar Clase

Id del elemento a comprar Atributo

Tipo de elemento Atributo

Ver datos Método

Tipos de productos ofrecidos Clase

Id Atributo

Nombre Atributo

Descripción Atributo

Precio Atributo

Ver datos Método

Administrar Empleado Clase

Añadir empleado a la Base de Datos. Método

Actualizar datos del empleado a la Base de Datos. Método

Eliminar empleado de la Base de Datos. Método

Administrar proveedor Clase

Añadir proveedor a la Base de Datos. Método

Eliminar proveedor de la Base de Datos. Método

Administrar elementos a comprar Clase

Añadir elemento a comprar a la Base de Datos. Método

Eliminar elemento a comprar de la Base de Datos. Método

Administrar tipo de elemento Clase

Añadir tipo de elemento a la Base de Datos. Método

Actualizar tipo de elemento a la Base de Datos. Método

Eliminar tipo de elemento de la Base de Datos. Método

Empleado (cedula , nombre , cargo , fechaContratacion ; verDatos() ); Proveedor(id , nombre , contacto , tipoProducto , elementoComprar ; verDatos());

ElementoComprar(id , tipoElemento ; verDatos()) TipoProducto(id , nombre , descripcion , precio ; verDatos());

AdministrarEmpleado(addEmpleado() , actualizarCampos () , borrarFila()); AdministrarProveedor(addProveedor() , borrarFila()); AdministrarElementoComprar(addElementoComprar() , borrarFila());

AdministrarTipoElemento(addTipoElemento() , actualizarCampos() , borrarFila());

E05 / página 6 de 37 / 100280128

E05

E05 / página 7 de 37 / 100280128

E05

0…*

E06 / página 8 de 37 / 100280128

E06

AdminDataBase

Servir de clase base para las clases tipo Administrador.

Permite crear las tablas.

Permite conectar y actualizar la base de

datos.

Permite cerrar la conexión con la base de

datos.

Connection

Statement

Console

Scanner

AdministrarEmpleado

Permite añadir un empleado a la base de datos.

Permite actualizar los campos de un

empleado en la base de datos.

Permite eliminar un empleado de la base de

datos.

AdminDataBase

AdministrarProveedor

Permite añadir un proveedor a la base de

datos.

Permite eliminar un proveedor de la base

de datos.

AdminDataBase

AdministrarElementoComprar

Permite añadir un elemento a comprar en la

base de datos.

Permite eliminar un elemento a comprar de

la base de datos.

AdminDataBase

AdministrarTipoElemento

Permite añadir un tipo de elemento de la

base de datos.

Permite actualizar los campos de un tipo de

elemento en la base de datos.

Permite eliminar un tipo de elemento de la

base de datos.

AdminDataBase

E06 / página 9 de 37 / 100280128

E06 Empleado

Permite representar un empleado de la

empresa.

Permite ver y obtener los datos del

empleado.

Permite introducir un empleado.

Console

Scanner

Empleado

Proveedor

Permite representar un proveedor de la

empresa.

Permite ver y obtener los datos del

proveedor.

Permite introducir un nuevo proveedor.

Console

Scanner

Proveedor

TipoProducto

Permite representar un tipo de producto

producido por la empresa.

Permite ver y obtener los datos del tipo de producto.

Permite introducir un nuevo tipo de producto.

Console

Scanner

TipProducto

ElementoComprar

Permite representar un elemento que la

empresa debe adquirir.

Permite ver y obtener los datos del

elemento que la empresa debe comprar.

Permite introducir un nuevo tipo de

elemento que la empresa debe comprar.

Console

Scanner

ElementoComprar

Proveedor

E07 / página 10 de 37 / 100280128

E07

E07 / página 11 de 37 / 100280128

E07

Ayuda

+ ayudaEmpleado () : void + ayudaProveedor() : void + ayudaElementoComprar() : void

+ ayudaTipoProducto() : void

E08 / página 12 de 37 / 100280128

E08

E09 / página 13 de 37 / 100280128

E09

E10 / página 14 de 37 / 100280128

E10 // PF.java import java.sql.Connection; import java.sql.Statement; import java.sql.DriverManager; import java.sql.ResultSet; import java.io.Console; import java.util.Scanner; abstract class AdminDataBase { /* Clase base para implementar algunas funciones como: -- Crear la DB. -- Cerrar la DB. -- Enviar comandos a la DB. -- Crear las tablas. -- Elementos comunes como lector (Scanner) ^ lector2(Console) */ protected static Connection conn = null; protected static Statement stat = null; protected static Scanner lector = new Scanner(System.in); protected static Console lector2 = System.console(); public static void conectarDataBase() throws Exception { String URL = "jdbc:derby:Admin;create=true"; try { conn = DriverManager.getConnection(URL); stat = conn.createStatement(); } finally{} } // Cierre del metodo conectarBaseDatos. private static void crearTablaEmpleado()throws Exception { // Este metodo permite la creacion de la tabla ralacional empleados. try{ stat.execute("CREATE TABLE EMPLEADOS ( " + "CEDULA VARCHAR(30) NOT NULL PRIMARY KEY , " + "NOMBRE VARCHAR(30) NOT NULL , " + "APELLIDO VARCHAR(30) NOT NULL," + "CARGO VARCHAR(50) NOT NULL," + "FECHACONTRATO VARCHAR(50) NOT NULL , " + "SUELDO DOUBLE NOT NULL) " ); } finally{} } // cierre de metodo crearTablaEm(). private static void crearTablaProveedor()throws Exception {

E10 / página 15 de 37 / 100280128

E10 try{ stat.execute("CREATE TABLE PROVEEDORES ( " + "ID VARCHAR(20) NOT NULL PRIMARY KEY , " + "NOMBRE VARCHAR(20) NOT NULL , " + "CONTACTO VARCHAR(60) NOT NULL," + "TIPOPRODUCTO VARCHAR(20) NOT NULL , " + " FOREIGN KEY (TIPOPRODUCTO) REFERENCES ELEMENTOSCOMPRAR(IDE))" ); } finally{} } private static void crearTablaElementoComprar()throws Exception { try{ stat.execute("CREATE TABLE ELEMENTOSCOMPRAR ( " + "IDE VARCHAR(20) NOT NULL PRIMARY KEY , " + "TIPOELEMENTO VARCHAR(60) NOT NULL)" ); } finally{} } private static void crearTablaTipoProducto()throws Exception { try { stat.execute("CREATE TABLE TIPOSPRODUCTOS ("+ "ID VARCHAR(20) NOT NULL PRIMARY KEY,"+ "NOMBRE VARCHAR(40) NOT NULL ,"+ "DESCRIPCION VARCHAR(80) NOT NULL,"+ "PRECIO DOUBLE NOT NULL)" ); } finally{} } public static void crearTablas()throws Exception { try{ // Metodos para crear todas las tablas. crearTablaElementoComprar (); crearTablaProveedor (); crearTablaEmpleado (); crearTablaTipoProducto (); } finally{} } public static void cerrarDataBase()throws Exception { try{ conn.close(); } finally{}

E10 / página 16 de 37 / 100280128

E10

} // Para cerrar la connecion a la base de datos. } // Cierre de la clase Administrador. // --------------------------------------------------------------------------------------------- // Administrar los recursos Humanos Platilla de empleados. class Empleado { /* Los objetos de esta clase permitiran : - Iniciar los estados del objeto. - Modificar los estados del objeto. - Obtener el valor del estado del objeto. */ // Datos no variantes hacerca de un empleado. private String cedula ; private String nombre ; private String apellido ; private String cargo; private String fechaContrato; private double sueldo; public Empleado ( String cedula , String nombre , String apellido , String cargo , String fechaContrato , double sueldo) { this.cedula = cedula ; this.nombre = nombre ; this.apellido = apellido ; this.cargo = cargo ; this.fechaContrato = fechaContrato; this.sueldo = sueldo ; } public void verDatos() { // Salida de datos invariantes del empleado. System.out.println("Cedula : Nombre : Apellido : Cargo : Fecha Con : Sueldo"); System.out.println( cedula + nombre + apellido + cargo + fechaContrato + sueldo); } // Metodos getter.. public String getCedula () { return cedula ;} public String getNombre () { return nombre ;} public String getApellido () { return apellido ;} public String getCargo () { return cargo ;} public String getFechaContrato () { return fechaContrato ;} public Double getSueldo () { return sueldo ;} // Metodo para introducir un empleado. public static Empleado introducirEmpleado () { System.out.println("Bienvenido a Introducir Empleado : " + "\n"); Console lector = System.console(); Scanner lector2 = new Scanner(System.in);

E10 / página 17 de 37 / 100280128

E10 String cedula = null; String nombre = null; String apellido = null; String cargo = null; String fechaC = null; // Fecha de contratacion; double sueldo = 0.0 ; System.out.print("Cedula : "); cedula = lector.readLine(); System.out.print( "\n"+ "Nombre : "); nombre = lector.readLine(); System.out.print( "\n"+ "Apellido : "); apellido = lector.readLine(); System.out.print( "\n"+ "Cargo : "); cargo = lector.readLine(); System.out.print("\n"+ "Fecha de Contratacion : "); fechaC = lector.readLine(); System.out.print("\n"+ "Sueldo :"); sueldo = lector2.nextDouble(); return new Empleado(cedula ,nombre ,apellido ,cargo ,fechaC ,sueldo); } // Cierre del metodo introducir empleado. } // Cierre de la clase empleado. final class AdministrarEmpleado extends AdminDataBase { /* The purporse of this class in only for : 1 : Permite contratar personal. 2 : Permite modificar el estado del personal. 3 : Permite eliminar personal de la plantilla. */ public static void addEmpleado()throws Exception { // Permite añadir un empleado a la base de datos en la tabla EMPLEADOS. Empleado ep = Empleado.introducirEmpleado(); String a = "'"; String c = ","; String cedula = a + ep.getCedula () + a + c; String nombre = a + ep.getNombre () + a + c; String apellido = a + ep.getApellido () + a + c; String cargo = a + ep.getCargo () + a + c; String fechaC = a + ep.getFechaContrato() + a + c; String sueldo = String.valueOf(ep.getSueldo() ); // double --> String String tupla = "(" + cedula + nombre + apellido + cargo + fechaC + sueldo + ")";

E10 / página 18 de 37 / 100280128

E10

String command = "INSERT INTO EMPLEADOS (CEDULA , NOMBRE , APELLIDO , CARGO , FECHACONTRATO , SUELDO) VALUES " + tupla ; try { stat.execute(command) ;} finally{} } // cierre del metodo addEmpleado. public static void actualizarCampos()throws Exception { String sueldo = null; // Para setear el sueldo. String cargo = null; // Para setear el cargo. String cedula = null; // Para indentificar al empleado. String command = null; // Ejecutar el comando SQL para actualizar el estado del empleado. System.out.print("Introduzca la cedula del empleado a modificar Estatus : "); cedula = "'"+ lector2.readLine() + "'"; System.out.print( "\n" + "Introduza (1) si desea modificar el sueldo : "); if ( 1 == lector.nextShort() ) { System.out.print("Introduzca el nuevo sueldo :"); sueldo = lector2.readLine(); command = "UPDATE EMPLEADOS SET SUELDO="+ sueldo +" WHERE CEDULA="+ cedula; try { stat.execute(command);} finally{} } System.out.print("\n" + "Introduzca (1) si desea modificar el cargo : "); if ( 1 == lector.nextShort() ) { System.out.print("Introduza el nuevo cargo :"); cargo = "'" +lector2.readLine()+ "'"; command = "UPDATE EMPLEADOS SET Cargo="+cargo +" WHERE CEDULA="+ cedula; try { stat.execute(command);} finally{} } } // Cierre del metodo actualizarCampos. public static void borrarFila()throws Exception { System.out.print("Introduzca la cedula de la persona a Borrar : "); String cedula = "'" + lector2.readLine() + "'"; String command = "DELETE FROM EMPLEADOS WHERE CEDULA= " + cedula; try{stat.execute(command) ;} finally{} } public static void verDatosEmpleados()throws Exception { String cedula ;

E10 / página 19 de 37/ 100280128

E10

String nombre ; double sueldo ; String comando = "SELECT CEDULA , NOMBRE , SUELDO FROM EMPLEADOS"; ResultSet result = stat.executeQuery(comando); while(result.next()) { cedula = result.getString("CEDULA"); nombre = result.getString("NOMBRE"); sueldo = result.getDouble("SUELDO" ); System.out.println("CEDULA NOBRE SUELDO"); System.out.println(cedula + " " + nombre + " " + sueldo); } } // cierre del metodo verDatosEmpleados; } // Cierre de la clase AdministrarEmpleado. // --------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------- // Administrar los recursos no Humanos Plantilla de Proveedores. class Proveedor { private String id; private String nombre; private String contacto; private String tipoProducto; public Proveedor(String id , String nombre , String contacto , String tipoProducto) { this.id = id; this.nombre = nombre; this.tipoProducto = tipoProducto; this.contacto = contacto; } public void verDatos() { System.out.println("ID : Nombre : Contacto : Tipo Producto"); System.out.println(id + " " + nombre + " " + contacto + " " + tipoProducto); } public String getId() {return id;} public String getNombre() {return nombre;} public String getTipoProducto(){return tipoProducto;} public String getContacto() {return contacto;} public static Proveedor introducirProveedor() { System.out.println("Bienvenido a Introducir Proveedor : " + "\n");

E10 / página 20 de 37 / 100280128

E10

// Para la entrada. Console lector2 = System.console(); System.out.print("ID : "); String id = lector2.readLine(); System.out.print("Nombre : "); String nombre = lector2.readLine(); System.out.print("Contacto : "); String contacto = lector2.readLine(); System.out.print("Tipo del Producto : "); String tipoProducto = lector2.readLine(); return new Proveedor(id ,nombre , contacto , tipoProducto); } // Cierre del metodo introducir proveedor. } // Cierre de la clase Proveedor. final class AdministrarProveedor extends AdminDataBase { public static void addProveedor()throws Exception { Proveedor pr = Proveedor.introducirProveedor(); String a = "'"; String c = ","; String id = a + pr.getId () + a + c; String nombre = a + pr.getNombre () + a + c; String contacto = a + pr.getContacto () + a + c; String tipoProducto = a + pr.getTipoProducto () + a ; String tupla = "(" + id + nombre + contacto + tipoProducto +")"; String command = "INSERT INTO PROVEEDORES (ID , NOMBRE , CONTACTO , TIPOPRODUCTO) VALUES " + tupla ; try { stat.execute(command) ;} finally{} } // cierre del metodo addProveedor. public static void borrarFila()throws Exception { System.out.print("Introduzca el ID del proveedor a eliminar : "); String id = "'" + lector2.readLine() + "'"; String command = "DELETE FROM PROVEEDORES WHERE ID= " + id; try{stat.execute(command) ;} finally{} }

E10 / página 21 de 37 / 100280128

E10

public static void verDatosProveedores()throws Exception { String id ; String tipoProducto ; String comando = "SELECT ID, TIPOPRODUCTO FROM PROVEEDORES , ELEMENTOSCOMPRAR WHERE IDE = TIPOPRODUCTO"; ResultSet result = stat.executeQuery(comando); while(result.next()) { id = result.getString("ID"); tipoProducto = result.getString("TIPOPRODUCTO"); System.out.println("ID TIPOPRODUCTO"); System.out.println(id + " " + tipoProducto ); } } // cierre del metodo verDatosProveedores; } // Cierre de la clase AdministrarProveedor // --------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------- // Administrar los recursos no Humanos Plantilla de productos a comprar. class ElementoComprar { private String ide; private String tipoElemento; public ElementoComprar(String ide , String tipoElemento) { this.ide = ide; this.tipoElemento = tipoElemento; } public void verDatos() { System.out.println("ID : Tipo de Elemento(Producto)"); System.out.println(ide + " " + tipoElemento); } public String getIde() {return ide ;} public String getTipoElemento(){return tipoElemento;} public static ElementoComprar introducirElementoComprar() { System.out.println("Bienvenido a Introducir Elemento Comprar : " + "\n"); Console lector2 = System.console(); System.out.print("ID : ");

E10 / página 22 de 37 / 100280128

E10

String ide = lector2.readLine(); System.out.print("\n" + "Tipo Elmento(Producto) : "); String tipoElemento = lector2.readLine(); return new ElementoComprar(ide ,tipoElemento); } } // Cierre de la clase final class AdministrarElementoComprar extends AdminDataBase { private static String a = "'"; public static void addElementoComprar()throws Exception { ElementoComprar ec = ElementoComprar.introducirElementoComprar(); String c = ","; String ide = a + ec.getIde () + a + c; String tipoElemento = a + ec.getTipoElemento () + a; String tupla = "(" + ide + tipoElemento + ")"; String command = "INSERT INTO ELEMENTOSCOMPRAR (IDE , TIPOELEMENTO) VALUES " + tupla ; try { stat.execute(command) ;} finally{} } // cierre del metodo addElementoComprar. public static void borrarFila()throws Exception { System.out.print("Introduzca el IDE del producto A COMPRAR QUE DESEA Borrar : "); System.out.print("Desea borrar un Elemento Comprar(0|1) : " + "\n"); if ( 1 == lector.nextShort()){ String ide = a + lector2.readLine() + a ; String command = "DELETE FROM ELEMENTOSCOMPRAR WHERE IDE= " + ide; try{stat.execute(command) ;} finally{} } } } // Cierre de la clase AdministrarElmentoComprar // --------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------- // Administrar los recursos no Humanos Plantilla de los tipos dr productos ofrecidos. class TipoProducto {

E10 / página 23 de 37 / 100280128

E10

private String id; private String nombre; private String descripcion; private double precio; public TipoProducto(String id , String nombre , String descripcion , double precio) { this.id = id; this.nombre = nombre; this.descripcion = descripcion; this.precio = precio; } public void verDatos() { System.out.println("ID : Nombre : Descripcion : Precio"); System.out.println(id + " "+ nombre + " " + descripcion + " " + precio ); } public String getId() {return id;} public String getNombre() {return nombre;} public String getDescripcion(){return descripcion;} public double getPrecio() {return precio;} public static TipoProducto introducirTipoProducto() { // Para la entrada. // Serras utilizado por addTipoProducto() System.out.println("Bienvenido a Introducir un Tipo de Producto : " + "\n"); Scanner lector = new Scanner(System.in); Console lector2 = System.console(); System.out.print("ID : "); String id = lector2.readLine(); System.out.print( "\n" + "Nombre : "); String nombre = lector2.readLine(); System.out.print("\n" + "Descripcion : "); String descripcion = lector2.readLine(); System.out.print("\n" + "Precio del producto : "); double precio = lector.nextDouble(); return new TipoProducto(id ,nombre , descripcion , precio); } } // Cierre de la clase TipoProducto final class AdministrarTipoProducto extends AdminDataBase { public static void addTipoProducto()throws Exception {

E10 / página 24 de 37 / 100280128

E10

TipoProducto tp = TipoProducto.introducirTipoProducto(); String a = "'"; String c = ","; String id = a + tp.getId () + a + c; String nombre = a + tp.getNombre () + a + c; String descripcion = a + tp.getDescripcion () + a + c; String precio = String.valueOf(tp.getPrecio()); String tupla = "(" + id+ nombre + descripcion + precio + ")"; String command = "INSERT INTO TIPOSPRODUCTOS (ID , NOMBRE , DESCRIPCION , PRECIO) VALUES " + tupla ; try { stat.execute(command) ;} finally{} } // cierre del metodo addEmpleado. public static void actualizarCampos()throws Exception { String descripcion = null; // Para setear la descripcion del Tproducto. String precio = null; // Para setear el precio del Tproducto. String id = null; String command = null; System.out.print("Introduzca el ID del producto a modificar Estatus : "); id = "'"+ lector2.readLine() + "'"; System.out.print( "\n" + "Introduza (1) si desea modificar el precio : "); if ( 1 == lector.nextShort()) { System.out.print("Introduzca el nuevo precio :"); precio = lector2.readLine(); command = "UPDATE TIPOSPRODUCTOS SET PRECIO="+ precio +" WHERE ID="+ id; try { stat.execute(command);} finally{} } System.out.print("\n" + "Introduzca (1) si desea modificar la descripcion : "); if ( 1 == lector.nextShort() ) { System.out.print("Introduza la nueva descripcion :"); descripcion = "'" +lector2.readLine()+ "'"; command = "UPDATE TIPOSPRODUCTOS SET DESCRIPCION="+ descripcion +" WHERE ID="+ id; try { stat.execute(command);} finally{} } } // Cierre del metodo actualizarCampos. public static void borrarFila()throws Exception {

E10 / página 25 de 37 / 100280128

E10

System.out.print("Introduzca el ID del producto a Borrar : "); String id = "'" + lector2.readLine() + "'"; String command = "DELETE FROM TIPOSPRODUCTOS WHERE ID= " + id; try{stat.execute(command) ;} finally{} } public static void verDatosTiposProductos()throws Exception { String id ; String nombre ; double sueldo ; String comando = "SELECT ID , NOMBRE , SUELDO FROM TIPOSPRODUCTOS"; ResultSet result = stat.executeQuery(comando); while(result.next()) { id = result.getString("ID"); nombre = result.getString("NOMBRE"); sueldo = result.getDouble("SUELDO"); System.out.println("ID NOMBRE SUELDO"); System.out.println(id + " " + nombre + " " + sueldo ); } } // cierre del metodo verDatosTiposProductos; } // Cierre de la clase Administrador. // --------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------- // Ayuda abstract class Ayuda { /* Ayuda para administrar los recursos humanos , osea empleados. Ayuda para administrar los recurosos no humanos: -- Proveedor -- Elementos a comprar -- Productos ofrecidos. */ public static void Empleado() { System.out.println("Bienvenido al Modulo : Administrar Recursos Humanos (Empleados)"); System.out.println("Capacidades del modulo : "); System.out.println(" 1 : Permite contratar personal."); System.out.println(" 2 : Permite modificar el estado del personal."); System.out.println(" 3 : Permite eliminar personal de la plantilla.");

E10 / página 26 de 37 / 100280128

E10

} public static void Proveedor() { System.out.println("Bienvenido al Modulo : Administrar Recursos No Humanos (Proveedores)"); System.out.println("Capacidades del modulo : "); System.out.println(" 1 : Permite agregar un Proveedor."); System.out.println(" 2 : Permite eliminar un Proveedor de la plantilla."); } public static void ElementoComprar() { System.out.println("Bienvenido al Modulo : Administrar Recursos No Humanos(Elementos a comprar) "); System.out.println("Capacidades del modulo : "); System.out.println(" 1 : Permite agregar un elemento a comprar."); System.out.println(" 2 : Permite eliminar un elemento a comprar de la plantilla."); } public static void TipoProducto() { System.out.println("Bienvenido al Modulo : Administrar Recursos no Humanos(Productos ofrecidos)"); System.out.println("Capacidades del modulo : "); System.out.println(" 1 : Permite agregar un nuevo producto."); System.out.println(" 2 : Permite modificar el estado de un tipo de producto ofrecido."); System.out.println(" 3 : Permite eliminar un tipo de producto ofrecido de la plantilla."); } public static void opcion() { System.out.println(" 1 : Administrar Recursos Humanos (Empleados)" ); System.out.println(" 2 : Administrar Recursos No Humanos (Proveedores) y elementos comprar"); System.out.println(" 3 : Administrar Recursos no Humanos(Productos ofrecidos)"); } } // Cierre de la clase. // --------------------------------------------------------------------------------------------- class PF { static Scanner lector = new Scanner(System.in); public static void crear()throws Exception { try{ System.out.print("Desea crear las tablas : (1|0) : " + "\n") ; if ( 1 == lector.nextShort() ) { AdminDataBase.crearTablas(); } } finally{} } // crear static void opEmpleado()throws Exception { try{

E10 / página 27 de 37 / 100280128

E10

Ayuda.Empleado(); System.out.println("Por favor eliga una opcion : "); short op = lector.nextShort(); if (1 == op) { //add AdministrarEmpleado.addEmpleado(); } else if (2 == op) { //actualizar AdministrarEmpleado.actualizarCampos(); }else if (3 == op) { //eliminar AdministrarEmpleado.borrarFila(); } } finally{} } // cierre de opEmpleado public static void opPEC() throws Exception { try{ Ayuda.ElementoComprar(); System.out.println(); Ayuda.Proveedor(); System.out.print("Por favor eliga una opcion (Elemento Comprar): " + "\n"); short op = lector.nextShort(); if ( 1 == op) { // add AdministrarElementoComprar.addElementoComprar(); System.out.print("Desea introducir un nuevo Proveedor(1|0) : "); op = lector.nextShort(); if ( 1 == op){ AdministrarProveedor.addProveedor();} }else if ( 2 == op ) { // borrar System.out.print("Desea eliminar un nuevo Proveedor(1|0) : "); op = lector.nextShort(); if ( 1 == op){ AdministrarProveedor.borrarFila();} System.out.println(); System.out.print("Desea eliminar un elemento a comprar (1|0) : "); AdministrarElementoComprar.borrarFila(); } } finally{}

E10 / página 28 de 37 / 100280128

E10

} // cierre del metodo opPEC public static void opTipoElemento()throws Exception { try{ Ayuda.TipoProducto(); System.out.print("Por favor eliga una opcion : "); short op = lector.nextShort(); if (1 == op) { //add AdministrarTipoProducto.addTipoProducto(); } else if (2 == op) { //actualizar AdministrarTipoProducto.actualizarCampos(); }else if (3 == op) { //eliminar AdministrarTipoProducto.borrarFila(); } } finally{} } // Cierre del metodo opTipoElemento. public static void elegir( )throws Exception { try{ System.out.print("Desea realizar alguna operacion (1|0): " + "\n"); while ( 1 == lector.nextShort() ) { Ayuda.opcion(); System.out.print("Por favor eliga una opcion : " + "\n"); short op = lector.nextShort(); if ( 1 == op) { // Empleados opEmpleado(); }else if ( 2 == op) { opPEC(); }else if ( 3 == op) { opTipoElemento(); } System.out.print("Desea realizar alguna operacion (1|0): " + "\n"); } // cierre while

E10 / página 29 de 37 / 100280128

E10

} finally{} } // Cierre del metodo elegir. public static void main(String args[])throws Exception { try{ AdminDataBase.conectarDataBase(); crear(); elegir(); AdminDataBase.cerrarDataBase(); } finally{} } } // Cierre de la clase PF

E11 / página 29 de 37 / 100280128

E11 Empleado:

Registrar empleado:

E11 / página 31 de 37 / 100280128

E11

Actualizar datos de un empleado:

E11 / página 32 de 37 / 100280128

E11 Eliminar un empleado:

E11 / página 33 de 37 / 100280128

E11 Proveedor y Elementos a Comprar:

Agregar proveedor y elementos a comprar:

E11 / página 34 de 37 / 100280128

E11 Eliminar un proveedor y elementos a comprar:

E11 / página 35 de 37 / 100280128

E11 Tipos de elementos ofrecidos: Agregar un nuevo producto:

E11 / página 36 de 37 / 100280128

E11 Actualizar datos de un elemento a comprar:

E11 / página 37 de 37 / 100280128

E11 Eliminar un tipo de producto ofrecido: