miércoles, 18 de marzo de 2009

TALLER SOBRE OBJETOS

1. Cree una clase llamada Empleado, en la que existan los recursos necesarios para efectuar las siguientes acciones:
• Obtener el número de horas trabajadas por el empleado
• Obtener el valor de cada hora trabajada por el empleado
• Obtener el valor de la comisión del empleado
• Calcular y Entregar el pago total del empleado
• Obtener/Entregar el nombre del empleado (En C# esto es una propiedad)
Restricciones de implementación:
• Asuma que si el empleado trabajó más de 48 horas, las horas extra se le cancelan con un porcentaje del 50% adicional al valor de la hora normal.
• No deben existir valores negativos en los argumentos de llamada a los elementos de la clase.
• Se debe permitir al usuario decidir en qué momento desea terminar de ejecutar la aplicación.
Cree una clase llamada PruebaEmpleado que utilice la clase Empleado

2. Cree una clase llamada Poligonos, en la que existan los recursos necesarios para efectuar las siguientes acciones:
• Obtener el valor del lado de un cuadrado
• Obtener el valor del los dos lados diferentes de un rectángulo
• Obtener los dos valores (base y altura) de un triángulo
• Calcular y Entregar el área de un cuadrado
• Calcular y Entregar el área de un rectángulo
• Calcular y Entregar el área de un triángulo
Restricciones de implementación:
• No deben existir valores negativos en los argumentos de llamada a los elementos de la clase.
• Se debe permitir al usuario decidir en qué momento desea terminar de ejecutar la aplicación.
Cree una clase llamada PruebaFiguras que utilice la clase Poligonos

SOLUCIONES PROPUESTAS

Clase Empleado:
using System;

public class Empleado
{
private double horasT, valorH, comision,pago;
private String nEmpleado;

//Obtener el número de horas trabajadas por el empleado
public void ObtenerHoras(double h)
{
horasT = ((h>0)?h:0);
}

//Obtener el valor de cada hora trabajada por el empleado
public void ObtenerValor(double v)
{
valorH = ((v>0)?v:0);
}

//Obtener el valor de la comisión del empleado
public void ObtenerComision(double c)
{
comision = ((c>0)?c:0);
}

//Calcular y Entregar el pago total del empleado
public double PagoEmpleado()
{
/*Asuma que si el empleado trabajó más de 48 horas,
* las horas extra se le cancelan con un porcentaje
* del 50% adicional al valor de la hora normal.*/
if (horasT > 48)
{
pago = ((horasT - 48) * valorH * 1.5) + (48 * valorH) + comision; ;
}
else {
pago = horasT * valorH + comision;
}
return pago;
}

//Obtener/Entregar el nombre del empleado (En C# esto es una propiedad)
public String NombreEmpleado
{
get
{
return nEmpleado;
}
set
{
nEmpleado = value;
}
}
}


Clase PruebaEmpleado
using System;
public class PruebaEmpleado
{
public static void Main(string[] args) {
Empleado MiEmpleado = new Empleado();
String horas, valor, comision, menu,nombre;
double horasD, valorD, comisionD;
int seguir = 1, opcion;

while(seguir == 1){
Console.WriteLine("Seleccione una opción:\n1.Calcular pago\n2.Salir");
menu = Console.ReadLine();
opcion = Convert.ToInt32(menu);
switch (opcion)
{
case 1: Console.WriteLine("\n\nDigite su nombre");
nombre = Console.ReadLine();
MiEmpleado.NombreEmpleado = nombre;

Console.WriteLine("Digite el número de horas trabajadas");
horas = Console.ReadLine();
horasD = Convert.ToDouble(horas);
MiEmpleado.ObtenerHoras(horasD);

Console.WriteLine("Digite el valor de cada hora trabajada");
valor = Console.ReadLine();
valorD = Convert.ToDouble(valor);
MiEmpleado.ObtenerValor(valorD);

Console.WriteLine("Digite el valor de la comisión");
comision = Console.ReadLine();
comisionD = Convert.ToDouble(comision);
MiEmpleado.ObtenerComision(comisionD);

Console.WriteLine(MiEmpleado.NombreEmpleado + " su pago es: " + MiEmpleado.PagoEmpleado());
break;
case 2: seguir = 0;
break;
default: Console.WriteLine("Seleccione una opción válida");
break;
}//switch
}//while
}//Main
}//class


Clase Poligonos
using System;
public class Poligonos
{
private int ladoC, baseR, ladoR, baseT, ladoT;

//Obtener el valor del lado de un cuadrado
public void Cuadrado(int l)
{
ladoC = ((l>0)?l:0);
}

//Obtener el valor del los dos lados diferentes de un rectángulo
public void Rectangulo(int l1,int l2)
{
baseR = ((l1 > 0) ? l1 : 0);
ladoR = ((l2 > 0) ? l2 : 0);
}

//Obtener los dos valores (base y altura) de un triángulo
public void Triángulo(int l1, int l2)
{
baseT = ((l1 > 0) ? l1 : 0);
ladoT = ((l2 > 0) ? l2 : 0);
}

//Calcular y Entregar el área de un cuadrado
public int AreaCuadrado()
{
return ladoC*ladoC;
}

//Calcular y Entregar el área de un rectángulo
public int AreaRectangulo()
{
return ladoR * baseR;
}

//Calcular y Entregar el área de un triángulo
public int AreaTriangulo()
{
return (ladoT * baseT)/2;
}
}


Clase PruebaFiguras
using System;
public class PruebaFiguras
{
public static void Main(string[] args)
{
Poligonos MisPoligonos = new Poligonos();
String lado1, lado2,menu;
int l1, l2;
int seguir = 1, opcion;

while (seguir == 1)
{
Console.WriteLine("Seleccione una opción:\n1.Área cuadrado\n2.Área rectángulo\n3.Área triángulo\n4.Salir");
menu = Console.ReadLine();
opcion = Convert.ToInt32(menu);
switch (opcion)
{
case 1: Console.WriteLine("\n\nDigite el tamaño de un lado del cuadrado");
lado1 = Console.ReadLine();
l1 = Convert.ToInt32(lado1);
MisPoligonos.Cuadrado(l1);
Console.WriteLine("El área del cuadrado es : " + MisPoligonos.AreaCuadrado());
break;

case 2: Console.WriteLine("\n\nDigite el tamaño de la base del rectángulo");
lado1 = Console.ReadLine();
l1 = Convert.ToInt32(lado1);

Console.WriteLine("\n\nDigite el tamaño de uno de los lados del rectángulo");
lado2 = Console.ReadLine();
l2 = Convert.ToInt32(lado2);

MisPoligonos.Rectangulo(l1, l2);

Console.WriteLine("El área del rectángulo es : " + MisPoligonos.AreaRectangulo());
break;

case 3: Console.WriteLine("\n\nDigite el tamaño de la base del triángulo");
lado1 = Console.ReadLine();
l1 = Convert.ToInt32(lado1);

Console.WriteLine("\n\nDigite el tamaño de la altura del triángulo");
lado2 = Console.ReadLine();
l2 = Convert.ToInt32(lado2);

MisPoligonos.Triángulo(l1, l2);

Console.WriteLine("El área del triángulo es : " + MisPoligonos.AreaTriangulo());
break;

case 4: seguir = 0;
break;
default: Console.WriteLine("Seleccione una opción válida");
break;
}//switch
Console.WriteLine("\n\n\n");
}//while
}//Main
}//class

1 comentario:

  1. Arreglos
    ¿puden ayudarme con este ejercicio de c#?

    -Programas que lea 10 números de 10 valores c/u (A1, A2)
    A) Intercalar los de los arreglos en 1 solo arreglo (R1).
    B) Determinar el valor mayor de R1.
    C) Determinar el promedio de R1
    C ++ y en C#

    -Programa que lea 10 números separa los pares e impares en arreglos diferentes, a los pares determínale su doble y a los impares su cuadrado la cantidad de pares e impares

    ResponderEliminar