Está en la página 1de 5

EJERCICIOS DE COLAS

Nombre: Yheremy Shuenguth Salguero Guardia


Ci: 9866815
Paralelo: “B”
Licenciada: Lic. Victoria Hurtado Cerruto

Elaborar un programa que permite considerar dos colas simples normales que contienen
datos de empleados <carnet, nombre, cargo, edad, sueldo> se pide:

A)¿ Cuenta a las secretarias y cuantas son?


Con la cola con datos extraemos al objeto empleado y usando un el método getCargo
podremos contar a las secretarias.

B)Eliminar a todos los empleados de mas de 65 años


Extrayendo al objeto empleado preguntamos que edad tiene y si sobrepasa los 65 no se le
incluye en la cola auxiliar, así al momento de vaciar los elementos ya no estará en la cola
original.

C) A cuanto asciende el importe por concepto de sueldos


Obteniendo el sueldo de cada objeto de la cola podríamos calcular en una variable que sume
todo los sueldos y así tendremos el importe.

D)Mostrar a todos empleados que ganan mas de 10000Bs


Usando el método de getSueldo podremos obtener el sueldo y comparar si este excede los
10000, comprobado eso usamos el método mostrar del objeto.

Implementacion

Clase Cola Simple

package colas;

import java.util.Scanner;
public abstract class ColaSimple {
protected int ini,fin,max;
protected Object v[]=new Object[100];
ColaSimple(int ca) //estadoinicial
{ ini=0;fin=0;max=ca;}
abstract boolean esVacia();
abstract boolean esLlena();
abstract void adicionar(Object x);
abstract Object eliminar();
abstract void mostrar();
abstract int nElem();
void llenaEnteros(int n) //llena la cola con enteros
{
int i;Scanner lee=new Scanner(System.in);
for(i=1;i<=n;i++)
{ Object dato=new Integer(lee.nextInt());
adicionar(dato);
}
}
}
Clase CSNormal

package colas;
import java.util.Scanner;
public class CSNormal extends ColaSimple {
CSNormal(int ca)
{ super(ca);}
boolean esVacia()
{
if ((ini==0)&& (fin==0)) return true;
else return false;
}
boolean esLlena()
{
if (fin==max) return true;
else return false;
}
void adicionar(Object x)
{
if (!esLlena()){if (esVacia()) ini=1;
fin++;
v[fin]=x;
}
else System.out.print("Cola llena");
}
Object eliminar()
{Object x=null;
if(!esVacia()){
x=v[ini];ini++;
if (ini>fin){ini=0;fin=0;}
}
else System.out.println("Cola vacia...");
return(x);
}
void mostrar()
{CSNormal aux=new CSNormal(max);
if(!esVacia())
{
while (!esVacia()){
Empleado x=(Empleado) eliminar();
x.mostrar();
aux.adicionar(x);
}
vaciar(aux);
}
else System.out.println("Cola vacia..."); //
}
void vaciar(CSNormal B)
{
while (!B.esVacia())
adicionar(B.eliminar());
}
int nElem()
{
if (!esVacia())return (fin-ini+1);
else return (0);
}
int getMax()
{
return max;
}
void llenaEnteros(int n)
{
super.llenaEnteros(n);
}
}

Clase Empleado

package colas;
import java.util.Scanner;
public class Empleado {
Scanner lee=new Scanner(System.in);
private int carnet;
private String nombre;
private String cargo;
private int edad;
private double sueldo;
Empleado(String n,int e,int c,double s,String x){
nombre=n;
edad=e;
carnet=c;
cargo=x;
sueldo=s;
}
public int getCarnet() {
return carnet;
}
public void setCarnet(int carnet) {
this.carnet = carnet;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public double getSueldo() {
return sueldo;
}
public void setSueldo(double sueldo) {
this.sueldo = sueldo;
}
public void mostrar(){
System.out.println("Empleado
[nombre="+nombre+",carnet="+carnet+",edad="+edad+",sueldo="+sueldo+",c
argo="+cargo+"]");
System.out.println("---------------------------------------
--------");
}
}

Main

package colas;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner lee=new Scanner(System.in);
CSNormal A=new CSNormal(50);
CSNormal B=new CSNormal(50);
int n;
Empleado e = new Empleado("Pepe le
pu",35,35745,100000,"secretaria");
Empleado f = new Empleado("Carlos
Lopez",67,78734,7062,"hobrero");
Empleado g = new Empleado("Perico de los
Palotes",56,26378,120000,"gerente");
Empleado h = new Empleado("Cala
Rocha",36,12335,1234,"secretaria");
A.adicionar(e);
A.adicionar(f);
A.adicionar(g);
A.adicionar(h);
//a)cuenta a las secretarias y cuantas son
int c=0;
CSNormal Z=new CSNormal(50);
while(!A.esVacia()){
Empleado ex=(Empleado) A.eliminar();
if(ex.getCargo().equals("secretaria")){
c++;
}
Z.adicionar(ex);
}
A.vaciar(Z);
System.out.println("El numero de secretarias es:"+c);
System.out.println("Cola de empleados");
A.mostrar();
//b)Eliminar a todos los empleados de mas de 65 años
while(!A.esVacia()){
Empleado ex=(Empleado) A.eliminar();
if(ex.getEdad()<=65){
Z.adicionar(ex);
}
}
A.vaciar(Z);
System.out.println("Cola eliminando a los empleados con mas
de 65");
A.mostrar();
//c)a cuanto haciende el importe de sueldos
double s=0;
while(!A.esVacia()){
Empleado ex=(Empleado) A.eliminar();
s=s+ex.getSueldo();
Z.adicionar(ex);
}
System.out.println("El importe de sueldos asiende a:"+s);
A.vaciar(Z);
//d)mostrar a todos los empleados que ganas mas de 10000bs
System.out.println("Empleados que ganas mas de 10000bs");
while(!A.esVacia()){
Empleado ex=(Empleado) A.eliminar();
if(ex.getSueldo()>10000){
ex.mostrar();
}
Z.adicionar(ex);
}
A.vaciar(Z);
}
}

Ejecucion

También podría gustarte