Facebook
From Capacious Camel, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 310
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <list>
  4. #include <string>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8.  
  9. int main() {
  10.        
  11.         list<string> Nazwiska;    // lista stringów, przechowuje ciąg znaków
  12.         list<string> Imiona;
  13.         list<int> Wieki;         // lista intów, przechowuje liczby
  14.         list<int> Wzrost;
  15.         list<string>::iterator i;    
  16.         list<int>::iterator j;
  17.         list<string>::iterator k;
  18.         list<int>::iterator m;
  19.         string NazwiskoTemp;
  20.         string ImieTemp;
  21.         int WiekTemp;
  22.         int WzrostTemp;
  23.         int mode = 1;
  24.         ifstream plikin;    //  otwarcie pliku 
  25.         ofstream plikout;   //  zamknięcie pliku
  26.         string NazwaPliku;
  27.        
  28.         while (mode != 6)
  29.         {
  30.                 printf("\nWybierz tryb:\n");
  31.                 printf("1. Dodaj osobe\n");
  32.                 printf("2. Usun osobe\n");
  33.                 printf("3. Wyswietl liste\n");
  34.                 printf("4. Zapisz do pliku\n");
  35.                 printf("5. Wczytaj z pliku\n");
  36.                 printf("6. Wyjscie z programu\n");
  37.  
  38.                 scanf("%d", &mode);
  39.  
  40.                 if (mode == 1)
  41.                 {
  42.                         //dziala
  43.                         printf("Podaj nowe nazwisko:\n");
  44.                         cin >> NazwiskoTemp;
  45.                         Nazwiska.push_back(NazwiskoTemp);    // dodaje nazwisko na koniec listy
  46.  
  47.                         printf("Podaj nowe Imie:\n");
  48.                         cin >> ImieTemp;
  49.                         Imiona.push_back(ImieTemp);          // dodaje imie na koniec listy
  50.  
  51.                         printf("Podaj Wiek:\n");
  52.                         cin >> WiekTemp;
  53.                         Wieki.push_back(WiekTemp);           // dodaje wiek na koniec listy
  54.  
  55.                         printf("Podaj Wzrost:\n");
  56.                         cin >> WzrostTemp;
  57.                         Wzrost.push_back(WzrostTemp);        // dodaje wzrost na koniec listy
  58.  
  59.                 }
  60.                 else if (mode == 2)
  61.                 {
  62.                         i = Nazwiska.begin();  //
  63.                         j = Wieki.begin();
  64.                         k = Imiona.begin();
  65.                         m = Wzrost.begin();
  66.  
  67.                         cout << "Podaj nazwisko do usuniecia:\n";
  68.                         cin >> NazwiskoTemp; //wpisujemy nazwisko do usunięcia
  69.                         while (true)
  70.                         {
  71.                                 if (*i == NazwiskoTemp) //jeżeli znajdzie podane nazwisko
  72.                                 {
  73.                                         Nazwiska.erase(i);  //usuwa nazwisko
  74.                                         Wieki.erase(j);     // usuwa wiek
  75.                                         Imiona.erase(k);    // usuwa imie
  76.                                         Wzrost.erase(m);    // usuwa wzrost
  77.                                         break;             //usuwa tylko pierwszego napotkanego osobnika do usunięcia
  78.                                 }
  79.                                 else { ++i; ++j; ++k; ++m; } //przejscie o jeden dalej
  80.                         }
  81.                 }
  82.                 else if (mode == 3)
  83.                 {
  84.                         //dziala
  85.                         for (i = Nazwiska.begin(), j = Wieki.begin(), k = Imiona.begin(), m = Wzrost.begin(); i != Nazwiska.end(); ++i, ++j, ++k, ++m) //????????
  86.                                 cout << "Nazwisko: " << *i << " Imie: " << *k << " Wiek: " << *j << " Wzrost: " << *m << endl;  //wyświelta liste
  87.                 }
  88.                 else if (mode == 4)
  89.                 {
  90.                         printf("\nPodaj nazwe pliku do zapisania(np. plik.txt)\n");
  91.                         cin >> NazwaPliku; //podaje nazwe pliku
  92.                         plikout.open(NazwaPliku);  //otwarcie pliku
  93.                         for (i = Nazwiska.begin(), j = Wieki.begin(), k = Imiona.begin(), m = Wzrost.begin(); i != Nazwiska.end(); ++i, ++j, ++k, ++m) //?????
  94.                         {
  95.                                 if (i != Nazwiska.begin())
  96.                                         plikout << endl << *i << "\t" << *k << "\t" << *j << "\t" << *m; // ?????
  97.                                 else
  98.                                         plikout << *i << "\t" << *k << "\t" << *j << "\t" << *m; // ??????
  99.                         }
  100.                         plikout.close();  // zamkniecie pliku
  101.                         cout << endl << "Zapisano do pliku: " << NazwaPliku << endl;  //wyswietlenie ze dane zostały zapisane do pliku o tej nazwie
  102.                 }
  103.                 else if (mode == 5)
  104.                 {
  105.                        
  106.                         string line;
  107.                         printf("\nPodaj nazwe pliku do wczytania(np. plik.txt)\n");
  108.                         cin >> NazwaPliku;      // podaje nazwe pliku
  109.                         plikin.open(NazwaPliku);   //otwarcie pliku
  110.                         if (plikin.is_open())  //sprawdzanie czy plik został otwarty
  111.                         {
  112.                                 while (plikin.good())
  113.                                 {
  114.                                         plikin >> NazwiskoTemp >> ImieTemp >> WiekTemp >> WzrostTemp; //wypisanie listy od nazwiska do wzrostu
  115.                                         Nazwiska.push_back(NazwiskoTemp);
  116.                                         Imiona.push_back(ImieTemp);
  117.                                         Wieki.push_back(WiekTemp);
  118.                                         Wzrost.push_back(WzrostTemp);
  119.                                 }
  120.                                 plikin.close();  //zamknięcie pliku
  121.                         }
  122.                         else printf("\nNie mozna otworzyc pliku");
  123.  
  124.  
  125.  
  126.                 }
  127.                 else printf("\nNierozpoznany tryb operacja.\n");
  128.         }
  129.  
  130.         getchar();
  131.         return 0;
  132. }