Anda di halaman 1dari 22

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERA, CIENCIAS FSICAS Y MATEMTICA


CARRERA DE INGENIERA EN COMPUTACIN GRFICA
TRABAJO FINAL-PRIMER HEMISEMESTRE
SEMESTRE Septiembre 2015-Febrero 2016

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:

Desarrollar un programa que almacene los datos en un

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

objeto de su empresa y as se disminuirn los errores cometidos al


ingresar un auto al concesionario.
CONTEXTO O DESARROLLO
Para elaborar este programa, creamos los siguientes paquetes

ec.edu.uce.programacion.clases : contiene las clases del

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() {
}

/*Es el constructor de la clase autos y nos permite crean


instancias de la clase
*
*/
public autos(String codigo, String marca, String modelo, Integer
ao, Date fechadeIngreso, Double precio) {
this.codigo = codigo;
this.marca = marca;
this.modelo = modelo;
this.ao = ao;
this.fechadeIngreso = fechadeIngreso;
this.precio = precio;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getMarca() {
return marca;
}
public void setMarca(String Marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}

public void setModelo(String modelo) {


this.modelo = modelo;
}
public Integer getAo() {
return ao;
}
public void setAo(Integer ao) {
this.ao = ao;
}
public Date getFechadeIngreso() {
return fechadeIngreso;
}
public void setFechaEdicion(Date fechadeIngreso) {
this.fechadeIngreso = fechadeIngreso;
}
public Double getPrecio() {
return precio;
}
public void setPrecio(Double precio) {
this.precio = precio;
}
}

CLASES
Se crearon las siguientes clases:

login: es la clase que nos permitir ingresar al sistema


menu: es la clase que contiene el men y todas sus funciones

validar: es la clase que verificar que los datos ingresados


sean del tipo correcto.

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

el precio del auto

*/

public String ingresarPrecio() {


String precio = JOptionPane.showInputDialog(null, "Inserte el
precio del auto: ");
Double a = -1.0;
while (!validarAo(precio) || a < 0) {
precio = JOptionPane.showInputDialog(null, "El valor no
puede ser menor a $5.000");
if (validarAo(precio)) {
a = Double.parseDouble(precio) - autos.DESCUENTO;
}
validarAo(precio);
}
return precio;
}
/**
*
* @param fecha es el parametro que se verifica en el metodo.
* * @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);

while ((ao == 0) || existFecha == false) {


while (existFecha == false) {

fecha = JOptionPane.showInputDialog(null, "Ingrese una


fecha: ", "2004/07/07");
existFecha = validformatfecha(fecha);
}
String vect[] = fecha.split("/");//Se crea un vector de
dimensin annima donde se almacenarn los valores ingresados.
ao = Integer.parseInt(vect[0]);
mes = Integer.parseInt(vect[1]);
dia = Integer.parseInt(vect[2]);
if (ao < 1 || ao > 2015) {
existFecha = false;
}
if (mes < 0 || mes > 12) {
existFecha = false;
}
if (mes == 1 && mes == 3 && mes == 5 && mes == 7 && mes ==
8 && mes == 10 && mes == 12 && (dia < 1 || dia > 31)) {
existFecha = false;
}
if (mes == 4 && mes == 6 && mes == 9 && mes == 11 && (dia
< 1 || dia > 30)) {
existFecha = false;
}
if (mes == 2 && (dia < 1 || dia > 28)) {
existFecha = false;
}
}
Calendar fechaIngresada = Calendar.getInstance();
fechaIngresada.set(ao, mes - 1, dia);
Date fecha1 = fechaIngresada.getTime();
return (fecha1);
}
}

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")) {

opcion = JOptionPane.showInputDialog(null, "


+ "\n1.- Insertar elemento"
+ "\n2.- Editar elemento"
+ "\n3.- Borrar elemento"
+ "\n4.- Buscar elemento"
+ "\n5.- Imprimir elemento"
+ "\n6.- Salir");
switch (opcion) {
case "1":
ingresar();
break;
case "2":
editar();
break;
case "3":
borrar();
break;
case "4":
buscar();
break;
case "5":
imprimir();
break;
case "6":
break;
}
}
}
/**
* Mtodo que nos permite ingresar un nuevo auto con las
caractersticas necesarias.
*/
public void ingresar() {
if (contador < 3) {

MEN:

String codigo = ingresar.ingresarCodigo(car, contador);


String marca = JOptionPane.showInputDialog(null, "Ingrese
la marca del auto");
String modelo = JOptionPane.showInputDialog(null, "Ingrese
el modelo del auto");
Integer ao =
Integer.parseInt(ingresar.ingresarAo());//parseInt: convierte un
String a Integer
Date fechadeIngreso = ingresar.ingresarFecha();
Double precio =
Double.parseDouble(ingresar.ingresarPrecio());//parseDouble: convierte
un String a double
car[contador] = new autos(codigo, marca, modelo, ao,
fechadeIngreso, precio);
contador++;
} else {
JOptionPane.showMessageDialog(null, "La capacidad ha sido
alcanzada");
}
}
/**
* Mtodo que nos permite editar los autos que ya se encuentran en el
sistema.
*/
public void editar() {
if (contador > 0) {
Boolean x = false;
String codigo = JOptionPane.showInputDialog(null, "Ingrese
el codigo del auto");
for (int i = 0; i < contador; i++) {
if (car[i].getCodigo().equals(codigo)) {
String marca = JOptionPane.showInputDialog(null,
"Ingrese la marca del auto");
String modelo = JOptionPane.showInputDialog(null,
"Ingrese el modelo auto");
Integer ao =
Integer.parseInt(ingresar.ingresarAo());//parseInt: conversin de
String a Integer
Date fechadeIngreso = ingresar.ingresarFecha();

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:

" + car[i].getCodigo() + ""

+ "\nMarca:

" + car[i].getMarca() + ""

+ "\nModelo :

"+car[i].getModelo() + ""

+ "\nAo:

" + car[i].getAo() + ""

+ "\nFecha de Ingreso: "+car[i].getFechadeIngreso() + ""


+ "\nPrecio:
existe=true;

" + car[i].getPrecio();

break;
}
}

if (!existe) JOptionPane.showMessageDialog(null,"No existe


ese cdigo");
JOptionPane.showMessageDialog(null, mostrar);
} else {
JOptionPane.showMessageDialog(null, "no hay autos");
}
}
/**
* Mtodo que nos permite imprimir en pantalla los autos almacenados en
memoria.
*/
public void imprimir() {
if (contador > 0) {
String mostrar = "";
for (int i = 0; i < contador; i++) {
mostrar +="
+ "\nCdigo:
+ "\nMarca:
+ "\nModelo :
+ "\nAo:

Auto:

" + (i + 1) + ""

" + car[i].getCodigo() + ""


" + car[i].getMarca() + ""
"+car[i].getModelo() + ""
" + car[i].getAo() + ""

+ "\nFecha de Ingreso: "+car[i].getFechadeIngreso() + ""


+ "\nPrecio:

" + 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

OPCIN N1: INSERTAR ELEMENTO

Si el precio es incorrecto:

OPCIN N2: EDITAR ELEMENTO

OPCIN N3: BORRAR ELEMENTO

Si el cdigo es incorrecto:

OPCIN N4: BUSCAR ELEMENTO

OPCIN N5: IMPRIMIR ELEMENTO

Anda mungkin juga menyukai