Skocz do zawartości

Martita

Członkowie
  • Postów

    1
  • Dołączył

  • Ostatnio

Posty napisane przez Martita

  1. Szukałam i nie znalazłam

    Jak odwołać się z konstruktora klasy Osoba do konstruktora klasy Adres?

    Wyskakuje mi błąd w klasie Osoba, z którym nie wiem jak sobie poradzić. Już drugi tydzień się z tym męczę.

    Proszę o pomoc i wytłumaczenie.

    Nie mogę zastosować get, sat i nie mogę zmieniać kodu w klasie Program. W klasie Osoba i Adres wszystkie nazwy muszą pozostać takie jakie są. Kod trzeba przerobić tak aby efekt końcowy był jak na obrazku.

    ?qa=blob&qa_blobid=13587513354276143587

    Klasa Osoba

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Kadry
    {
        public class Osoba
        {
            private int numerEwidencyjny;
            private string nazwisko;
            private string imie;
            Adres adres;
    
            public Osoba(int numerEwidencyjny, string nazwisko, string imie, Adres adres)
            {
                this.numerEwidencyjny = numerEwidencyjny;
                this.nazwisko = nazwisko;
                this.imie = imie;
                this.adres = adres;
            }
    
            public Osoba(int numerEwidencyjny, string imie, int numerDomu) :
            this(numerEwidencyjny, "Kowalski", imie, "02-222", "Warszawa", "Aleje Jerozolimskie", numerDomu, 0) { }
    
            public Osoba(ref Osoba osoba)
            {
                numerEwidencyjny = osoba.numerEwidencyjny;
                nazwisko = osoba.nazwisko;
                imie = osoba.imie;
                adres = osoba.adres;
            }
    
            public string ZwrocKod()
            {
                return adres.kod;
            }
    
            public string ZwrocMiejscowosc()
            {
                return adres.miejscowosc;
            }
    
            public string ZwrocNazweUlicy()
            {
                return adres.nazwaUlicy;
            }
           
            public int ZwrocNumerDomu()
            {
                return adres.numerDomu;
            }
    
            public int ZwrocNumerMieszkania()
            {
                return adres.numerMieszkania;
            }
    
            public string ZwrocInformacjeOsobowe()
            {
                return string.Format("\n Pan(i) {0} {1} o numerze ewidencyjnym: {2} zamieszkały(a): {3} {4} {5}",
                nazwisko, imie, numerEwidencyjny, ZwrocKod(), ZwrocMiejscowosc(),
              ZwrocNazweUlicy() + " " + ZwrocNumerDomu() + " m" + ZwrocNumerMieszkania());
            }
    
            public void ZmienDaneOsobowe()
            {
                Console.Write("Podaj imię: "); imie = Console.ReadLine();
                Console.Write("Podaj nazwisko: "); nazwisko = Console.ReadLine();
                do
                {
                    Console.Write("Podaj numer ewidencyjny: ");
                }
                while (!int.TryParse(Console.ReadLine(), out numerEwidencyjny));
            }
    
            public void ZmienAdres()
            {
                Console.Write("Podaj kod: ");
                adres.kod = Console.ReadLine();
    
                Console.Write("Podaj nazwę miejscowści: ");
                adres.miejscowosc = Console.ReadLine();
    
                Console.Write("Podaj nazwę ulicy ");
                adres.nazwaUlicy = Console.ReadLine();
    
    
    
                do
                {
                    Console.Write("Podaj numer domu: ");
    
                }
    
                while (!int.TryParse(Console.ReadLine(), out adres.numerDomu));
    
                Console.Write("Czy jest numer mieszkania <t/n>: ");
                char c = Console.ReadKey().KeyChar;
                if (c == 't')
                {
                    Console.WriteLine();
    
                    do
                    {
                        Console.Write("Podaj numer meszkania: ");
                    }
    
                    while (!int.TryParse(Console.ReadLine(), out adres.numerMieszkania));
    
                }
    
                else
                {
                    adres.numerMieszkania = 0;
                }
    
            }
    
            public Osoba Klonuj()
            {
                return (Osoba)this.MemberwiseClone();
            }
    
        }
    
    
    }

    Klasa Adres

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Kadry
    {
        public class Adres
        {
            public string kod;
            public string miejscowosc;
            public string nazwaUlicy;
            public int numerDomu;
            public int numerMieszkania;
    
            public Adres(string kod, string miejscowosc, string nazwaUlicy, int numerDomu, int numerMieszkania)
            {
                this.kod = kod;
                this.miejscowosc = miejscowosc;
                this.nazwaUlicy = nazwaUlicy;
                this.numerDomu = numerDomu;
                this.numerMieszkania = numerMieszkania;
            }
    
            public Adres(ref Adres adres)
            {
                kod = adres.kod;
                miejscowosc = adres.miejscowosc;
                nazwaUlicy = adres.nazwaUlicy;
                numerDomu = adres.numerDomu;
                numerMieszkania = adres.numerMieszkania;
            }
    
        }
    
    
    }

    Klasa Program

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Kadry
    {
        public class Program
        {
            static void Main(string[] args)
            {
                Osoba os1 = new Osoba(5, "Ola", 43);
                Console.WriteLine(" Oryginał {0}", os1.ZwrocInformacjeOsobowe());
                Console.WriteLine("\n***Zmieniamy klon:***\n");
                Osoba klon1 = os1.Klonuj();
                Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe());
                klon1.ZmienDaneOsobowe();
                klon1.ZmienAdres();
                Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe());
    
                Osoba os3 = new Osoba(ref os1);
                Console.WriteLine(" Oryginał {0}", os3.ZwrocInformacjeOsobowe());
                Console.WriteLine("\n***Zmieniamy klon:***\n");
                Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe());
                klon1.ZmienDaneOsobowe();
                klon1.ZmienAdres();
                Console.WriteLine("\n Klon: {0}", klon1.ZwrocInformacjeOsobowe());
                Console.ReadKey();
            }
    
        }
    
    
    }

     

×
×
  • Utwórz nowe...