[C++]Struktury ( Programowanie Obiektowe)
Ostatnio zmodyfikowano 2014-03-14 00:52
BatuIron Temat założony przez niniejszego użytkownika |
[C++]Struktury ( Programowanie Obiektowe) » 2014-03-12 18:23:03 Mam problem z zadaniem, które brzmi: Zad.1 1.Utwórz strukturę o nazwie pracownicy w której będą przechowywane następijące dane: - dane osobowe pracownika ( imię, nazwisko, pesel) - wyskość wynagrodzenia pracownika w każdym miesiącu 2013r.; 2. Napisz funkcję wpisz, która wczytuje dane do struktury pracownicy, przy czym użytkownik wpisuje dane pracownika oraz wysokość wynagrodzenia. 3. W funkcji main utwórz tablicę struktur pracownicy o nazwie firma, w której zapisane będą informacje o wszystkich pracownikach tej firmy. Następnie wpisz do niej dane pracowników i wydrukuj ja na ekran (używając funkcji wpisz oraz drukuj). 4. Napisz funkcję średnia, która oblicza średnią miesięczną wynagrodzenia w tej firmie. 5. Napisz funkcję max która znajduje najlepiej zarabiającego pracownika tej firmy w roku 2013 i wydrukuj jego dane na ekran. 6. Napisz funkcję najstarszy, która znajduje najstarszego pracownika tej firmy i wydrukuj jego dane na ekran (Można przyjąć, że w firmie nie ma osób urodzonych tego samego dnia). Mój aktualny kod: #include "iostream" #include "conio.h" #include "string" #include "stdafx.h" using namespace std;
int suma_zarobkow = 0;
struct pracownicy { string imie; string nazwisko; int wynagrodzenie; int pesel; };
void wpisz() { pracownicy robotnicy[ 2 ]; for( int i = 0; i < 2; i++ ) { cout << "Podaj imie " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].imie; cout << "Podaj nazwisko " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].nazwisko; cout << "Podaj pesel " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].pesel; cout << "Podaj wynagrodzenie " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].wynagrodzenie; } }
void wyswietl() { pracownicy robotnicy[ 2 ]; for( int i = 0; i < 2; i++ ) { cout << robotnicy[ i ].imie << " "; cout << robotnicy[ i ].nazwisko << " "; cout << robotnicy[ i ].pesel << " "; cout << robotnicy[ i ].wynagrodzenie << endl; } }
double suma() { pracownicy robotnicy[ 2 ]; for( int i = 0; i < 2; i++ ) { suma_zarobkow = suma_zarobkow + robotnicy[ i ].wynagrodzenie; } cout << "suma zarobkow" << suma_zarobkow; return suma_zarobkow; }
double srednia( int suma_zarobkow ) { double srednia_zarobkow = suma_zarobkow / 2; cout << "srednia zarobkow" << srednia_zarobkow; return srednia_zarobkow; }
int max( int ilosc_pracownikow ) { pracownicy robotnicy; int max = 0; for( int i = 0; i < ilosc_pracownikow; i++ ) { if( robotnicy.wynagrodzenie[ i ] < robotnicy.wynagrodzenie[ i + 1 ] ) { max = robotnicy.wynagrodzenie[ i + 1 ]; } } cout << "najwyzszy zarobek" << max; return max; }
int najstarszy() { pracownicy robotnicy[ 2 ]; int stary = 0; for( int i = 0; i < 2; i++ ) { if( robotnicy[ i ].pesel < robotnicy[ i + 1 ].pesel ) { stary = robotnicy[ i + 1 ].pesel; } } cout << "najstarszy pracownik" << stary; return stary; } int main() { pracownicy robotnicy; wpisz(); wyswietl(); suma( robotnicy.wynagrodzenie ); srednia( suma_zarobkow ); max(); najstarszy(); system( "pause" ); return 0; } |
|
michal11 |
» 2014-03-12 18:33:56 Umieść kod w znaczniki [cpp"] kod ["/cpp] bez cudzysłowów |
|
MrPoxipol |
» 2014-03-12 18:38:24 To jaki masz ten problem? |
|
BatuIron Temat założony przez niniejszego użytkownika |
» 2014-03-12 18:56:59 Program nie chce działać poprawnie, program powinien wypisywać dane pracownikow, srednia wynagrodzenia itd. ale zamiast tego wyświetla dziwne liczby typu "9e00+23123" |
|
michal11 |
» 2014-03-12 19:04:01 Nic dziwnego skoro za każdym razem deklarujesz nowych pracowników i nie wpisujesz dla nich żadnych danych. |
|
DaiGyakusatsu |
» 2014-03-12 19:06:03 Wcale się nie dziwie że wyrzuca jakieś dziwne dane bo tablica "robotnicy" jest lokalna( mam na myśli funkcje chociażby wpisz i wyswietl ), więc tablica "robotnicy" w funkcji wpisz nie jest tą samą tablicą co w funkcji wyswietl itd. //Edit I jeśli wprowadzane dane miałby by być prawdziwe/realistyczne to pesel nie koniecznie Ci się zmieści w int, powinieneś użyć typu który pomieści większą liczbę. void wpisz() { pracownicy robotnicy[ 2 ]; for( int i = 0; i < 2; i++ ) { cout << "Podaj imie " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].imie; cout << "Podaj nazwisko " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].nazwisko; cout << "Podaj pesel " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].pesel; cout << "Podaj wynagrodzenie " << i + 1 << "-ego pracownika: "; cin >> robotnicy[ i ].wynagrodzenie; } }
void wyswietl() { pracownicy robotnicy[ 2 ]; for( int i = 0; i < 2; i++ ) { cout << robotnicy[ i ].imie << " "; cout << robotnicy[ i ].nazwisko << " "; cout << robotnicy[ i ].pesel << " "; cout << robotnicy[ i ].wynagrodzenie << endl; } }
Są też inne błędy np.: double suma() { pracownicy robotnicy[ 2 ]; for( int i = 0; i < 2; i++ ) { suma_zarobkow = suma_zarobkow + robotnicy[ i ].wynagrodzenie; } cout << "suma zarobkow" << suma_zarobkow; return suma_zarobkow; }
int main() { pracownicy robotnicy; wpisz(); wyswietl(); suma( robotnicy.wynagrodzenie ); srednia( suma_zarobkow ); max(); najstarszy(); system( "pause" ); return 0; }
|
|
leon_w |
» 2014-03-12 19:23:05 Zaczołęś dobrze, a potem pogubiłeś się z tablicą struktur. for( int i = 0; i < ilosc_pracownikow; i++ ) { if( robotnicy.wynagrodzenie[ i ] < robotnicy.wynagrodzenie[ i + 1 ] ) { max = robotnicy.wynagrodzenie[ i + 1 ]; } }
|
Nie posiadasz tablic w strukturze, a próbujesz się do nich odnosić. Miało być chyba : robotnicy[ i ].wynagrodzenie Popraw to i zobaczymy co dalej. A tablice struktur możesz zadeklarować tak: struct pracownicy { string imie; string nazwisko; int wynagrodzenie; int pesel; } robotnicy[ 2 ];
Na pesel daj większa zmienną (np long long) bo prawdziwy pesel się nie mieści. |
|
BatuIron Temat założony przez niniejszego użytkownika |
» 2014-03-12 19:30:02 W takim razie jak mam zrobić żeby Tablica z funkcji Wpisz() została wczytana w int main() i mogła zawartość funkcji normalnie wypisać, i żeby Tablica z funcji Wpisz() była tą główna tablica dla wszystkich pozostałych fukcji? |
|
« 1 » 2 |