Está en la página 1de 16

Materia: LAB - 121

1 Docente: Lic. Marcelo Aruquipa Carrera: Informática


R
Paralelo: “F” Fecha: 30/03/2023

Nombre: Robles Diaz Alan Felipe CI: 8339037 Lp Firma:

1. Enunciado del ejercicio


Sea el siguiente diagrama de clases:

Se pide:
a) Instanciar 2 Libros de forma distinta y mostrarlos.
b) Sobrecargar el método “mostrar” para mostrar las páginas que tengan la palabra “compromiso”
c) Sobrecargar al operador ! (true/false) para verificar si la página de número x no está vacía.
d) Sobrecargar al operador (++) para contar el número de palabras que hay en cada página de
libro.

Codigo fuente

using System;
public class Libro {
    private String nombre;
    private String colorTapa;
    private int nroPaginas;
    private String[] P = new String[30];

    public Libro() 
    {
        this.nombre = "Mil Noches";
        this.colorTapa = "Rojo";
        this.nroPaginas = 3;
        this.P[0]="Habia una noche que parecia mil noches";
        this.P[1]="Una noche un ladron entro al castillo";
        this.P[2]="Se quedo dormida para siempre";
    }
    public Libro(String nombre, String colorTapa) 
    {
        this.nombre = nombre;
        this.colorTapa = colorTapa;
        this.nroPaginas = 2;
        this.P[0]="Cuando desperto habia pasado mil noches largas";
        this.P[1]="Y al fin pudo verse con su amor platonico";
    }
    public void mostrar()
    {
        Console.WriteLine("Nombre: " + this.nombre);
        Console.WriteLine("Color de Tapa: " + this.colorTapa);
        Console.WriteLine("Nro de Paginas: "+this.nroPaginas);
        for (int i = 0; i < nroPaginas; i++) {
            Console.WriteLine((i+1) + ".- "+this.P[i] + "     ");
        }
    }
    public void mostrar(String palX)
    {
        int existe = 0;
        for (int i = 0; i < nroPaginas; i++) {
            if(this.P[i]==(palX)+" ")
            {
                existe = 1;
            }else{
                existe = 0; 
            }
        }
        if(existe==1)
        {
            Console.WriteLine("Paginas en la que se encuentra la palabra compromiso: "+this.nroPaginas);
            
        }else{
            Console.WriteLine("No se encontro la palabra compromiso");
        }
    }
                     
    public static bool operator !(Libro lx)
    {
        bool sw = true;
        int cont=0;
        String cad="a";
        if(lx.nroPaginas>=1)
        {
            for (int i = 0; i < lx.nroPaginas; i++) {
                if(lx.P[i]=="")
                {
                    cont++;
                }
            }if(cont==lx.nroPaginas)
            {
                sw = false;
            } 
        } else {
            sw = false;
        }
        return sw;
        Console.WriteLine();
    }
    
    public static Libro operator ++(Libro px)
    {
        int cont = 0;
        for (int i = 0; i < px.nroPaginas; i++) {
            if (!(px.P[i]== " "))
            {
                px.P[i]=px.P[i]+" ";
                string cadena=px.P[i];
                int nroCar=cadena.Length;
                for(int j=0;j<nroCar;j++)
                {
                    if( cadena[j]== ' ')
                    {
                        cont++;
                    }
                }
            }
        }
        Console.WriteLine("El Libro tiene : "+ cont+" palabras ");
        return px;
    }
    

}
// Clase Principal
using System;
class Program
{
    public static void Main(string[] args)
    {
        //a) Instanciar 2 libros de forma distinta y mostrarlos
        Console.WriteLine("\n******ROBLES DIAZ ALAN FELIPE******");
        Libro l1 = new Libro();
        Libro l2 = new Libro("Harry Potter","Azul");
        Console.WriteLine("\n****LIBRO 1****");
        l1.mostrar();
        Console.WriteLine("\n****LIBRO 2****");
        l2.mostrar();
        // b) Sobrecargar el método “mostrar” para mostrar 
        // las paginas que tengan la palabra “compromiso”
        Console.WriteLine("\n****INCISO B)****");
        l1.mostrar("compromiso");
        // c) Sobrecargar al operador ! (true/false) para 
        // verificar si la página de número x no está vacía.
        Console.WriteLine("\n****INCISO C)****");
        if(!l2)
        {
            Console.WriteLine("La Pagina no esta vacia");
        }
        else
        {
            Console.WriteLine("La Pagina si esta vacia");
        }
        
        Console.WriteLine("\n****INCISO D)****");
        l1++;
        l2++;
        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
    }
}

Captura de pantalla de la ejecución


