Práctica03 - Lab131
Práctica03 - Lab131
Práctica03 - Lab131
PRACTICA N° 3
EJERCICIO 1
a) Enunciado
Dado un Cola Simple de Empleados<carnet, nombre, cargo, sueldo, edad>
a) Mostrar quienes ganan mas
b) Cuál es la edad promedio
c) Considerando que los Empleados están ordenados por Inicial de su nombre se pide ordenar
un nuevo empleado conservando el orden.
b) Diagrama de Clases
Empleado
- carnet: String
- nombre: String
- cargo: String
- sueldo: double
-edad: int
+ entero()
+ entero(carnet,nombre,cargo,sueldo, edad )
+ getters()
+ setters()
+ leerE():void
+ mostrarE():void
+ leerE(): void
+ mostrarE():void CSimpleEmpleados
- max: int
- ini: int
- fin: int
- v[max+1]: Empleado
+ CSimpleEmpleados()
+ esVacia(): boolean
+ esLlena(): boolean
+ nroElem():void
+ adicionar(it:entero): void
+ eliminar: Entero
+ llenar():void
+ mostrar(): void
+ vaciar(z:
CSimpleEmpleados):void
c) Codigo JAVA
Main
public class Main {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
CSimpleEmpleados ce = new CSimpleEmpleados();
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION A
.....................................");
solucionA(ce);
System.out.println(".......................................................
..............................");
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION B
.....................................");
solucionB(ce);
System.out.println(".......................................................
..............................");
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION C
.....................................");
solucionC(ce);
ce.mostrar();
System.out.println(".......................................................
..............................");
// SOLUCION A
private static void solucionA(CSimpleEmpleados CE) {
int x=CE.nroElem();
int n=((x/2)+1);
ordenarCola(CE);
aux.vaciar((copiarCola(CE)));
R.vaciar(aux);
while(!CE.esVacia()) {
Empleado mayor = CE.eliminar();
while (!CE.esVacia()) {
Empleado elem = CE.eliminar();
if(elem.getSueldo() > mayor.getSueldo()) {
aux.adicionar(mayor);
mayor = elem;
}
else {
aux.adicionar(elem);
}
}
CE.vaciar(aux);
R.adicionar(mayor);
}
CE.vaciar(R);
}
// COPIAR COLA
private static CSimpleEmpleados copiarCola(CSimpleEmpleados CE) {
CSimpleEmpleados aux1 = new CSimpleEmpleados();
CSimpleEmpleados aux2 = new CSimpleEmpleados();
CSimpleEmpleados copia = new CSimpleEmpleados();
while(!CE.esVacia()) {
Empleado elem = CE.eliminar();
aux1.adicionar(elem);
aux2.adicionar(elem);
}
CE.vaciar(aux1);
copia.vaciar(aux2);
return copia ;
}
// SOLUCION B
private static void solucionB(CSimpleEmpleados CE) {
int cant=CE.nroElem();
double total=0;
while(!CE.esVacia()) {
Empleado elem = CE.eliminar();
total=total+elem.getEdad();
aux.adicionar(elem);
}
CE.vaciar(aux);
double promedio=((total)/(cant));
System.out.println("PROMEDIO-EDAD: "+promedio);
}
// SOLUCION C
private static void solucionC(CSimpleEmpleados CE) {
ordenarColaNombre(CE);
Empleado e = new Empleado();
e.leerE();
CE.adicionar(e);
ordenarColaNombre(CE);
}
while(!CE.esVacia()) {
Empleado vocal = CE.eliminar();
while(!CE.esVacia()) {
Empleado elem = CE.eliminar();
if(elem.getNombre().compareToIgnoreCase(vocal.getNombre())>0) {
aux.adicionar(vocal);
vocal=elem;
}
else {
aux.adicionar(elem);
}
}
CE.vaciar(aux);
R.adicionar(vocal);
}
CE.vaciar(R);
}
}
Clase Empleado
// Getters y Setters
public String getCarnet() {
return carnet;
}
// To String
@Override
public String toString() {
return "Empleado [carnet=" + carnet + ", nombre=" + nombre + ",
cargo=" + cargo + ", sueldo=" + sueldo + ", edad=" + edad + "]";
}
Clase CSimpleEmpleados
CSimpleEmpleados(){
ini=0;
fin=0;
}
System.out.println("*******************************************************
**********************************************");
CSimpleEmpleados aux = new CSimpleEmpleados();
while (!esVacia ()) {
Empleado elem = eliminar ();
elem.mostrarE();
aux.adicionar (elem);
}
System.out.println("*******************************************************
**********************************************");
vaciar(aux);
}
else {
System.out.println("Cola Simple vacia");
}
}
Cola Desordenada
a) Enunciado
Dados 2 Polinomios p(x) y q(x) almacenados en dos Colas Circulares simples hallar;
a) La suma
b) Producto de P(x) x Q(x)
b) Diagrama de Clases
Polinomio
- coeficiente: int
- exponente: int
+ Polinomio()
+ Polinomio(int, int)
+ getters()
+ setters()
+ leerE():void
+ toString():Srting
+ mostrarE():void
CSimplePolinomios
- max: int
- ini: int
- fin: int
- v[max+1]: Polinomio
+ CSimpleEmpleados()
+ esVacia(): boolean
+ esLlena(): boolean
+ nroElem():void
+ adicionar(Polinomio): void
+ eliminar: Polinomio
+ llenar():void
+ mostrar(): void
+ vaciar(z: CSimpleEmpleado):void
c) Codigo JAVA
Main
public class ColaCircularPolinomio {
private int max=100;
private Polinomio v[]=new Polinomio[max+1];
private int ini,fin;
ColaCircularPolinomio(){
ini = 0;
fin = 0;
}
System.out.println("*******************************************************
**********************************************");
ColaCircularPolinomio aux = new ColaCircularPolinomio ();
while (!esVacia ()){
Polinomio elem = eliminar ();
aux.adicionar (elem);
elem.mostrarP();
}
System.out.println("*******************************************************
**********************************************");
vaciar(aux);
}
}
Clase Polinomio
public class Polinomio {
private int coeficiente;
private int exponente;
// Getters y Setters
public int getCoeficiente() {
return coeficiente;
}
// To String
@Override
public String toString() {
return "Polinomio [coeficiente=" + coeficiente + ", exponente="
+"X^"+ exponente + "]";
}
//System.out.println("*****************************************************
***************************" );
System.out.println(toString());
}
}
}
Clase CSimplePolinomios
ColaCircularPolinomio(){
ini = 0;
fin = 0;
}
System.out.println("*******************************************************
**********************************************");
ColaCircularPolinomio aux = new ColaCircularPolinomio ();
while (!esVacia ()){
Polinomio elem = eliminar ();
aux.adicionar (elem);
elem.mostrarP();
}
System.out.println("*******************************************************
**********************************************");
vaciar(aux);
}
}
d) Prueba de Corrida
a) Enunciado
Dada una cola Circular de Vehiculos <placa, marca, propietario e importe se pide:
a) Cuántos vehiculos tiene el propietario (X) y a cuanto asciende su valor.
b) Mostrar el Propietario con mas vehiculos
b) Diagrama de Clases
Vehiculo
- placa: String
- marca: String
- propietario: String
- importe: double
+ Vehiculo()
+ Vehiculo(String, String, String, double)
+ getters()
+ setters()
+ toString():String
+ leerE():void
+ mostrarE():void
CCircularVehiculo
- max: int
- ini: int
- fin: int
- v[max+1]: Vehiculo
+ CCircularVehiculos()
+ nroElem():int
+ esVacia(): boolean
+ esLlena(): boolean
+ adicionar(Vehiculo): void
+ eliminar: Vehiculo
+ mostrar(): void
+ vaciar(z: CCIrcularVehiculos):void
+ llenar():void
c) Codigo JAVA
Main
public class Main {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION A
.....................................");
String x = "Eddy";
solucionA(cv,x);
System.out.println(".......................................................
..............................");
System.out.println("\n.....................................................
................................");
System.out.println(".................................... SOLUCION B
.....................................");
solucionB(cv);
System.out.println(".......................................................
..............................");
}
// SOLUCION A
private static void solucionA(CCircularVehiculos CV, String X) {
int n=CV.nroElem();
int contador=0;
double total=0;
CCircularVehiculos aux = new CCircularVehiculos();
for(int i=1;i<=(n);i++) {
Vehiculo elem=CV.eliminar();
if(elem.getPropietario().equalsIgnoreCase(X)) {
contador++;
total=total+elem.getImporte();
}
aux.adicionar(elem);
}
System.out.println("Propietario: "+X+"\n"+"Cantidad Vehiculo(s):
"+contador+"\n"+"Total Bolivianos : "+total+" bs.");
CV.vaciar(aux);
}
// SOLUCION B
private static void solucionB(CCircularVehiculos CV) {
int mayorCantidadV = propietarioMasVehiculos(CV);
CCircularVehiculos auxV = new CCircularVehiculos();
int n=CV.nroElem();
String X ="";
for(int i=1;i<=(n);i++) {
Vehiculo elem=CV.eliminar();
int contV=contadorVehiculos(CV, elem.getPropietario());
if(contV==mayorCantidadV) {
System.out.println("Propietario(a):
"+elem.getPropietario());
X=elem.getPropietario();
}
auxV.adicionar(elem);
}
CV.vaciar(auxV);
System.out.println("Vehiculo Mayor-Costo:
"+(vehiculoMayorCosto(CV,X))+" bs.");
}
for(int i=1;i<=(n);i++) {
Vehiculo elem=CV.eliminar();
if(elem.getPropietario() == propietario) {
contador++;
}
aux.adicionar(elem);
}
CV.vaciar(aux);
return contador;
}
for(int i=1;i<=(n);i++) {
Vehiculo elem=CV.eliminar();
aux.adicionar(elem);
copia.adicionar(elem);
}
CV.vaciar(aux);
return copia;
}
for(int i=1;i<=(n);i++) {
Vehiculo elem=CV.eliminar();
if(elem.getPropietario().equalsIgnoreCase(X)) {
R.adicionar(elem);
aux.adicionar(elem);
}
else {
aux.adicionar(elem);
}
}
CV.vaciar(aux);
return (vehiculoCostoso(R));
}
Clase Vehiculos
public class Vehiculo {
private String placa;
private String marca;
private String propietario;
private double importe;
// Getters y Setters
public String getPlaca() {
return placa;
}
// To String
@Override
public String toString() {
return "Vehiculo [placa=" + placa + ", marca=" + marca + ",
propietario=" + propietario + ", importe=" + importe + "]";
}
//System.out.println("*****************************************************
***************************" );
System.out.println(toString());
}
}
Clase CCircularVehiculos
CCircularVehiculos(){
ini = 0;
fin = 0;
}
System.out.println("*******************************************************
**********************************************");
CCircularVehiculos aux = new CCircularVehiculos ();
while (!esVacia ()){
Vehiculo elem = eliminar ();
aux.adicionar (elem);
elem.mostrarV();
}
System.out.println("*******************************************************
**********************************************");
vaciar(aux);
}
}