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

question-closed Struktury. sortowanie bąbelkowe

0 głosów
51 wizyt
pytanie zadane 1 stycznia w C i C++ przez Teslum_369 Gaduła (3,240 p.)
zamknięte 1 stycznia przez Criss

Witam, 

Jestem początkującym programistą i piszę programik o pracownikach. Program pyta o imię, nazwisko, pesel, wynagrodzenie (miesięczne) i oblicza wynagrodzenie roczne. Następnie wykonywany jest system("CLS") i pokazuje takie ala podsumowanie wszystkich pracowników. Chciałbym dodać również kto najwięcej zarabia. Potrafię jedynie za pomocą sortowania bąbelkowego wyznaczyć kwotę, jaką zarabia ów pracownik. Jak można wraz z kwotą ustalić imię i nazwisko najwięcej zarabiającego pracownika?

Podkreślę, iż podobne pytanie już padło, lecz nie została udzielona odpowiedź.

Przedstawiam mój kod, miejsce w którym mam problem wyznaczyłem poprzez "???" wyświetlając na ekran.:

#include <iostream>
#include <string>
using namespace std;

struct pracownicy
{
	struct dane_os
	{
		string imie;
		string nazwisko;
	};
	
	dane_os dane;
	
	int pesel;
	int wynagrodzenie;
	int roczne;
};
pracownicy drukuj(pracownicy worker[], int n);
pracownicy wpis(pracownicy worker[] ,int n);

int main()
{
	int ilosc;
	cout << "Podaj ilosc pracownikow firmy: ";
	cin >> ilosc;
	
	pracownicy firma[ilosc];
	wpis(firma, ilosc);
	
	cout << endl; 
	system("PAUSE");
	
	cin.ignore();
	getchar();
	return 0;
}


pracownicy drukuj(pracownicy worker[], int n)
{

	pracownicy program;
	system("CLS");

	cout << "Pracownicy firmy: \n\n";
	

	
	for(int i=0; i<n; i++)
	{
		cout << "***********************\n";
		cout << "*\n";
		cout << "* Imie: " << worker[i].dane.imie << endl;
		cout << "* Nazwisko: " << worker[i].dane.nazwisko << endl;
		cout << "* Pesel: " << worker[i].pesel << endl;
		cout << "* Wynagrodzenie: " << worker[i].wynagrodzenie << endl;
		cout << "* Roczny zarobek: " << worker[i].wynagrodzenie*12 << endl;
		cout << "*\n";
	}
	cout << "***********************\n";

	for(int c=0; c<n-1; c++)
	{
		for(int k=c+1; k<n; k++)
		{
			int bufor;
			if(worker[c].wynagrodzenie < worker[k].wynagrodzenie)
			{
				
				bufor=worker[c].wynagrodzenie;
				worker[c].wynagrodzenie = worker[k].wynagrodzenie;
				worker[k].wynagrodzenie = bufor;
			}
		}
	}
	int highest = worker[0].wynagrodzenie*12;
	
	cout << "\nNajwiecej zarabiajacy pracownik: " << "(???)" << ", " << highest << endl << endl;
	return program;
}



pracownicy wpis(pracownicy worker[] ,int n)
{
	

	pracownicy program;
	worker[n];
	
	for(int i=0; i < n; i++)
	{
		cout << "\nImie: ";
		cin.ignore();
		getline(cin, worker[i].dane.imie);
		
		cout << "Nazwisko: ";
		getline(cin, worker[i].dane.nazwisko);
		
		cout << "Pesel: ";
		cin >> worker[i].pesel;
		
		cout << "Wynagrodzenie: ";
		cin >> worker[i].wynagrodzenie;
		
		cout << "Roczny zarobek: " << worker[i].wynagrodzenie*12 << endl << endl;
	}	
	cout << endl << endl;
	system("PAUSE");
	drukuj(worker, n);
	return program;
}

 

Z góry dziękuję i pozdrawiam wszystkich forumowiczów!

komentarz zamknięcia: Rozwiazane
1
komentarz 1 stycznia przez DragonCoder Pasjonat (21,190 p.)
Skoro wyznaczyles najwyzsza kwote, to znaczy ze wyznaczyles dany elemnt tablicy [n], wiec zapisz sobie jaka to byla wartosc i wtedy pobierz wszytskie dane jakie chcesz, ktore znajduja sie w tym elemencie, np elemencie 4. imie [4], nazwisko [4]
komentarz 1 stycznia przez Teslum_369 Gaduła (3,240 p.)
Dziękuję bardzo! Świetne rozwiązanie!
komentarz 1 stycznia przez DragonCoder Pasjonat (21,190 p.)
Nie wiem, czy to zadziala, moze sa inne mozliwosci, lub juz gotowe funkcje, a nie przejscie za pomoca petli. Ale wtedy musisz poczekac na kogos bardziej doswiadczonego
komentarz 1 stycznia przez Teslum_369 Gaduła (3,240 p.)
Ogólnie, nie potrafiłem znaleźć odpowiedzi, ponieważ użyłem sortowania bąbelkowego, gdzie kolejność całej struktury już była dla mnie nie znana i właśnie to sortowanie przysłoniło mi rozwiązanie. Tak, twoja pomoc działa. Na prawdę bardzo dziękuję!

Podobne pytania

0 głosów
1 odpowiedź 116 wizyt
pytanie zadane 24 czerwca 2018 w C i C++ przez siemasiema123.96 Początkujący (280 p.)
0 głosów
1 odpowiedź 161 wizyt
0 głosów
0 odpowiedzi 78 wizyt
pytanie zadane 21 czerwca 2018 w C i C++ przez siemasiema123.96 Początkujący (280 p.)
Porady nie od parady
Forum posiada swój własny chat IRC, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

65,642 zapytań

112,267 odpowiedzi

236,888 komentarzy

46,640 pasjonatów

Przeglądających: 145
Pasjonatów: 8 Gości: 137

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...