odczytywanie prywatnych pól

0

Witam.

Mam takie zadanie. Ale średnio umiem sobie z nim poradzić.

Treść zadania:
Stwórz klase "Pracownicy" z następującymi prywatnymi polami:
Nazwisko,Imie,Wzrost,Waga

Napisz publiczne własności do nadawania i odczytywania tych prywatnych pól
Stwórz 2 konstruktory :
-2 argumnetowy przyjmujący nazwisko i imie, a w polach wzrost i waga wpisujący 0
-4 argumentowy

Utwórz pole statyczne ilosc_pracownikow. W konstruktorach zawartość tego pola powinna zwiększac się o1
W metodzie main utwórz minimum 3 obiekty typu pracownik
Wypisz je na ekranie wraz z informacją o ilości pracowników...

  class Pracownicy
    {
        private string Nazwisko;
        private string Imie;
        private int Wzrost;
        private int Waga;
        public static int ilosc_pracownikow;

        public string Nazwisko
        {
            get
            {
                return N;
            }
            set
            {
                N =value;
            }
        
        }
        public string Imie
        {
            get
            {
                return I;
            }
            set
            {
                 I = value;
            }
        }
        public Pracownicy(string N, string I)
        {
            Nazwisko = N;
            Imie = I;
            Wzrost = 0;
            Waga = 0;
            ilosc_pracownikow;
                
        }
        public Pracownicy(string N, string I, int WZ, int WA)
        {
            Nazwisko = N;
            Imie = I;
            Wzrost = WZ;
            Waga = WA;
            ilosc_pracownikow++;
        }
        public void wyswietl()
        {
            Console.WriteLine("\n\n");
            Console.WriteLine("To jest pracownik numer " + ilosc_pracownikow);
            Console.WriteLine("Nazwywa się : " + Imie + Nazwisko);
            Console.WriteLine("Ma " + Wzrost + "cm wzrostu");
            Console.WriteLine("I waży " + Waga);


        }
      

        static void Main(string[] args)
        {
            Pracownicy Piotr = new Pracownicy( Nowak ,Piotr, 178, 89);
            Pracownicy Łukasz = new Pracownicy( Stachowicz , Łukasz, 198, 97);
            Pracownicy Norbet = new Pracownicy(Kowalski , Norbet, 165, 65);

            Console.WriteLine(" W firmie pracuje " + ilosc_pracownikow + " pracowników ");
            Console.WriteLine("\n\n");
            Console.WriteLine("Jesli chcesz wybrać pana Piotra wybierz 1");
            Console.WriteLine("Jesli chcesz wybrac pana Łukasza wybierz 2");
            Console.WriteLine("Jesli chcesz wybrac pana Norberta wybierz 3");
            Console.WriteLine("Jezeli sie pomyliłeś wybierz 4 ");

            Console.Write("Kogo wybierasz?");

            int warunek;
            warunek = int.Parse(Console.ReadLine());

            switch (warunek)
            {
                case 1:
                    Console.WriteLine(" Piotr Nowak ");
                    Piotr.wyswietl();
                    break;
                case 2:
                    Console.WriteLine(" Łukasz Stachowicz ");
                    Łukasz.wyswietl();
                    break;
                case 3:
                    Console.WriteLine(" Norbert Kowalski ");
                    Norbet.wyswietl();
                    break;
                default:
                    Console.WriteLine("Dziękujemy");
                    break;

            }




            

            
        }
    }
}

Na daną chwilę wywala 2 błędy... Rzuciłby ktoś na to okiem?

0

Jakie błędy? Mamy sobie postrzelać?
Na pierwszy rzut, to popatrz na te własności - chyba zwracają zupełnie coś innego niż masz zadeklarowane. Dodatkowo zmienna ilosc_pracowników nie jest zwiększana w pierwszym konstruktorze.
Ładniej by było tak:

public string Nazwisko { get; private set; }
public string Imie { get; private set; }

Popraw na razie to i zobacz.

0

Poprawiłem to ale dalej zwraca 2 takie same błędy.

The type 'ConsoleApplication1.Pracownicy' already contains a definition for 'Imie'
The type 'ConsoleApplication1.Pracownicy' already contains a definition for 'Nazwisko'

0

Nie można deklarować dwóch takich samych rzeczy, no co ty. Właściwość musi mieć inną nazwę niż pole jakiekolwiek. W C# jakoś chyba przyjęło się prywatne pola pisać z małej litery, a właściwości z wielkiej.

0
Pracownicy Piotr = new Pracownicy( Nowak ,Piotr, 178, 89);
Pracownicy Łukasz = new Pracownicy( Stachowicz , Łukasz, 198, 97);
Pracownicy Norbet = new Pracownicy(Kowalski , Norbet, 165, 65);

Nazwisko i imię to pola typu string, a Ty co chcesz tu zrobić?

class Program
    {
        static void Main(string[] args)
        {
            Pracownicy Piotr = new Pracownicy("Nowak", "Piotr", 178, 89);
            Pracownicy Łukasz = new Pracownicy("Stachowicz", "Łukasz", 198, 97);
            Pracownicy Norbet = new Pracownicy("Kowalski", "Norbet", 165, 65);

            Console.WriteLine(" W firmie pracuje " + Pracownicy.ilosc_pracownikow + " pracowników ");
            Console.WriteLine("\n\n");
            Console.WriteLine("Jesli chcesz wybrać pana Piotra wybierz 1");
            Console.WriteLine("Jesli chcesz wybrac pana Łukasza wybierz 2");
            Console.WriteLine("Jesli chcesz wybrac pana Norberta wybierz 3");
            Console.WriteLine("Jezeli sie pomyliłeś wybierz 4 ");

            Console.Write("Kogo wybierasz?");

            int warunek;
            warunek = int.Parse(Console.ReadLine());

            switch (warunek)
            {
                case 1:
                    Console.WriteLine(" Piotr Nowak ");
                    Piotr.wyswietl();
                    break;
                case 2:
                    Console.WriteLine(" Łukasz Stachowicz ");
                    Łukasz.wyswietl();
                    break;
                case 3:
                    Console.WriteLine(" Norbert Kowalski ");
                    Norbet.wyswietl();
                    break;
                default:
                    Console.WriteLine("Dziękujemy");
                    break;
            }
        }

        class Pracownicy
        {
            public string Nazwisko { get; private set; }
            public string Imie { get; private set; }
            private int Wzrost;
            private int Waga;
            public static int ilosc_pracownikow;

            public Pracownicy(string N, string I)
            {
                Nazwisko = N;
                Imie = I;
                Wzrost = 0;
                Waga = 0;
                ++ilosc_pracownikow;

            }
            public Pracownicy(string N, string I, int WZ, int WA)
            {
                Nazwisko = N;
                Imie = I;
                Wzrost = WZ;
                Waga = WA;
                ++ilosc_pracownikow;
            }
            public void wyswietl()
            {
                Console.WriteLine("\n\n");
                Console.WriteLine("To jest pracownik numer " + ilosc_pracownikow);
                Console.WriteLine("Nazwywa się : " + Imie + Nazwisko);
                Console.WriteLine("Ma " + Wzrost + "cm wzrostu");
                Console.WriteLine("I waży " + Waga);
            }
        }
    }

A za tą metodę "wyświetl" w klasie, to Cię powinni wysłać na miesięczne prace w kamieniołomie z gumowym młotkiem w ręku ;).

0

Wielkie dzięki już zaczynam łapać o co chodzi. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1