Normalmente un problema resuelto con la metodología de programación orientada a objetos no interviene una sola clase, sino que hay muchas clases que interactúan y se comunican. Plantearemos un problema separando las actividades en dos clases.
Ejemplo 1
Un banco tiene 3 clientes que pueden hacer depósitos y extracciones. También el banco requiere que al final del día calcule la cantidad de dinero que hay depositada.
La Solución tendrá el siguiente esquema: Debemos definir los atributos y los métodos de cada clase:
Cliente
atributos
nombre
monto
métodos
constructor
Depositar
Extraer
RetornarMonto
Banco
atributos
3 Cliente (3 objetos de la clase Cliente)
métodos
constructor
Operar
DepositosTotales
Solución en C#
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace EjerciciosconClases
{
class Cliente
{
private string
nombre;
private int monto;
public Cliente(string
nom)
{
nombre = nom;
monto = 0;
}
public void
Depositar(int m)
{
monto = monto + m;
}
public void Extraer(int m)
{
monto = monto - m;
}
public int
RetornarMonto()
{
return monto;
}
public void
Imprimir()
{
Console.WriteLine(nombre + " tiene depositado la suma de " + monto);
}
}
class Banco
{
private Cliente
cliente1, cliente2, cliente3;
public Banco()
{
cliente1 = new Cliente("Yhonas");
cliente2 = new Cliente("Ana");
cliente3 = new Cliente("Pedro");
}
public void Operar()
{
cliente1.Depositar(100);
cliente2.Depositar(150);
cliente3.Depositar(200);
cliente3.Extraer(150);
}
public void
DepositosTotales()
{
int t = cliente1.RetornarMonto() +
cliente2.RetornarMonto() +
cliente3.RetornarMonto();
Console.WriteLine("El
total de dinero en el banco es:" + t);
cliente1.Imprimir();
cliente2.Imprimir();
cliente3.Imprimir();
}
static void Main(string[] args)
{
Banco banco1 = new
Banco();
banco1.Operar();
banco1.DepositosTotales();
Console.ReadKey();
}
}
}
Plantear un programa que permita jugar a los dados. Las reglas de juego son: se tiran tres dados si los tres salen con el mismo valor mostrar un mensaje que "gano", sino "perdió".
Lo primero que hacemos es identificar las clases:
Luego los atributos y los métodos de cada clase:
Dado
atributos
valor
métodos
constructor
Tirar
Imprimir
RetornarValor
JuegoDeDados
atributos
3 Dado (3 objetos de la clase Dado)
métodos
constructor
Jugar
Solución en C#
using
System;
using
System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EjerciciosconClases
{
class Dado
{
private int valor;
private static Random aleatorio;
public Dado()
{
aleatorio = new Random();
}
public void Tirar()
{
valor = aleatorio.Next(1, 7);
}
public void
Imprimir()
{
Console.WriteLine("El
valor del dado es:" + valor);
}
public int
RetornarValor()
{
return valor;
}
}
class JuegoDeDados
{
private Dado
dado1, dado2, dado3;
public JuegoDeDados()
{
dado1 = new Dado();
dado2 = new Dado();
dado3 = new Dado();
}
public void Jugar()
{
dado1.Tirar();
dado1.Imprimir();
dado2.Tirar();
dado2.Imprimir();
dado3.Tirar();
dado3.Imprimir();
if (dado1.RetornarValor() == dado2.RetornarValor()
&&
dado1.RetornarValor() == dado3.RetornarValor())
{
Console.WriteLine("Ganó");
}
else
{
Console.WriteLine("Perdió");
}
Console.ReadKey();
}
static void Main(string[] args)
{
JuegoDeDados j = new
JuegoDeDados();
j.Jugar();
}
}
}
excelente....
ResponderEliminarBueno
ResponderEliminarmuy bueno
ResponderEliminarBuenos ejemplos,me gustaria que collocation mas ejemplos.
ResponderEliminarComo hago para que un usuario cree clientes e ingrese los montos por teclado?
ResponderEliminar
Eliminaren esta parte tienes que poner en vez de depositar(100) un(Convert.ToInt32(Console.ReadLie());
public void Operar()
{
cliente1.Depositar(100);
cliente2.Depositar(150);
cliente3.Depositar(200);
cliente3.Extraer(150);
}
alguien tiene mas ejemplos de programacion orientada a objetos en lenguaje de c#
ResponderEliminarLo copie y lo pege pero todos los numeros de los dados me salen iguales al imprimirlos :,v
ResponderEliminarAlguien que me ayude con un programa
ResponderEliminarGRACIAS
ResponderEliminarNecesito que me realize este programa en c# creak una clase canción, con métodos y atributos
ResponderEliminarNesecito un programa de bocina como sería :(
ResponderEliminarComo puedo hacer para que me muestre el deposito y la extracción en diferentes líneas.
ResponderEliminarPor ejemplo:
Ana tiene un deposito de: 1000
Ana realizo una extracción de: 500
Del problema planteado realizar la solución utilizando los diferentes tipos de datos.
ResponderEliminarCree la clase carro con lo siguiente atributos:
Placa
Cilindraje
Servicio_publcio (bool)
Caballos (se calcula)
Cree los siguientes métodos:
Cargar datos
Mostrar datos
Calcular_caballos
Para calcular los caballos de potencia se debe multiplicar el cilindraje por 0.08
Implemente también un método que permita identificar si el carro tiene o no pico y placa con los siguientes criterios:
Los días pares los carros terminados entre 0 y 4 tienen pico y placa.
Los días impares los carros terminados entre 5 y 9 tienen pico y placa.
Si el carro es de servicio público no tendrá pico y placa ningún día.
NO se requiere de un menú.
Alguien que me ayude como hacer el problema del banco pero en escritorio
ResponderEliminar