Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie w pliku .txt

Ostatnio zmodyfikowano 2016-03-17 00:28
Autor Wiadomość
jablon
Temat założony przez niniejszego użytkownika
Sortowanie w pliku .txt
» 2016-03-16 23:39:50
Witam.

Proszę o poradę i pomoc z poniższym kodem w :
1) Sortowaniu od a-z według nazwiska, według wieku rosnąco. 
2) Wyświetleniu danych w pliku .txt po wyborze z MENU.
3) Możliwość aktualizacji danych

Z góry dziękuję i pozdrawiam.


#include <iostream>
#include <fstream>
#include <string>
#include <math.h>

using namespace std;
class osoba
{
    string imie ;
    string nazwisko ;
    int klasa ;// 1 -5
    int dzien_urodzenia ;
    int miesiac_urodzenia ;
    int rok_urodzenia ;
    string miejscowosc ;
    string adres ;
    int mat_ocena ;
    int pol_ocena ;
    float srednia ;
public :
    void zapamietaj(string imiee, string nazwiskoOsoby, int klasaa, int dzien_urodzeniaa,  int miesiac_urodzeniaa ,int rok_urodzeniaa, string miejscowoscc, string adress, int mat, int pol, float sredniaa )
    {
        imie=imiee;
        nazwisko=nazwiskoOsoby;
        klasa=klasaa;
        dzien_urodzenia=dzien_urodzeniaa;
        miesiac_urodzenia=miesiac_urodzeniaa;
        rok_urodzenia=rok_urodzeniaa;
        miejscowosc=miejscowoscc;
        adres=adress;
        mat_ocena=mat;
        pol_ocena=pol;
        srednia=sredniaa;
    }
    void wypisz()
    {
     cout<<imie<< " " << nazwisko << " kl." << klasa << ", " << dzien_urodzenia<< ":" << miesiac_urodzenia<< ":"<< rok_urodzenia << ", " << miejscowosc << " - " << adres << ", " << mat_ocena << " ; " << pol_ocena << " Sr. " << srednia << "  " <<endl;
    }
};// deklaracja klasy OSOBA, stworzenie funkcji zapamietania, zapisu

int main()
{
 osoba uczen1, uczen2, uczen3, uczen4, uczen5, uczen6, uczen7, uczen8, uczen9, uczen10, uczen11, uczen12, uczen13,uczen14,uczen15, uczen16,uczen17,uczen18, uczen19; //definicja obiektow
 uczen1.zapamietaj("Karleen", "Garwood", 5, 20, 10, 1991 , "Washington" , "BakerStreet", 5, 3, 4);
 uczen1.wypisz();// Wyswietlanie wszystkich danych o uczniach
 uczen2.zapamietaj("Ginger", "Whitfield", 1, 10, 12, 1995 , "Miami" , "GreenStreet", 5, 5, 5);
 uczen2.wypisz();
 uczen3.zapamietaj("Rosendo", "Hilt", 3, 15, 1, 1993 , "Miami" , "WallStreet", 2, 4, 3);
 uczen3.wypisz();
 uczen4.zapamietaj("Shanna", "Markum", 2, 29, 11, 1994 , "Orlando" , "BrownStreet", 5, 2, 3.5);
 uczen4.wypisz();
 uczen5.zapamietaj("May", "Larsen", 5, 10, 3, 1991 , "Dallas" , "LongStreet", 4, 4, 4);
 uczen5.wypisz();
 uczen6.zapamietaj("Mui", "Halderman", 1, 15, 5, 1995 , "Dallas" , "BrownStreet", 2, 2, 2);
 uczen6.wypisz();
 uczen6.zapamietaj("Saul", "Avant", 4, 31, 3, 1994 , "Phoenix" , "JacksonStreet", 1, 1, 1);
 uczen6.wypisz();
 uczen7.zapamietaj("Michael", "Lancaster", 4, 12, 12, 1993 , "NewYork" , "JacksonStreet", 2, 4, 3);
 uczen7.wypisz();
 uczen8.zapamietaj("Trenton", "Duhn", 1, 22, 5, 1995 , "Detroit" , "KennedyStreet", 4, 5, 4.5);
 uczen8.wypisz();
 uczen9.zapamietaj("Magaly", "Bowersox", 5, 10, 1, 1991 , "Orlando" , "KingStreet", 3, 3, 3);
 uczen9.wypisz();
 uczen10.zapamietaj("Charlotte", "Vermillion", 5, 19, 8, 1990 , "NewYork" , "KendellStreet", 6, 4, 5);
 uczen10.wypisz();
 uczen11.zapamietaj("Nathalie", "Thurman", 2, 21, 5, 1994 , "Phoenix" , "GreenStreet", 6, 4, 5);
 uczen11.wypisz();
 uczen12.zapamietaj("Tatyana", "Black", 3, 15, 12, 1993 , "Austin" , "ChurchWay", 3, 4, 3.5);
 uczen12.wypisz();
 uczen13.zapamietaj("Gabrielle", "Stebbins", 4, 12, 11, 1993 , "Chicago" , "YorkRoad", 5, 3, 4);
 uczen13.wypisz();
 uczen14.zapamietaj("Odis", "Heap", 5, 13, 7, 1990 , "Chicago" , "CircleWay", 1, 3, 2);
 uczen14.wypisz();
 uczen15.zapamietaj("Francina", "Nordby", 3, 11, 2, 1993 , "Washington" , "BoarWay", 6, 5, 5.5);
 uczen15.wypisz();
 uczen16.zapamietaj("Yevette", "Doran", 3, 11, 2, 1993 , "Austin" , "DunmowRoad", 5, 2, 3.5);
 uczen16.wypisz();
 uczen17.zapamietaj("Ivelisse", "Jansen", 1, 10, 7, 1996 , "Houston ", "BakerStreet", 4, 3, 3.5);
 uczen17.wypisz();
 uczen18.zapamietaj("Birgit", "LehouxFern-Thibert", 2, 25, 12, 1994 , "Filadelfia ", "BoarWay", 5, 3, 4);
 uczen18.wypisz();



 int wybierz ;
 cout<< " " << endl ;
 cout<<"1 - Wyswietl liste komend " <<endl ;
 cout<<"2 - Wyswietl dane osob z .txt " <<endl ;
 cout<<"3 - Posortuj dane z txt. wg. wybranej kategorii " <<endl ;
 cout<<"4 - Wprowadzenie, aktualizacja i zapis danych do pliku .txt" <<endl ; // MENU

 cout<<"Wybierz Numer z Menu "<<endl ;
 cin>>wybierz;// WCZYTANIE POLECENIA z MENU

 switch(wybierz)
    {
case 1 :

       cout<<"exit - zakmiecie programu " <<endl;
       break;
case 2 :
      cout<<" Wyswietlenie danych w pliku .txt " <<endl ;
      break ;
case 3 :
      start_kategorii :
      int kategoria;
      cout<<" 1 - sortowanie alfabetyczne po nazwiskach "<<endl;
      cout<<" 2 - sortowanie wedlug klasy "<<endl;
      cout<<" 3 - sortowanie na podstawie daty urodzenia "<<endl;
      cout<<" 4 - sortowanie po miejscowosc " <<endl;
      cout<<" 5 - sortowanie po adresie " <<endl;
      cout<<" 6 - sortowanie po ocenach z mat " <<endl;
      cout<<" 7 - sortowanie po ocenach z pol " <<endl;
      cout<<" 8 - sortowanie po sredniej ocen z mat i pol " <<endl<<endl;
      cout<<"wybierz kategorie sortowania danych " <<endl;
      cin>>kategoria;// MENU Sortowania oraz oraz wczytanie wyboru u¿ytkownika przez intstrukcje SWITCH
      switch (kategoria)
      {
      case 1 :
        cout<<"Nastepuje sortowanie alfabetyczne danych po nazwiskach "<<endl ;
        break;
      case 2 :
        cout<<"Nastepuje sortowanie danych wedlug klasy "<<endl ;
        break;
      case 3 :
        cout<<"Nastepuje sortowanie na podstawie danych urodzenia "<<endl ;
        break;
      case 4 :
        cout<<"Nastepuje sortowanie po miejscowosci "<<endl ;
        break;
      case 5 :
        cout<<"Nastepuje sortowanie po adresie "<<endl ;
        break;
      case 6 :
        cout<<"Nastepuje sortowanie po ocenie z mat "<<endl ;
        break;
      case 7 :
        cout<<"Nastepuje sortowanie po ocenie z pol "<<endl ;
        break;
      case 8 :
        cout<<"Nastepuje sortowanie po sredniej z ocen "<<endl ;
        break;



      default :
        cout<<"Zly znak, wybierz ponownie kategorie " <<endl ;
        goto start_kategorii;
        break;
      }

break ;
case 4 :
   cout<<"Aktualizacja danych " <<endl;
   break ;

default :
    cout<<"Wprowadzono zla cyfre " <<endl ;
    break;
}
}


 
P-146114
carlosmay
» 2016-03-17 00:28:42
osoba uczen1, uczen2, uczen3, uczen4, uczen5, uczen6, uczen7, uczen8, uczen9, uczen10, uczen11, uczen12, uczen13, uczen14, uczen15, uczen16, uczen17, uczen18, uczen19;
To jest... Hmm. Czy znasz tablice, kontenery.

Stwórz drugą klasę ze składową kontenerową przechowującą obiekty tej klasy.
W metodach zdefiniuj sortowanie kontenera wg swoich kryteriów.
Będzie łatwiej to ogarnąć.

Można jeszcze podzielić kod na kilka plików.
P-146118
« 1 »
  Strona 1 z 1