MATERIA: Programacin II
DOCENTE: Ing. Nelson Salgado
FECHA: 2015-Nov-26
TRABAJO INDIVIDUAL
TEMA: Crear un programa que nos permita editar, insertar, borrar,
buscar e imprimir los autos en una concesionaria.
NOMBRE: Berenice Abigail Proao Andrade
OBJETIVOS:
arreglo.
Facilitar el manejo de datos de los autos en una concesionaria
Poder editar e ingresar nuevos vehculos segn las
necesidades de la empresa.
INTRODUCCIN
La creacin de este programa surge de la necesidad de manejar los
productos, elementos u objetos de una empresa o de una base de
datos.
Con las clases, mtodos y pojos creados en el programa, ser fcil el
manejo del sistema para el usuario, quien podr realizar actividades
como: insertar, editar, borrar, buscar e imprimir los elementos que
se encuentren dentro de la memoria del sistema. Gracias a este
programa el usuario tendr una organizacin cronolgica de cada
programa.
ec.edu.uce.programacion.pojo : contiene los POJOS del
programa.
ec.edu.uce.programacion.principal : contiene las clase
principal del programa.
POJOS
Primero creamos el POJO de los objetos que estarn en el programa:
POJO autos
package ec.edu.uce.programacion.pojos;
import java.util.Date;
public class autos {
private String codigo;
protected String marca;
protected String modelo;
protected Integer ao;
private Date fechadeIngreso;
private Double precio;
public final static float DESCUENTO = 5000;
public autos() {
}
CLASES
Se crearon las siguientes clases:
1.
CLASE LOGIN
package ec.edu.uce.programacion.clases;
import javax.swing.JOptionPane;
public class login {
//Definimos el valor de usuario y contrasea
private final String USUARIO = "berenice";
private final String CONTRASEA = "proano";
/**
* permite acceder al sistema con un usuario y contrasea
ya definidos
* @return El valor de verdad de la autenticacin
*/
public boolean ingresar(){
//definimos e inicializamos las variables para ingresar al sistema
String usuario="";
String contrasea="";
Boolean s=false;
//utilizamos la estructura for para que nos genere la pantalla para
ingresar el usuario y contrasea
for (int i = 0; i < 3; i++) {
usuario=JOptionPane.showInputDialog(null, "Ingrese su nombre de
usuario");
contrasea=JOptionPane.showInputDialog(null, "Ingrese su
contrasea:");
//comparamos las variables ingresadas por teclado con las que
definimos anteriormente
If(usuario.equalsIgnoreCase(USUARIO)&&CONTRASEA.equalsIgnoreCase(cont
rasea)) {
//si coinciden el programa nos permite ingresar al sistema
s=true;
break;
}
}
return s;
}
}
2.
CLASE VALIDAR
package ec.edu.uce.programacion.clases;
import ec.edu.uce.programacion.pojos.autos;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
/*
*
* Esta clase nos permite verificar que los datos que sean ingresados
por teclado coincidan con el tipo de datos asignados.
*/
public class validar {
/*
*Este mtodo verifica que el cdigo ingresado coincida con los
almacenados en memoria
*/
public String ingresarCodigo(autos[] car, Integer contador) {
boolean existe = true;
String codigo="";
while (existe == true && codigo.equals("")) {
codigo = JOptionPane.showInputDialog(null, "Ingrese el
cdigo");
for (int i = 0; i < contador; i++) {
if (car[i].getCodigo().equals(codigo)) {
existe = true;
break;
}else{
existe=false;
}
}
}
return codigo;
}
/**
* nos permite controlar que los datos ingresados solo sean numeros
* @param ao es el parametro que se verifica en el metodo.
* @return
un valor de verdad
*/
private static Boolean validarAo(String ao) {
Pattern pat4 = Pattern.compile("^([0-9]{1,4})");
Matcher mat4 = pat4.matcher(ao);
return mat4.find();
}
/**
* nos permite ingresar el ao del vehculo.
* @return
el ao ingresado.
*/
public String ingresarAo() {
String ao = JOptionPane.showInputDialog(null, "Inserte el ao
del auto: ");
while (!validarAo(ao)) {
ao = JOptionPane.showInputDialog(null, "Inserte el ao
del auto: ");
validarAo(ao);
}
return ao;
}
/**
*
* @param precio es el parmetro que se verifica en el mtodo.
* @return un valor de verdad
*/
private static Boolean validarPrecio(String precio) {
Pattern pat4 = Pattern.compile("^([0-9]{3}+.([0-9]{2}))");
Matcher mat4 = pat4.matcher(precio);
return mat4.find();
}
/**
* permite ingresar el valor asignado al auto.
* @return
*/
un valor de verdad
*/
private static boolean validformatfecha(String fecha) {
Pattern pat4 = Pattern.compile("^([0-9]{4})+/([0-9]{1,2})+/
([0-9]{1,2})$");
Matcher mat4 = pat4.matcher(fecha);
return mat4.find();
}
/**
* permite ingresar la fecha.
* @return fecha ingresada.
*/
public Date ingresarFecha() {
int ao = 0, mes = 0, dia = 0;
String fecha = JOptionPane.showInputDialog(null, "Ingrese una
fecha: ", "2004/07/07");
boolean existFecha = validformatfecha(fecha);
3.
CLASE MENU
package ec.edu.uce.programacion.clases;
import ec.edu.uce.programacion.pojos.autos;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JOptionPane;
/**
* Esta clase nos permite generar el men con el que accederemos a las
funciones del sistema
*
*/
public class menu {
//creamos un array de la clase autos para almacenar los objetos
autos car[]=new autos[3];
//creamos un objeto de la clase validar
validar ingresar = new validar();
//inicializamos el contador
Integer contador =2;
public void Menu(){
Calendar fecha = Calendar.getInstance();
fecha.set(2012, 8, 29);
//Almacenamos objetos en la memoria del sistema
car[0] = new autos("2908", "Hyundai", "Tucson", 2010,
fecha.getTime(), 23000.0);
fecha.set(2013, 4, 13);
car[1] = new autos("1304", "Chevrolet", "Camaro", 2012,
fecha.getTime(), 50000.0);
//generamos el men y las opciones que este tendr
String opcion = "";
while (!opcion.equalsIgnoreCase("6")) {
MEN:
Double precio =
Double.parseDouble(ingresar.ingresarPrecio());//parseDouble: convierte
un String a double
car[i] = new autos(codigo, marca, modelo, ao,
fechadeIngreso, precio);
x = true;
break;
}
}
if (x == false) {
JOptionPane.showMessageDialog(null, "El cdigo
ingresado no coincide con ningn auto");
}
} else {
JOptionPane.showMessageDialog(null, "No hay autos");
}
}
/**
* Mtodo que nos permite eliminar autos del sistema
*/
public void borrar() {
if (contador > 0) {
int i;
autos temp[] = new autos[contador - 1];
Boolean existe = false;
String codigo = JOptionPane.showInputDialog(null, "Ingrese
el cdigo del auto:");
for (i = 0; i < contador; i++) {
if (car[i].getCodigo().equals(codigo)) { //equals:
verifica que el cdigo ingresado sea igual al de la memoria
existe = true;
break;
}
}
if (existe == true) {
for (int j = 0; j < contador; j++) {
if (j < i) {
temp[j] = car[j];
}
if (j > i) {
temp[j - 1] = car[j];
}
}
car = null;
car = new autos[3];
contador--;
for (int j = 0; j < (contador - 1); j++) {
car[j] = temp[j];
}
} else {
JOptionPane.showMessageDialog(null, "El cdigo
ingresado no coincide con ningn auto");
}
} else {
JOptionPane.showMessageDialog(null, "No hay autos");
}
}
/**
* Mtodo que nos permite encontar autos que ya se encuentran en
la memoria
*/
public void buscar() {
if (contador > 0) {
boolean existe=false;
String codigo = JOptionPane.showInputDialog(null, "Ingrese
el cdigo del auto");
String mostrar = "";
for (int i = 0; i < contador; i++) {
if (car[i].getCodigo().equals(codigo)) { //equals:
verifica que el cdigo ingresado sea igual al de la memoria
mostrar +="
Auto:
" + (i + 1) + ""
+ "\nCdigo:
+ "\nMarca:
+ "\nModelo :
"+car[i].getModelo() + ""
+ "\nAo:
" + car[i].getPrecio();
break;
}
}
Auto:
" + (i + 1) + ""
" + car[i].getPrecio()+"\n\n";
}
JOptionPane.showMessageDialog(null, mostrar);
} else {
JOptionPane.showMessageDialog(null, "no hay autos");
}
}
}
CLASE PRINCIPAL
En la clase principal se invocan las clases, POJOS y mtodos que ya se
crearon.
Aqu se ejecuta el programa.
package ec.edu.uce.programacion.principal;
import ec.edu.uce.programacion.clases.login;
import ec.edu.uce.programacion.clases.menu;
import javax.swing.JOptionPane;
public class clasePrincipal {
public static void main(String[] args) {
//creamos un objeto de la clase menu y de la clase login para poder
acceder a las funciones
login ingreso= new login();
menu Menu=new menu();
//con la estructura if-else nos permite ingresar al programa con el
usuario y contrasea correctos
if (ingreso.ingresar()) {
//accede al men si el login se ejecut correctamente
Menu.Menu();
}else{
//en caso de que no se ingresen usuario y contrasea correctos
JOptionPane.showMessageDialog(null, "Su nombre de usuario
y/o contrasea son invlidos");
}
}
}
PROGRAMA:
LOGIN
MENU
Si el precio es incorrecto:
Si el cdigo es incorrecto: