• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Z klasy Osoba wyróżnij klasę Adres

VPS Starter Arubacloud
0 głosów
239 wizyt
pytanie zadane 13 listopada 2021 w C# przez Martita Bywalec (2,470 p.)
edycja 14 listopada 2021 przez Martita

 Szukałam i nie znalazłam

Mam zadanie

Z klasy osoba wyróżnij klasę adres - O co chodzi?
Stwórz klasę osoba o każdej osobie powinny być informacje tj: numer ewidencyjny, imię, nazwisko,

Stwórz klasę Adres o każdej osobie powinny być informacje tj:kod pocztowy, miejscowość, ulica numer domu, numer mieszkania.

Zakładając, że najczęściej spotykanym nazwiskiem jest Kowalski, firma znajduje się w Warszawie i ma
mieszkania pracownicze przy ulicy Aleje Jerozolimskie,

Stwórz odpowiednie konstruktory nie używając get i set.

Męczę się już tydzień z tym. Mam trochę kodu ale nie wiem co dalej. Mam klasę Osoba, Adres, Program i w Osoba string adres. Proszę o sprawdzenie kodu i nakierowanie jak to dalej zrobić.

Myślałam aby string adres w klasie Osoba odwołać do klasa Adres, ale nie wiem jak się odwołuje i nie wiem czy idę w dobrym kierunku. 

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;

        }

        public Osoba(int numerEwidencyjny, string imie, Adres adres) :
        this(numerEwidencyjny, "Kowalski", imie)
        { }

        public Osoba(ref Osoba osoba)
        {
            numerEwidencyjny = osoba.numerEwidencyjny;
            nazwisko = osoba.nazwisko;
            imie = osoba.imie;
            Adres 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, adres, 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 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
    {
        private string kod;
        private string miejscowosc;
        private string nazwaUlicy;
        private int numerDomu;
        private 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(int numerDomu) :
        this("02-222", "Warszawa", "Aleje Jerozolimskie", numerDomu, 0)
        { }

        public Adres(ref Adres adres)
        {
            kod = adres.kod;
            miejscowosc = adres.miejscowosc;
            nazwaUlicy = adres.nazwaUlicy;
            numerDomu = adres.numerDomu;
            numerMieszkania = adres.numerMieszkania;
        }

        public string ZwrocKod()
        {
            return kod;
        }

        public string ZwrocMiejscowosc()
        {
            return miejscowosc;
        }

        public string ZwrocNazweUlicy()
        {
            return nazwaUlicy;
        }

        public int ZwrocNumerDomu()
        {
            return numerDomu;
        }

        public int ZwrocNumerMieszkania()
        {
            return numerMieszkania;
        }

        public string ZwrocInformacjeOsobowe()
        {
            return string.Format(" {0} {1} {2}",
            ZwrocKod(), ZwrocMiejscowosc(), 
            ZwrocNazweUlicy() + " " + ZwrocNumerDomu() + " m" + ZwrocNumerMieszkania());
        }

        public void ZmienAdres()
        {
            Console.Write("Podaj kod: ");
            kod = Console.ReadLine();

            Console.Write("Podaj nazwę miejscowści: ");
            miejscowosc = Console.ReadLine();

            Console.Write("Podaj nazwę ulicy ");
            nazwaUlicy = Console.ReadLine();

            do
            {
                Console.Write("Podaj numer domu: ");

            }

            while (!int.TryParse(Console.ReadLine(), out 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 numerMieszkania));
            }

            else
            {
                numerMieszkania = 0;
            }

        }

    }


}

Klasa Program

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

namespace Kadry
{
    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();
        }

    }

}

Z zadaniem dostałam kod do przerobienia

Klasa Program jak wyżej.

Klasa Osoba

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

namespace KadryStart 
{ 
    class Osoba 
    { 
            private string nazwisko; 
            private string imie; 
            private int numerEwidencyjny; 
            private string miejscowosc; 
            private string kod; 
            private string nazwaUlicy; 
            private int numerDomu; 
            private int numerMieszkania; 

            public Osoba(int numerEwidencyjny, string imie, string nazwisko, int numerDomu, int numerMieszkania, 
                    string nazwaUlicy, string kod, string miejscowosc) 
            { 
                this.numerEwidencyjny = numerEwidencyjny; 
                this.imie = imie; 
                this.nazwisko = nazwisko; 

                this.miejscowosc = miejscowosc; 
                this.kod = kod; 
                this.nazwaUlicy = nazwaUlicy; 
                this.numerDomu = numerDomu;
                this.numerMieszkania = numerMieszkania; 
            }

public Osoba(int numerEwidencyjny, string imie, int numerDomu) : 
this(numerEwidencyjny, imie, "Kowalski", numerDomu, 0, "Aleje Jerozolimskie", "02-
222", "Warszawa") { } 

public Osoba(ref Osoba osoba) 
            { 
                numerEwidencyjny = osoba.numerEwidencyjny; imie = osoba.imie; nazwisko 
= osoba.nazwisko; miejscowosc = osoba.miejscowosc; 
                kod = osoba.kod; nazwaUlicy = osoba.nazwaUlicy; numerDomu = 
osoba.numerDomu; numerMieszkania = osoba.numerMieszkania; 
            } 

public string ZwrocInformacjeOsobowe() 
            { 
                return string.Format("\n Pan(i) {0} {1} o numerze ewidencyjnym: {2} zamieszkały(a): {3} {4} {5}", 
                imie, nazwisko, numerEwidencyjny, ZwrocMiejscowosc(), 
                ZwrocKod(), ZwrocNazweUlicy() + " " + ZwrocNumerDomu() + " m" + ZwrocNumerMieszkania()); 
            }

            public string ZwrocMiejscowosc() { return miejscowosc; } 

            public string ZwrocNazweUlicy() { return nazwaUlicy; } 

            public string ZwrocKod() { return kod; } 

            public int ZwrocNumerDomu() { return numerDomu; } 

            public int ZwrocNumerMieszkania() { return numerMieszkania; 
} 

            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 nazwę miejscowści: "); miejscowosc = 
Console.ReadLine(); 
                Console.Write("Podaj nazwę ulicy "); nazwaUlicy = Console.ReadLine(); 
                Console.Write("Podaj kod: "); kod = Console.ReadLine(); 
                do 
                { 
                    Console.Write("Podaj numer domu: "); 

                } 
                while (!int.TryParse(Console.ReadLine(), out 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 numerMieszkania)); 
                } 
                else 
                { 
                    numerMieszkania = 0; 
                } 
            }

  public Osoba Klonuj() 
            { 
                return (Osoba)this.MemberwiseClone(); // metoda MemberwiseClone z 
biblioteki .NET, dla każdego  
            } 
        } 
}

 

 

 

 

komentarz 6 grudnia 2021 przez Dev Ox29A Dyskutant (8,400 p.)
Czy problem jeszcze aktualny ? Jeśli tak to miał bym kilka pytań odnośnie tego spaghetti.

Jedno już mogę zadać : - podaj treść całego zadania - (może być na maila)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 75 wizyt
pytanie zadane 18 kwietnia 2020 w C# przez weats Początkujący (470 p.)
0 głosów
3 odpowiedzi 346 wizyt
pytanie zadane 11 kwietnia 2017 w C# przez Dofosh Obywatel (1,480 p.)
0 głosów
0 odpowiedzi 57 wizyt
pytanie zadane 2 kwietnia 2017 w C# przez jankustosz1 Nałogowiec (35,880 p.)

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...