programación orientada a objetos ejemplo
TRANSCRIPT
-
7/25/2019 programacin orientada a objetos ejemplo
1/22
MATERIA:Programacin II
DOCENTE:Ing. Nelson Salgado
FECHA:2015-Nov-26
TRABAJO INDIVIDUAL
TEMA: Crear un programaque nos permita editar insertar !orrar
!uscar e imprimir los autos en una concesionaria.
NOMBRE:"erenice #!igail Proa$o #ndrade
OBJETIVOS:
%esarrollar un programa que almacene los datos en un
arreglo.
&acilitar el mane'o de datos de los autos en una concesionaria
Poder editar e ingresar nuevos ve()culos seg*n las
necesidades de la empresa.
INTRODUCCIN
+a creacin de este programa surge de la necesidad de mane'ar los
productos elementos u o!'etos de una empresa o de una !ase de
datos.
Con las clases m,todos po'os creados en el programa ser /cil el
mane'o del sistema para el usuario quien podr realiar actividades
como insertar editar !orrar !uscar e imprimir los elementos que
se encuentren dentro de la memoria del sistema. racias a este
programa el usuario tendr una organiacin cronolgica de cada
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERA, CIENCIAS FSICAS Y MATEMTICA
CARRERA DE INGENIERA EN COMPUTACIN GRFICA
TRABAJO FINAL-PRIMER HEMISEMESTRE
SEMESTRE Septe!"#e $%&'-Fe"#e#( $%&)
-
7/25/2019 programacin orientada a objetos ejemplo
2/22
o!'eto de su empresa as) se disminuirn los errores cometidos al
ingresar un auto al concesionario.
CONTE*TO O DESARROLLO
Para ela!orar este programa creamos los siguientes paquetes
e+e..+ep#(/#0!0+(1+203e3 : contiene las clases del
programa.
e+e..+ep#(/#0!0+(1p(4( : contiene los P343S del
programa.
e+e..+ep#(/#0!0+(1p#1+p02 : contiene las clase
principal del programa.
POJOS
Primero creamos el P343 de los o!'etos que estarn en el programa
P343 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 DESCUEN! " #$$$;
-
7/25/2019 programacin orientada a objetos ejemplo
3/22
public autos() {
}
%&Es el constructor de la clase autos ' nos permite crean
instancias de la clase
&
&%
publicautos(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 get-arca(* +
return marca; ,
public void set-arca(String -arca* +
this.marca " marca;
,
public String get-odelo(* +
return modelo;
,
-
7/25/2019 programacin orientada a objetos ejemplo
4/22
public void set-odelo(String modelo* +
this.modelo " modelo;
,
public Integer geto(* + return ao;
,
public void seto(Integer ao* +
this.ao " ao;
,
public Date get/echadeIngreso(* +
return fechadeIngreso;
,
public void set/echaEdicion(Date fechadeIngreso* +
this.fechadeIngreso " fechadeIngreso;
,
public Double get0recio(* +
return precio;
,
public void set0recio(Double precio* +
this.precio " precio;
,
}
CLASESSe crearon las siguientes clases
2(/1:es la clase que nos permitir ingresar al sistema !e1.:es la clase que contiene el men* todas sus /unciones
-
7/25/2019 programacin orientada a objetos ejemplo
5/22
5020#:es la clase que vericar que los datos ingresados
sean del tipo correcto.
1. C+#S +3IN
package ec.edu.uce.programacion.clases;
import java1.s2ing.3!ption0ane;
public class login {
%%Definimos el valor de usuario ' contrasea
private final String USU4I! " 5berenice5;
private final String C!N4SE6 " 5proano5;
%&&
& permite acceder al sistema con un usuario ' contrasea
'a definidos
& 7return El valor de verdad de la autenticaci8n
&%
publicboolean ingresar(*+
%%definimos e iniciali9amos las variables para ingresar al sistema
String usuario"55;
String contrasea"55;
:oolean s"false;
%%utili9amos la estructura for para ue nos genere la pantalla para
ingresar el usuario ' contrasea
for (int i " $; i < =; i>>* +
usuario"3!ption0ane.sho2InputDialog(null) 5Ingrese su nombre de
usuario5*;
contrasea"3!ption0ane.sho2InputDialog(null) 5Ingrese su
contrasea?5*;
%%comparamos las variables ingresadas por teclado con las ue
definimos anteriormente
If(usuario.eualsIgnoreCase(USU4I!*@@C!N4SE6.eualsIgnoreCase(cont
rasea** +
%%si coinciden el programa nos permite ingresar al sistema
s"true;
breaA;
,
,
-
7/25/2019 programacin orientada a objetos ejemplo
6/22
return s;
,
}
2. C+#S 7#+I%#8package ec.edu.uce.programacion.clases;
import ec.edu.uce.programacion.pojos.autos;
import java.util.Calendar;
import java.util.Date;
import java.util.rege1.-atcher;
import java.util.rege1.0attern;
import java1.s2ing.3!ption0ane;
%&
&
& Esta clase nos permite verificar ue los datos ue sean ingresados
por teclado coincidan con el tipo de datos asignados.
&%
public class validar {
%&
&Este mBtodo verifica ue el c8digo ingresado coincida con losalmacenados en memoria
&%
publicString ingresarCodigo(autos car) Integer contador* +
boolean e1iste " true;
String codigo"55;
2hile (e1iste "" true @@ codigo.euals(55** +
codigo " 3!ption0ane.sho2InputDialog(null) 5Ingrese el
c8digo5*;
for (int i " $; i < contador; i>>* +
if (cari.getCodigo(*.euals(codigo** +
e1iste " true;
breaA;
,else+
e1iste"false;
,
-
7/25/2019 programacin orientada a objetos ejemplo
7/22
,
,
return codigo;
,%&&
& nos permite controlar ue los datos ingresados solo sean numeros
& 7param ao es el parametro ue se verifica en el metodo.
& 7return un valor de verdad
&%
private static :oolean validaro(String ao* +
0attern pat " 0attern.compile(5F($GH+),*5*;
-atcher mat " pat.matcher(ao*;
return mat.find(*;
,
%&&
& nos permite ingresar el ao del vehJculo.
& 7return el ao ingresado.
&%
publicString ingresaro(* +
String ao " 3!ption0ane.sho2InputDialog(null) 5Inserte el ao
del auto? 5*;
2hile (Kvalidaro(ao** +
ao " 3!ption0ane.sho2InputDialog(null) 5Inserte el ao
del auto? 5*;
validaro(ao*;
,
return ao;
,
%&&
&
& 7param precio es el parLmetro ue se verifica en el mBtodo.
& 7return un valor de verdad
&%
private static:oolean validar0recio(String precio* +
0attern pat " 0attern.compile(5F($GH+=,>.($GH+M,**5*;
-atcher mat " pat.matcher(precio*;
return mat.find(*;
,
%&&& permite ingresar el valor asignado al auto.
-
7/25/2019 programacin orientada a objetos ejemplo
8/22
& 7return el precio del auto
&%
publicString ingresar0recio(* +
String precio " 3!ption0ane.sho2InputDialog(null) 5Inserte el
precio del auto? 5*;
Double a " G.$;
2hile (Kvalidaro(precio* a < $* +
precio " 3!ption0ane.sho2InputDialog(null) 5El valor no
puede ser menor a O#.$$$5*;
if (validaro(precio** +
a " Double.parseDouble(precio* G autos.DESCUEN!;
,
validaro(precio*;
,
return precio;
,
%&&
&
& 7param fecha es el parametro ue se verifica en el metodo.
& & 7return un valor de verdad
&%
private staticboolean validformatfecha(String fecha* +
0attern pat " 0attern.compile(5F($GH+,*>%($GH+)M,*>%
($GH+)M,*O5*;
-atcher mat " pat.matcher(fecha*;
return mat.find(*;
,
%&&
& permite ingresar la fecha.
& 7return fecha ingresada.
&%
publicDate ingresar/echa(* +
int ao " $) mes " $) dia " $;
String fecha " 3!ption0ane.sho2InputDialog(null) 5Ingrese una
fecha? 5) 5M$$%$P%$P5*;
boolean e1ist/echa " validformatfecha(fecha*;
-
7/25/2019 programacin orientada a objetos ejemplo
9/22
2hile ((ao "" $* e1ist/echa "" false* +
2hile (e1ist/echa "" false* +
fecha " 3!ption0ane.sho2InputDialog(null) 5Ingrese unafecha? 5) 5M$$%$P%$P5*;
e1ist/echa " validformatfecha(fecha*;
,
String vect " fecha.split(5%5*;%%Se crea un vector de
dimensi8n an8nima donde se almacenarLn los valores ingresados.
ao " Integer.parseInt(vect$*;
mes " Integer.parseInt(vect*;
dia " Integer.parseInt(vectM*;
if (ao < ao Q M$#* +
e1ist/echa " false;
,
if (mes < $ mes Q M* +
e1ist/echa " false;
,
if (mes "" @@ mes "" = @@ mes "" # @@ mes "" P @@ mes ""
R @@ mes "" $ @@ mes "" M @@ (dia < dia Q =** +
e1ist/echa " false;
,
if (mes "" @@ mes "" @@ mes "" H @@ mes "" @@ (dia
< dia Q =$** +
e1ist/echa " false;
,
if (mes "" M @@ (dia < dia Q MR** +
e1ist/echa " false;
,
,
Calendar fechaIngresada " Calendar.getInstance(*;
fechaIngresada.set(ao) mes G ) dia*;
Date fecha " fechaIngresada.getime(*;
return (fecha*;
,
,
-
7/25/2019 programacin orientada a objetos ejemplo
10/22
9. C+#S :N;
package ec.edu.uce.programacion.clases;
import ec.edu.uce.programacion.pojos.autos;
import java.util.Calendar;
import java.util.Date;
import java1.s2ing.3!ption0ane;
%&&
& Esta clase nos permite generar el menT con el ue accederemos a las
funciones del sistema
&
&%
public class menu {
%%creamos un arra' de la clase autos para almacenar los objetos
autos car"ne2 autos=;
%%creamos un objeto de la clase validar validar ingresar " ne2 validar(*;
%%iniciali9amos el contador
Integer contador "M;
public void Menu(){
Calendar fecha " Calendar.getInstance(*;
fecha.set(M$M) R) MH*;
%%lmacenamos objetos en la memoria del sistema
car$ " ne2 autos(5MH$R5) 5'undai5) 5ucson5) M$$)
fecha.getime(*) M=$$$.$*;
fecha.set(M$=) ) =*;
car " ne2 autos(5=$5) 5Chevrolet5) 5Camaro5) M$M)
fecha.getime(*) #$$$$.$*;
%%generamos el menT ' las opciones ue este tendrL
String opcion " 55;
2hile (Kopcion.eualsIgnoreCase(55** +
-
7/25/2019 programacin orientada a objetos ejemplo
11/22
opcion " 3!ption0ane.sho2InputDialog(null) 5 -ENV?
> 5Wn.G Insertar elemento5
> 5WnM.G Editar elemento5
> 5Wn=.G :orrar elemento5
> 5Wn.G :uscar elemento5
> 5Wn#.G Imprimir elemento5
> 5Wn.G Salir5*;
s2itch (opcion* +
case 55?
ingresar(*;
breaA;
case 5M5?
editar(*;
breaA;
case 5=5?
borrar(*;
breaA;
case 55?
buscar(*;
breaA;
case 5#5?
imprimir(*;
breaA;
case 55?
breaA;
,
,
,
%&&
& -Btodo ue nos permite ingresar un nuevo auto con las
caracterJsticas necesarias.
&%
public void ingresar() { if (contador < =* +
-
7/25/2019 programacin orientada a objetos ejemplo
12/22
String codigo " ingresar.ingresarCodigo(car) contador*;
String marca " 3!ption0ane.sho2InputDialog(null) 5Ingrese
la marca del auto5*;
String modelo " 3!ption0ane.sho2InputDialog(null) 5Ingrese
el modelo del auto5*; Integer ao "
Integer.parseInt(ingresar.ingresaro(**; %%parseInt? convierte un
String a Integer
Date fechadeIngreso " ingresar.ingresar/echa(*;
Double precio "
Double.parseDouble(ingresar.ingresar0recio(**; %%parseDouble? convierte
un String a double
carcontador " ne2 autos(codigo) marca) modelo) ao)
fechadeIngreso) precio*;
contador>>;
, else +
3!ption0ane.sho2-essageDialog(null) 5Xa capacidad ha sido
alcan9ada5*;
,
,
%&&
& -Btodo ue nos permite editar los autos ue 'a se encuentran en el
sistema.
&%
public void editar() {
if (contador Q $* +
:oolean 1 " false;
String codigo " 3!ption0ane.sho2InputDialog(null) 5Ingrese
el codigo del auto5*;
for (int i " $; i < contador; i>>* +
if (cari.getCodigo(*.euals(codigo** +
String marca " 3!ption0ane.sho2InputDialog(null)
5Ingrese la marca del auto5*;
String modelo " 3!ption0ane.sho2InputDialog(null)
5Ingrese el modelo auto5*;
Integer ao "
Integer.parseInt(ingresar.ingresaro(**; %%parseInt? conversi8n de
String a Integer Date fechadeIngreso " ingresar.ingresar/echa(*;
-
7/25/2019 programacin orientada a objetos ejemplo
13/22
Double precio "
Double.parseDouble(ingresar.ingresar0recio(**; %%parseDouble? convierte
un String a double
cari " ne2 autos(codigo) marca) modelo) ao)fechadeIngreso) precio*;
1 " true;
breaA;
,
,
if (1 "" false* +
3!ption0ane.sho2-essageDialog(null) 5El c8digo
ingresado no coincide con ningTn auto5*;
,
, else +
3!ption0ane.sho2-essageDialog(null) 5No ha' autos5*;
,
,
%&&
& -Btodo ue nos permite eliminar autos del sistema
&%
public void borrar() {
if (contador Q $* +
int i;
autos temp " ne2 autoscontador G ;
:oolean e1iste " false;
String codigo " 3!ption0ane.sho2InputDialog(null) 5Ingrese
el c8digo del auto?5*;
for (i " $; i < contador; i>>* +
if (cari.getCodigo(*.euals(codigo** + %%euals?
verifica ue el c8digo ingresado sea igual al de la memoria
e1iste " true;
breaA;
,
,
if (e1iste "" true* +
for (int j " $; j < contador; j>>* +
if (j < i* + tempj " carj;
-
7/25/2019 programacin orientada a objetos ejemplo
14/22
,
if (j Q i* +
tempj G " carj;
,
, car " null;
car " ne2 autos=;
contadorGG;
for (int j " $; j < (contador G *; j>>* +
carj " tempj;
,
, else +
3!ption0ane.sho2-essageDialog(null) 5El c8digo
ingresado no coincide con ningTn auto5*;
,
, else +
3!ption0ane.sho2-essageDialog(null) 5No ha' autos5*;
,
,
%&&
& -Btodo ue nos permite encontar autos ue 'a se encuentran en
la memoria
&%
public void buscar() {
if (contador Q $* +
boolean e1iste"false;
String codigo " 3!ption0ane.sho2InputDialog(null) 5Ingrese
el c8digo del auto5*;
String mostrar " 55;
for (int i " $; i < contador; i>>* +
if (cari.getCodigo(*.euals(codigo** + %%euals?
verifica ue el c8digo ingresado sea igual al de la memoria
mostrar >"5 uto? 5 > (i > * > 55
> 5WnC8digo? 5 > cari.getCodigo(* > 55
> 5Wn-arca? 5 > cari.get-arca(* > 55
> 5Wn-odelo ? 5>cari.get-odelo(* > 55
> 5Wno? 5 > cari.geto(* > 55
> 5Wn/echa de Ingreso? 5>cari.get/echadeIngreso(* > 55
> 5Wn0recio? 5 > cari.get0recio(*; e1iste"true;
-
7/25/2019 programacin orientada a objetos ejemplo
15/22
breaA;
,
,
if (Ke1iste* 3!ption0ane.sho2-essageDialog(null)5No e1iste
ese c8digo5*;
3!ption0ane.sho2-essageDialog(null) mostrar*;
, else +
3!ption0ane.sho2-essageDialog(null) 5no ha' autos5*;
,
,
%&&
& -Btodo ue nos permite imprimir en pantalla los autos almacenados en
memoria.
&%
public void imprimir(* +
if (contador Q $* +
String mostrar " 55;
for (int i " $; i < contador; i>>* +
mostrar >"5 uto? 5 > (i > * > 55
> 5WnC8digo? 5 > cari.getCodigo(* > 55
> 5Wn-arca? 5 > cari.get-arca(* > 55
> 5Wn-odelo ? 5>cari.get-odelo(* > 55
> 5Wno? 5 > cari.geto(* > 55
> 5Wn/echa de Ingreso? 5>cari.get/echadeIngreso(* > 55
> 5Wn0recio? 5 > cari.get0recio(*>5WnWn5;
,
3!ption0ane.sho2-essageDialog(null) mostrar*;
, else +
3!ption0ane.sho2-essageDialog(null) 5no ha' autos5*;
,
,
,
-
7/25/2019 programacin orientada a objetos ejemplo
16/22
CLASE PRINCIPAL
n la clase principal se invocan las clases P343S m,todos que a se
crearon.
#qu) se e'ecuta el programa.
package ec.edu.uce.programacion.principal;
import ec.edu.uce.programacion.clases.login;
import ec.edu.uce.programacion.clases.menu;
import java1.s2ing.3!ption0ane;
public class clasePrincipal {
public static void main(String args* +
%%creamos un objeto de la clase menu ' de la clase login para poder
acceder a las funciones
login ingreso" ne2 login(*;
menu -enu"ne2 menu(*;
%%con la estructura ifGelse nos permite ingresar al programa con el
usuario ' contrasea correctos
if (ingreso.ingresar(** +
%%accede al menT si el login se ejecut8 correctamente
-enu.-enu(*;
,else+
%%en caso de ue no se ingresen usuario ' contrasea correctos
3!ption0ane.sho2-essageDialog(null) 5Su nombre de usuario
'%o contrasea son invLlidos5*;
,
,
,
-
7/25/2019 programacin orientada a objetos ejemplo
17/22
PROGRAMA:
LOGIN
MENU
-
7/25/2019 programacin orientada a objetos ejemplo
18/22
OPCIN N6&: INSERTAR ELEMENTO
Si el precio es incorrecto
-
7/25/2019 programacin orientada a objetos ejemplo
19/22
OPCIN N6$: EDITAR ELEMENTO
-
7/25/2019 programacin orientada a objetos ejemplo
20/22
OPCIN N67: BORRAR ELEMENTO
Si el cdigo es incorrecto
OPCIN N68: BUSCAR ELEMENTO
-
7/25/2019 programacin orientada a objetos ejemplo
21/22
OPCIN N6': IMPRIMIR ELEMENTO
-
7/25/2019 programacin orientada a objetos ejemplo
22/22