#include "stdafx.h" #include #include #include #include using namespace std; int main() { list Nazwiska; // lista stringów, przechowuje ciąg znaków list Imiona; list Wieki; // lista intów, przechowuje liczby list Wzrost; list::iterator i; list::iterator j; list::iterator k; list::iterator m; string NazwiskoTemp; string ImieTemp; int WiekTemp; int WzrostTemp; int mode = 1; ifstream plikin; // otwarcie pliku ofstream plikout; // zamknięcie pliku string NazwaPliku; while (mode != 6) { printf("\nWybierz tryb:\n"); printf("1. Dodaj osobe\n"); printf("2. Usun osobe\n"); printf("3. Wyswietl liste\n"); printf("4. Zapisz do pliku\n"); printf("5. Wczytaj z pliku\n"); printf("6. Wyjscie z programu\n"); scanf("%d", &mode); if (mode == 1) { //dziala printf("Podaj nowe nazwisko:\n"); cin >> NazwiskoTemp; Nazwiska.push_back(NazwiskoTemp); // dodaje nazwisko na koniec listy printf("Podaj nowe Imie:\n"); cin >> ImieTemp; Imiona.push_back(ImieTemp); // dodaje imie na koniec listy printf("Podaj Wiek:\n"); cin >> WiekTemp; Wieki.push_back(WiekTemp); // dodaje wiek na koniec listy printf("Podaj Wzrost:\n"); cin >> WzrostTemp; Wzrost.push_back(WzrostTemp); // dodaje wzrost na koniec listy } else if (mode == 2) { i = Nazwiska.begin(); // j = Wieki.begin(); k = Imiona.begin(); m = Wzrost.begin(); cout << "Podaj nazwisko do usuniecia:\n"; cin >> NazwiskoTemp; //wpisujemy nazwisko do usunięcia while (true) { if (*i == NazwiskoTemp) //jeżeli znajdzie podane nazwisko { Nazwiska.erase(i); //usuwa nazwisko Wieki.erase(j); // usuwa wiek Imiona.erase(k); // usuwa imie Wzrost.erase(m); // usuwa wzrost break; //usuwa tylko pierwszego napotkanego osobnika do usunięcia } else { ++i; ++j; ++k; ++m; } //przejscie o jeden dalej } } else if (mode == 3) { //dziala for (i = Nazwiska.begin(), j = Wieki.begin(), k = Imiona.begin(), m = Wzrost.begin(); i != Nazwiska.end(); ++i, ++j, ++k, ++m) //???????? cout << "Nazwisko: " << *i << " Imie: " << *k << " Wiek: " << *j << " Wzrost: " << *m << endl; //wyświelta liste } else if (mode == 4) { printf("\nPodaj nazwe pliku do zapisania(np. plik.txt)\n"); cin >> NazwaPliku; //podaje nazwe pliku plikout.open(NazwaPliku); //otwarcie pliku for (i = Nazwiska.begin(), j = Wieki.begin(), k = Imiona.begin(), m = Wzrost.begin(); i != Nazwiska.end(); ++i, ++j, ++k, ++m) //????? { if (i != Nazwiska.begin()) plikout << endl << *i << "\t" << *k << "\t" << *j << "\t" << *m; // ????? else plikout << *i << "\t" << *k << "\t" << *j << "\t" << *m; // ?????? } plikout.close(); // zamkniecie pliku cout << endl << "Zapisano do pliku: " << NazwaPliku << endl; //wyswietlenie ze dane zostały zapisane do pliku o tej nazwie } else if (mode == 5) { string line; printf("\nPodaj nazwe pliku do wczytania(np. plik.txt)\n"); cin >> NazwaPliku; // podaje nazwe pliku plikin.open(NazwaPliku); //otwarcie pliku if (plikin.is_open()) //sprawdzanie czy plik został otwarty { while (plikin.good()) { plikin >> NazwiskoTemp >> ImieTemp >> WiekTemp >> WzrostTemp; //wypisanie listy od nazwiska do wzrostu Nazwiska.push_back(NazwiskoTemp); Imiona.push_back(ImieTemp); Wieki.push_back(WiekTemp); Wzrost.push_back(WzrostTemp); } plikin.close(); //zamknięcie pliku } else printf("\nNie mozna otworzyc pliku"); } else printf("\nNierozpoznany tryb operacja.\n"); } getchar(); return 0; }