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

Jak utworzyć wektor zawierający strukturę?

Object Storage Arubacloud
0 głosów
1,798 wizyt
pytanie zadane 20 kwietnia 2020 w C i C++ przez niezalogowany

Witam! Mam do napisania taki program:

Utwórz strukturę pracownicy, w której będą przechowywane następujące dane:

  • dane pracownika (imię, nazwisko, pesel) – zapisane w strukturze dane_osobowe
  • wysokość wynagrodzenia w każdym miesiącu 2019 r.
  • średnia wysokość wynagrodzenia za rok 2019
  1. Napisz funkcję wczytującą dane do struktury pracownicy (użytkownik wpisuje dane pracownika i wysokość wynagrodzenia; średnia powinna zostać obliczona przez program i wpisana w odpowiednie pole).
  2. Napisz funkcję wyświetlającą wszystkie dane pracownika.
  3. Utwórz wektor firma przechowujący informacje o pracownikach. Następnie z wykorzystaniem funkcji wczytaj – wprowadź przykładowe dane dla 5 pracowników, a następnie wyświetl informacje o wszystkich pracownikach.
  4. Napisz funkcję średnia, która oblicza średnie miesięczne wynagrodzenia w tej firmie.

    Napisałam pierwsze dwa punkty, chociaż nie jestem pewna czy dobrze, bo w jednej strukturze DaneOsobowe. Mój problem polega na tym, że nie wiem w jaki sposób utworzyć wektor, który będzie się posługiwał tą strukturą (punkt 3). Bardzo proszę o pomoc jak napisać tą część. Poniżej mój kod:
     
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    struct DaneOsobowe 
    {
    	string Imie;
    	string Nazwisko;
    	int PESEL;
    	float wynagrodzenie_styczen;
    	float wynagrodzenie_luty;
    	float wynagrodzenie_marzec;
    	float wynagrodzenie_kwiecien;
    	float wynagrodzenie_maj;
    	float wynagrodzenie_czerwiec;
    	float wynagrodzenie_lipiec;
    	float wynagrodzenie_sierpien;
    	float wynagrodzenie_wrzesien;
    	float wynagrodzenie_pazdziernik;
    	float wynagrodzenie_listopad;
    	float wynagrodzenie_grudzien;
    	float Srednia;
    };
    
    void Wczytaj(DaneOsobowe &Pracownik) 
    {
    	cout << "Podaj imie - ";
    	cin >> Pracownik.Imie;
    	cout << "Podaj nazwisko - ";
    	cin >> Pracownik.Nazwisko;
    	cout << "Podaj PESEL - ";
    	cin >> Pracownik.PESEL;
    	cout << "Podaj wysokosc wynagrodzenia w styczniu - ";
    	cin >> Pracownik.wynagrodzenie_styczen;
    	cout << "Podaj wysokosc wynagrodzenia w lutym - ";
    	cin >> Pracownik.wynagrodzenie_luty;
    	cout << "Podaj wysokosc wynagrodzenia w marcu - ";
    	cin >> Pracownik.wynagrodzenie_marzec;
    	cout << "Podaj wysokosc wynagrodzenia w kwietniu - ";
    	cin >> Pracownik.wynagrodzenie_kwiecien;
    	cout << "Podaj wysokosc wynagrodzenia w maju - ";
    	cin >> Pracownik.wynagrodzenie_maj;
    	cout << "Podaj wysokosc wynagrodzenia w czerwcu - ";
    	cin >> Pracownik.wynagrodzenie_czerwiec;
    	cout << "Podaj wysokosc wynagrodzenia w lipcu - ";
    	cin >> Pracownik.wynagrodzenie_lipiec;
    	cout << "Podaj wysokosc wynagrodzenia w sierpniu - ";
    	cin >> Pracownik.wynagrodzenie_sierpien;
    	cout << "Podaj wysokosc wynagrodzenia we wrzesniu - ";
    	cin >> Pracownik.wynagrodzenie_wrzesien;
    	cout << "Podaj wysokosc wynagrodzenia w pazdzierniku - ";
    	cin >> Pracownik.wynagrodzenie_pazdziernik;
    	cout << "Podaj wysokosc wynagrodzenia w listopadzie - ";
    	cin >> Pracownik.wynagrodzenie_listopad;
    	cout << "Podaj wysokosc wynagrodzenia w grudniuu - ";
    	cin >> Pracownik.wynagrodzenie_grudzien;
    
    	Pracownik.Srednia = (Pracownik.wynagrodzenie_styczen + Pracownik.wynagrodzenie_luty + Pracownik.wynagrodzenie_marzec + Pracownik.wynagrodzenie_kwiecien + Pracownik.wynagrodzenie_maj + Pracownik.wynagrodzenie_czerwiec + Pracownik.wynagrodzenie_lipiec + Pracownik.wynagrodzenie_sierpien + Pracownik.wynagrodzenie_wrzesien + Pracownik.wynagrodzenie_pazdziernik + Pracownik.wynagrodzenie_listopad + Pracownik.wynagrodzenie_grudzien) / 12;
    }
    
    void Wyswietl(DaneOsobowe &Pracownik) 
    {
    	cout << endl << endl << "Dane pracownika: " << endl;
    	cout << Pracownik.Imie << " " << Pracownik.Nazwisko << endl;
    	cout << "PESEL: " << Pracownik.PESEL << endl << endl;
    
    	cout << "Wynagrodzenie:" << endl;
    	cout << "Styczen - " << Pracownik.wynagrodzenie_styczen << endl;
    	cout << "Luty - " << Pracownik.wynagrodzenie_luty << endl;
    	cout << "Marzec - " << Pracownik.wynagrodzenie_marzec << endl;
    	cout << "Kwiecien - " << Pracownik.wynagrodzenie_kwiecien << endl;
    	cout << "Maj - " << Pracownik.wynagrodzenie_maj << endl;
    	cout << "Czerwiec - " << Pracownik.wynagrodzenie_czerwiec << endl;
    	cout << "Lipiec - " << Pracownik.wynagrodzenie_lipiec << endl;
    	cout << "Sierpien - " << Pracownik.wynagrodzenie_sierpien << endl;
    	cout << "Wrzesien - " << Pracownik.wynagrodzenie_wrzesien << endl;
    	cout << "Pazdziernik - " << Pracownik.wynagrodzenie_pazdziernik << endl;
    	cout << "Liestopad - " << Pracownik.wynagrodzenie_listopad << endl;
    	cout << "Grudzien - " << Pracownik.wynagrodzenie_grudzien << endl << endl;
    
    	cout << "Srednia wysokosc wynagrodzenia za rok - " << Pracownik.Srednia << endl;
    }
    
    int main()
    {
    	DaneOsobowe Pracownik;
    
    	Wczytaj(Pracownik);
    	Wyswietl(Pracownik);
    }

     