2. Enunciado del ejercicio
Sea el siguiente diagrama de clases

Se pide:
a) Instanciar 3 Cajas de forma distintas y mostrarlas
b) Sobrecargar el operador (--) en la clase Objeto, para disminuir el costo de todos los objetos de
la caja X en un 50 %.
c) Sobrecargar el operador (-) para vaciar el contenido de una caja X que se encuentra en mal
estado hacia una caja Y que está en buen estado
d) Sobrecargar el operador (++) en la clase Caja, para leer un nuevo color para la caja, y mostrar
los objetos que tienen nombres palindromes.
Codigo fuente

using System;
public class Caja
{
    private string color, estado;
    private int nroObj;
    private Objeto[]obj=new Objeto[50];
    
    public Caja()
    {
        this.color="rosado";
        this.estado="malo";
        this.nroObj=3;
        obj[0]= new Objeto("rodador",150);
        obj[1]= new Objeto("pantalon",50);
        obj[2]= new Objeto("camisa",230);
    }
    public Caja(string color)
    {
        this . color=color;
        this . estado="bueno";
        this . nroObj=2;
        obj[0]= new Objeto("reloj",120);
        obj[1]= new Objeto("calculadora",150);
        
    }
    public Caja(string color, string estado)
    {
        this . color=color;
        this . estado=estado;
        this . nroObj=2;
        obj[0]= new Objeto("saco",150);
        obj[1]= new Objeto("zapato",50);
        
    }
    public void mostrar()
    {
        Console.WriteLine(" COLOR : "+ this . color);
        Console.WriteLine(" ESTADO : "+ this . estado);
        Console.WriteLine(" NUMERO DE OBJETOS : "+ this . nroObj);
        for(int i=0;i< this . nroObj;i++)
        {
            int p=i+1;
            Console.WriteLine(" --- objeto "+p+" ---");
            Objeto ob=new Objeto();
            obj[i].mostrar();
        }
    }
    public string getEstado()
    {
    
        return this . estado;
    }
    public void setEstado(string estado)
    {
        this . estado=estado;
    }
    public int getNrobj()
    {
    
        return this . nroObj;
    }
    public void setNroObj( int nroObj)
    {
        this . nroObj=nroObj;
    }
    
    public void disminuirCostoAl50porciento()
    {
    
        for(int i=0;i< this . nroObj;i++)
        {
            Objeto ob=new Objeto();
            obj[i]--;
    
        }
    }
    public static Caja operator -(Caja x, Caja y)
    {
        if(x.getEstado()=="malo" && y.getEstado()=="bueno" )
        {
            int con=0;
            int nro=y.getNrobj();
            int nroObjetos=x.getNrobj()+y.getNrobj();
            y.setNroObj(nroObjetos);
            for(int i=nro;i<y.getNrobj();i++)
            {
                y.obj[i]=x.obj[con];
                int k=1;
                while (k<=x.getNrobj())
                {
                    x.obj[k-1]=x.obj[k];
                    k++;
                }
                x.setNroObj(x.getNrobj()-1);
            }
        }
        else{
            Console.WriteLine("NO se completo el vaciado , porque la primera caja no esta ");
            Console.WriteLine("en mal estado o la segunda caja no esta en buen estado ");
        } return y;
    }
    public static Caja operator ++(Caja cx)
    {
        Console.WriteLine(" INTRODUZCA EL COLOR : ");
        cx.color=Console.ReadLine();
        Console.WriteLine(" INTRODUZCA EL ESTADO : ");
        cx.estado=(Console.ReadLine());
        Console.WriteLine(" ------ OBJETOS CON NOMBRE PALINDROMES -------");
        for(int i=0;i<cx.getNrobj();i++)
        {
            Objeto obje=new Objeto();
            obje=cx.obj[i];
            bool sw= true ;
            string pal=obje.getNombre();
            int cant=pal.Length;
            int mit=cant/2;
            int j=cant-1;
            for(int k=0;k<mit;k++)
            {
                if (!(pal[k]==pal[j]))
                {
                    sw= false ;
                    break ;
                }
                j --;
            }
            if(sw)
                obje.mostrar();
        }
        return cx;
    }
}

