hola, tengo un programa ke captura diferentes tipos de empledos y los inserta en un arreglo, y un metodo ke utilizo para buscarlos dentro del arreglo, el problema ke tengo es con el metodo de busqueda ya ke no me marca ningun error pero tampoco lo busca.
aki pongo el codigo: el metodo con el ke tengo problemas esta en color azul.
using System;
using System.Collections.Generic;
using System.Text;
using Lectura;
namespace Poo
{
public abstract class Employee
{
private string name;
public string nss;
public Employee(string name, string nss)
{
this.name = name;
this.nss = nss;
}
public string getname()
{ return name; }
public abstract double GetGrossPay();
}
public class hourly : Employee
{
private double wage;
private double hours;
public hourly(string name, string nss, double wage, double hours)
: base(name, nss)
{
this.wage = wage;
this.hours = hours;
}
public override double GetGrossPay()
{
return wage * hours;
// throw new Exception("The method or operation is not implemented.");
}
}
public class salaried : Employee
{
protected double bass_pay;
public salaried(string name, string nss, double bass_pay)
: base(name, nss)
{
this.bass_pay = bass_pay;
}
public override double GetGrossPay()
{
return bass_pay;
//throw new Exception("The method or operation is not implemented.");
}
}
public class comissioned : salaried
{
private double sales;
private double commpct;
public comissioned(string name, string nss, double bass_pay, double sales, double commpct)
: base(name, nss, bass_pay)
{
this.sales = sales;
this.commpct = commpct;
}
public override double GetGrossPay()
{
return bass_pay + (sales * commpct);
//return base.GetGrossPay();
}
}
public class truckdriver : salaried
{
private double miles;
private double permile;
public truckdriver(string name, string nss, double bass_pay, double permiles, double miles)
: base(name, nss, bass_pay)
{
this.miles = miles;
this.permile = permile;
}
public override double GetGrossPay()
{
return bass_pay + (miles * permile);
//return base.GetGrossPay();
}
}
class PurebaEmpleado
{
private Employee[] arregloemp= new Employee[20];
private int pos = 0;
public void altahourly()
{
Console.WriteLine("Datos de Empleado por Hora: ");
Console.WriteLine("Nombre: ");
string nombre = Leer.dato();
Console.WriteLine("NSS: ");
string nss = Leer.dato();
Console.WriteLine("Horas Trabajadas: ");
double hours = Leer.datoDouble();
Console.WriteLine("Pagor Por Hora: ");
double phora = Leer.datoDouble();
hourly empleadoh = new hourly(nombre, nss, phora, hours);
Console.WriteLine("Sueldo "+empleadoh.GetGrossPay());
arregloemp[pos] = empleadoh;
pos++;
}
public void salried()
{
Console.WriteLine("Datos de Empleado por Asalariado: ");
Console.WriteLine("Nombre: ");
string nombre = Leer.dato();
Console.WriteLine("NSS: ");
string nss = Leer.dato();
Console.WriteLine("Sueldo: ");
double sueldo = Leer.datoDouble();
salaried empleados = new salaried(nombre, nss, sueldo);
arregloemp[pos] = empleados;
pos++;
}
public void comissioned()
{
Console.WriteLine("Datos de Empleado por Comision: ");
Console.WriteLine("Nombre: ");
string nombre = Leer.dato();
Console.WriteLine("NSS: ");
string nss = Leer.dato();
Console.WriteLine("Ventas: ");
double venta = Leer.datoDouble();
Console.WriteLine("CommPct: ");
double comicion = Leer.datoDouble();
Console.WriteLine("bass_pay: ");
double basepay = Leer.datoDouble();
comissioned empleadoc = new comissioned(nombre, nss, venta, comicion, basepay);
arregloemp[pos] = empleadoc;
pos++;
}
public void truckdriver()
{
Console.WriteLine("Datos de Truckdriver: ");
Console.WriteLine("Nombre: ");
string nombre = Leer.dato();
Console.WriteLine("NSS: ");
string nss = Leer.dato();
Console.WriteLine("Miles: ");
double miles = Leer.datoDouble();
Console.WriteLine("Permiles: ");
double permiles = Leer.datoDouble();
hourly empleadot = new hourly(nombre, nss, miles, permiles);
arregloemp[pos] = empleadot;
pos++;
}
public void busca()
{
Console.WriteLine("busqueda");
Console.WriteLine("Nss a buscar");
string datobus = Leer.dato();
foreach (Employee emp in arregloemp)
{
if (emp !=null)
if (emp.nss.CompareTo(datobus) ==0)
{
Console.WriteLine("nombre {0}, suelo {1}", emp.getname(), emp.GetGrossPay());
break;
}
}
}
} class usa
{
public static void Main()
{
int p;
PurebaEmpleado emphora = new PurebaEmpleado();
PurebaEmpleado empsalariado = new PurebaEmpleado();
PurebaEmpleado empcomicion = new PurebaEmpleado();
PurebaEmpleado empdriver = new PurebaEmpleado();
PurebaEmpleado busqueda = new PurebaEmpleado();
do
{
Console.WriteLine("1.- EMPLEADO POR HORA");
Console.WriteLine("2.- EMPLEADO POR ASALARIADO");
Console.WriteLine("3.- EMPLEADO POR COMISION");
Console.WriteLine("4.- CHOFER DE CAMION");
Console.WriteLine("5.- Buskeda");
Console.WriteLine("4.- SALIR");
Console.WriteLine("opcion");
p = Leer.datoInt();
switch (p)
{
case 1: Console.WriteLine("Alata empleado por hora;");
emphora.altahourly(); break;
case 2: Console.WriteLine("Alata empleado asalariado;");
empsalariado.salried(); break;
case 3: Console.WriteLine("Alata empleado Comicionado;");
empcomicion.comissioned(); break;
case 4: Console.WriteLine("Alata empleado Driver;");
empdriver.truckdriver(); break;
case 5: Console.WriteLine("Busca");
busqueda.busca(); break;
case 6: Console.WriteLine("Salir"); break;
}
} while (p != 6);
Console.ReadKey();
}
}
}
espero y me puedan ayudar
gracias