komentarz 20 kwietnia 2020 przez j23 Mędrzec (194,920 p.)

Mowa o std::vector?

1 odpowiedź

0 głosów
odpowiedź 20 kwietnia 2020 przez LuQ232 Mądrala (7,200 p.)
wybrane 6 maja 2020
 
Najlepsza

Musisz użyć std::vector. Poczytaj o tym tutaj: https://en.cppreference.com/w/cpp/container/vector


#include <vector>
//TUTAJ RESZTA KODU

int main()
{
    DaneOsobowe Pracownik;
    std::vector <DaneOsobowe> firma;
    firma.push_back(Pracownik);
    Wczytaj(firma[0]);
    Wyswietl(firma[0]);

}

Powyżej tylko przykład obrazujący działanie std::vector. Odnośnie iterowania przez elementy vectora możesz poczytać tutaj: https://stackoverflow.com/questions/409348/iteration-over-stdvector-unsigned-vs-signed-index-variable. Polecam Ci zrobić również konstruktory dla struktury DaneOsobowe 

1
komentarz 20 kwietnia 2020 przez tkz Nałogowiec (42,000 p.)
#include <vector>
//TUTAJ RESZTA KODU
 
int main()
{
    std::vector <DaneOsobowe> firma;
    firma.emplace_back(imie, nazwisko, itd);
    Wczytaj(firma[0]);
    Wyswietl(firma[0]);
 
}

Albo tak, co będzie nieco lepszym rozwiązaniem. 

Podobne pytania

0 głosów
1 odpowiedź 1,365 wizyt
0 głosów
1 odpowiedź 375 wizyt
0 głosów
1 odpowiedź 223 wizyt

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

61,997 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...