using System;
public class Objeto
{
    private string nombre;
    private int costo;
    public Objeto()
    {
        this.nombre=" cafe ";
        this.costo=30;
    }
    public Objeto(string nombre, int costo)
    {
        this.nombre=nombre;
        this.costo=costo;
    }
    public void leer()
    {
        Console.WriteLine("*** OBJETO *** ");
        Console.WriteLine(" INTRODUZCA EL NOMBRE : ");
        this . nombre=Console.ReadLine();
        Console.WriteLine(" INTRODUZCA EL COSTO : ");
        this . costo= int. Parse(Console.ReadLine());
        Console.WriteLine("\n");
    }
    public void mostrar()
    {
        Console.WriteLine("*** OBJETO *** ");
        Console.WriteLine(" NOMBRE : "+ this . nombre);
        Console.WriteLine(" COSTO : "+ this . costo);
        Console.WriteLine();
    }
    public int getCosto()
    {
        return this . costo;
    }
    public void setCosto( int costo)
    {
        this . costo=costo;
    }
    public string getNombre()
    {
        return this . nombre;
    }
    public void setNombre(string nombre)
    {
        this . nombre=nombre;
    }
    public static Objeto operator --(Objeto ox)
    {
        ox.setCosto((ox.getCosto()/2));
        return ox;
    }
}
// Clase Principal
using System;
class Program
{
    public static void Main(string[] args)
    {
        //a) INSTANCIAR 3 CAJAS DE FORMA DISTINTAS Y MOSTRARLAS
        // CAJA 1
        Console.WriteLine("\n******ROBLES DIAZ ALAN FELIPE******");
        Caja C1= new Caja();
        // CAJA 2
        Caja C2= new Caja("verde");
        // CAJA 3
        Caja C3= new Caja("azul","malo");
        // MOSTRAR LAS 3 CAJAS
        Console.WriteLine("****CAJA 1****");
        C1.mostrar();
        Console.WriteLine("****CAJA 2****");
        C2.mostrar();
        Console.WriteLine("****CAJA 3****");
        C3.mostrar();
        //b) Sobrecargar el operador (--) para disminuir el costo de
        // todos los objetos de la caja X en un 50 %.
        Console.WriteLine("---INCISO B)");
        Console.WriteLine(" LA CAJA ANTES DEL DESCUENTO ");
        C1.mostrar();
        C1.disminuirCostoAl50porciento();
        Console.WriteLine(" LA CAJA DESPUES DEL DESCUENTO ");
        C1.mostrar();
        //c) Sobrecargar el operador (-) para vaciar el contenido de una caja X que se
        // encuentra en mal estado hacia una caja Y que esta en buen estado
        Console.WriteLine("---INCISO C)");
        C2=C1-C2;
        Console.WriteLine(" CAJA EN BUEN ESTADO CON SUS OBJETOS Y LOS OBJETOS DE LA CAJA EN MAL
ESTADO ");
        C2.mostrar();
        //d) Sobrecargar el operador (- -) en la clase Caja , para leer un nuevo color
        // para la caja , un nuevo estado para la caja , y mostrar los objetos que tienen
        // nombres palindromes .
        Console.WriteLine("---INCISO D)");
        C2++;
        
        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
    }
}

Captura de pantalla de la ejecución


3. Enunciado del ejercicio
Considere el siguiente diagrama de clases:

Se pide:
a) Instanciar 2 Veterinarias y 1 Propietario de diferente manera
b) Sobrecargar el método mostrar para:
- Mostrar una veterinaria
- Mostrar las mascotas felinas del propietario de ci x
- Mostrar al propietario de dirección X.
c) Sobrecargar al operador (>) para Eliminar los registros en la veterinaria de el Propietario de
nombre x.
d) Sobrecargar el operador (=) para calcular cuantas mascotas caninas y felinas tiene el
Propietario de celular x.

Codigo fuente

using System;    
public class Veterinaria
{
    private string nombre;
    private int nroPropietarios;
    private string [,]Prop=new string [100,3];
    
