[ Foro de C# ]

metodos y clases

15-Oct-2014 06:41
Yiss Barris
3 Respuestas

Hola buen día.
Empiezo a hacer mis programitas de POO, pero la verdad no entiendo mucho. Me esta costando trabajo enteder. Cosa que leo me llena de dudas.
En la escuela me pidieron un programa que muestra nombre, compañía y salario.
Si salario > $1500 se descuenta el 20% y si salario < $1000 se da un bono de $100.      

Lo hice por programación lineal y es este:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test2
{
    class Program
    {
        static void Main(string[] args)
        {
            //Declaraciones globales.
            string lv_name, lv_key;
            int index;
            
            //Variables contadoras y acumuladoras.
            int lv_num = 0,
                lv_salary = 0,
                lv_tot_sal = 0;           

            do
            {
                //Lee nombre.
                System.Console.Write("\n¿Cuál es tu nombre? ");
                lv_name = Console.ReadLine();
                System.Console.Write("");

                //Inicializar variable.
                lv_tot_sal = 0;

                //Validar nombre.
                if (lv_name == "Ricardo" || lv_name == "ricardo")
                {
                    System.Console.Write("");
                    System.Console.Write("Eres el robacódigos");
                    System.Console.WriteLine("\n*****************************************************************************");
                }

                else
                    if (lv_name == "dolores" || lv_name == "Dolores")
                    {
                        //Declaración de variables locales.
                        string lv_com;
                        double lv_desc, lv_bono;

                        //Lee días.
                        System.Console.Write("¿En dónde trabajas? ");
                        lv_com = Console.ReadLine();
                        System.Console.Write("\n");

                        //Días trabajados
                        System.Console.Write(" ¿Cuántos días trabajas? ");
                        lv_num = int.Parse(Console.ReadLine());
                        System.Console.Write("");

                        for (index = 1; index <= lv_num; index++)
                        {
                            //Salario.
                            System.Console.Write("");
                            System.Console.Write(" Ingresa tu salario en el día {0}: $", index);
                            lv_salary = int.Parse(Console.ReadLine());
                            
                            //Salario total.
                            lv_tot_sal += lv_salary;
                        }
                       
                        //Re-inicializar variables.
                        lv_salary = 0;
                        lv_num = 0;
                        
                        System.Console.Write("\nHola {0}. Trabajas en {1}", lv_name, lv_com);
                        
                        //Validar salario.
                        if (lv_tot_sal >= 1500)
                        {
                            lv_desc = lv_tot_sal * .8;
                            System.Console.Write("\nTu salario es de: ${0} y menos el 20% es: ${1}", lv_tot_sal, lv_desc);
                            System.Console.WriteLine("\n*****************************************************************************");
                        }
                        else
                            if (lv_tot_sal <= 1000)
                            {
                                lv_bono = lv_tot_sal + 100;
                                System.Console.Write("\nTu salario es de: ${0} y más un bono de $100 ahora tienes: ${1}", lv_tot_sal, lv_bono);
                                System.Console.WriteLine("\n*****************************************************************************");
                            }
                    }

                System.Console.Write("\n\nPresiona <s> si deseas continuar.. ");
                lv_key = Console.ReadLine();
                System.Console.Write("\n");

            } while (lv_key == "s" || lv_key == "s");
                 if (lv_key != "S" || lv_key != "s")
                    {
                     System.Console.Write("Adiós...");
                    }

         Console.ReadLine();
        }
    }
}


pero cuando paso a OOP la verdad ya no se que hacer.
Alguien me puede ayudar??


15-Oct-2014 09:35
Nacho Cabanes (+83)

Es que en ese problema no aparece ningún objeto. Siendo optimistas, se podría pensar que hay un objeto "persona" y que esos 3 datos que te piden (nombre, compañía y salario) sean atributos de ese objeto "persona", que debas leer con un "Get" y asignar con un "Set", pero pregunta mejor a tu profesor qué pretende que hagas, porque no es necesario usar objetos para un programa tan simple.


16-Oct-2014 15:22
Yiss Barris

Pues el profesor pidio hacer todo esto primero con programacion lineal y luego pasarlo a objetos.
Es mi 50% para derecho a examen. y el otro 50% ya lo hicieron y no me quieren ayudar :(
Me podría alguien ayudar por favor.


16-Oct-2014 23:10
Nacho Cabanes (+83)

En un ejercicio tan ambiguo, tan poco aplicable a la POO y sin saber qué conoces de POO, es difícil guiarte.

Pues entonces puedes crear por ejemplo una clase persona, con atributos como el nombre:


public class Persona
{
    string nombre;
    
    public void SetNombre(string n)
    {
        nombre = n;
    }
    
    public string GetNombre()
    {
        return nombre;
    }
}


Entonces, en tu programa guardarías datos en ese objeto y los leerías de él. Por ejemplo, lo que antes era


lv_name = Console.ReadLine();


ahora se convertiría en


Persona p = new Persona();
p.SetNombre(Console.ReadLine());


y lo que era


if (lv_name == "Ricardo")


podría ser


if (p.GetNombre() == "Ricardo")


Queda un poco forzado, pero al menos supone usar objetos...






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)