    public Veterinaria()
    {
        this.nombre = "Angelitos";
        this.nroPropietarios = 3;
        Prop[0,0]="12345"; Prop[0,1]="74589384"; Prop[0,2]="Irpavi";
        Prop[1,0]="67891"; Prop[1,1]="78643523"; Prop[1,2]="Miraflores";
        Prop[2,0]="23456"; Prop[2,1]="65473829"; Prop[2,2]="Sopocachi";
    }
    public Veterinaria(string nombre)
    {
        this.nombre = nombre;
        this.nroPropietarios = 2;
        Prop[0,0]="8339037"; Prop[0,1]="69824159"; Prop[0,2]="Villa Fatima";
        Prop[1,0]="4897320"; Prop[1,1]="62541088"; Prop[1,2]="Obrajes";
        
    }
    public void mostrar()
    {
        Console.WriteLine("Nombre: " + this.nombre);
        Console.WriteLine("Nro de Propietarios: "+this.nroPropietarios);
        for (int i = 0; i < nroPropietarios; i++) {
            Console.WriteLine((i+1)+".- "+this.Prop[i,0]+"  "+this.Prop[i,1]+"  "+this.Prop[i,2]);
        }
    }
    public void mostrar(string nom)
    {
        if(this.nombre == nom) {
            Console.WriteLine("Nombre Veterinaria: " + this.nombre);
            Console.WriteLine("Nro de Propietarios: "+this.nroPropietarios);
            for (int i = 0; i < nroPropietarios; i++) {
            Console.WriteLine((i+1)+".- "+this.Prop[i,0]+"  "+this.Prop[i,1]+"  "+this.Prop[i,2]);
            }
        }
    }
    public void mostrar(Propietario a, string ciX)
    {
        if(a.Ci == ciX) {
            for (int i = 0; i < a.NroMascotas; i++) {
                if(a.Mascotas[i,1]=="Felina")
                {
                    Console.WriteLine(a.Mascotas[i,0]);
                }
            }
        } else{
            Console.WriteLine("No existe ese Propietario");
        }
    }
    public void mostrar(Propietario z, string direccionX, string nom)
    {
             bool sw=false;
            for (int i = 0; i < this.nroPropietarios; i++) 
            {
                if(this.Prop[i,2] == direccionX)
                {
                    sw=true;
                    z.mostrar();
                }
                else{
                    sw=false;
                }
            }
            if(sw=false)
            {
                Console.WriteLine("No existe esa Direccion");
            }
    }
    
    public static int operator == (Veterinaria a, Propietario b)
    {
        int cont=0;
        for(int i=0;i< a.nroPropietarios;i++)
        {
            if(b.Mascotas[i,1]=="Canina"|| b.Mascotas[i,1]=="Felina")
            {
                cont++;
            }
        }
        return cont;
        
    }
    public static int operator !=(Veterinaria a, Propietario b){
            return 0;
        }
    
}

using System;
public class Propietario
{
    private string nombre;
    private string ci;
    private int nroMascotas;
    private string [,]mascotas=new string [100,3];
    
    public Propietario()
    {
        this.nombre = "Pepe Aguilar";
        this.ci = "8697654";
        this.nroMascotas = 3;
        mascotas[0,0]="Huesos"; mascotas[0,1]="Canina"; mascotas[0,2]="101";
        mascotas[1,0]="Luna"; mascotas[1,1]="Felina"; mascotas[1,2]="102";
        mascotas[2,0]="Bigotes"; mascotas[2,1]="Felina"; mascotas[2,2]="103";    
    }
    
    public void mostrar()
    {
        Console.WriteLine("Nombre Propietario: " + this.nombre);
        Console.WriteLine("CI: " + this.ci);
        Console.WriteLine("Nro de Mascotas: "+this.nroMascotas);
        for (int i = 0; i < nroMascotas; i++) {
            Console.WriteLine((i+1) + ".- "+this.mascotas[i,0]+"  "+this.mascotas[i,1]+"  "+this.mascotas[i,2]);
        }
    }
    public string Nombre {
        get { return nombre; }
        set { nombre = value; }
    }
    public string Ci {
        get { return ci; }
    }
    public int NroMascotas {
        get { return nroMascotas; }
        set { nroMascotas = value; }
    }
    public string[,] Mascotas {
        get { return mascotas; }
        set { mascotas = value; }
    }
}

using System;

class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("\n******ROBLES DIAZ ALAN FELIPE******");
        //a) Instanciar 2 Veterinarias y 1 Propietario de diferente manera
        Veterinaria v1 = new Veterinaria();
        Veterinaria v2 = new Veterinaria("Peludines");
        Propietario p = new Propietario();
        Console.WriteLine("\n****VETERINARIA 1****");
        v1.mostrar();
        Console.WriteLine("\n****VETERINARIA 2****");
        v2.mostrar();
        Console.WriteLine("\n****PROPIETARIO****");
        p.mostrar();
        Console.WriteLine("\n****INCISO B)****");
        Console.WriteLine("\nSobrecargar el método mostrar para: Mostrar una veterinaria");
        v1.mostrar("Angelitos");
        v2.mostrar("Angelitos");
        Console.WriteLine("\nSobrecargar el método mostrar para: Mostrar las mascotas" 
                          +" felinas del propietario de ci x");
        v1.mostrar(p,"8697654");
        Console.WriteLine("\nSobrecargar el método mostrar para: Mostrar al propietario de direccion X");
        v1.mostrar(p,"Miraflores"," ");
        Console.WriteLine("\n****INCISO D)****");
        Console.WriteLine("El propietario tiene: ");
        Console.WriteLine((v1==p)+" Mascotas Felinas y Caninas");
        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
    }
}

+
Captura de pantalla de la ejecución

También podría gustarte