Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include "stdafx.h"
- #include <iostream>
- #include <conio.h>
- #include <string>
- #include <fstream>
- #include <time.h>
- #include <cstdlib>
- using namespace std;
- struct osoba
- {
- string imie, nazwisko, ulica, numer, kod, miejscowosc, kraj;
- };
- void Dodaj(short * iloscOsob, osoba * tablicaOsob);
- void Zobacz(short * iloscOsob, osoba * tablicaOsob);
- void Zapisz(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob);
- void Wczytaj(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob);
- void Usun(short * iloscOsob, osoba * tablicaOsob);
- void Edytuj(short * iloscOsob, osoba * tablicaOsob);
- void Sortuj(short * iloscOsob, osoba * tablicaOsob);
- int main()
- {
- short *ilosc_osob = new short(0); // zmienna ilosci osob
- short *ile_razy_otwarty = new short(0); // zmienna ilosci otwarc programu
- osoba *tablica_osob = new osoba[100]; //tablica struktur
- cout << " BAZA DANYCH" << endl;
- cout << "\n\n\n";
- char wybor;
- Wczytaj(ile_razy_otwarty, ilosc_osob, tablica_osob);
- (*ile_razy_otwarty)++;
- cout << "Program otwarto " << (*ile_razy_otwarty) << " raz" << endl;
- do
- {
- cout << "\n\n\n";
- cout << "Osob w bazie: " << (*ilosc_osob) << endl;
- cout << "\n\n";
- cout << "Wybierz co chesz zrobic:" << endl;
- cout << "1. Dodaj osobe " << endl;
- cout << "2. Zobacz wszystkie osoby " << endl;
- cout << "3. Usun osobe " << endl;
- cout << "4. Edytuj osobe " << endl;
- cout << "5. Sortuj dane " << endl;
- cout << "ESC koniec dzialania programu" << endl;
- wybor = _getch();
- switch (wybor)
- {
- case 49: Dodaj(ilosc_osob, tablica_osob);
- break;
- case 50: Zobacz(ilosc_osob, tablica_osob);
- break;
- case 51: Usun(ilosc_osob, tablica_osob);
- break;
- case 52: Edytuj(ilosc_osob, tablica_osob);
- break;
- case 53: Sortuj(ilosc_osob, tablica_osob);
- break;
- }
- } while (wybor != 27);
- Zapisz(ile_razy_otwarty, ilosc_osob, tablica_osob);
- return 0;
- // system("pause");
- } // koniec main
- void Wczytaj(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob)
- {
- ifstream plik("osoba.txt", ios::in);
- plik >> *ileRazyOtwarty;
- plik >> *iloscOsob;
- short j = 0;
- string temp;
- do
- {
- getline(plik, temp);
- while (temp == " " || temp == "" && !plik.eof()) {
- getline(plik, temp);
- }
- tablicaOsob[j].imie = temp;
- getline(plik, tablicaOsob[j].nazwisko);
- getline(plik, tablicaOsob[j].ulica);
- getline(plik, tablicaOsob[j].numer);
- getline(plik, tablicaOsob[j].kod);
- getline(plik, tablicaOsob[j].miejscowosc);
- getline(plik, tablicaOsob[j].kraj);
- j++;
- } while (!plik.eof());
- }
- void Zapisz(short * ileRazyOtwarty, short * iloscOsob, osoba * tablicaOsob)
- {
- ofstream plik("osoba.txt", ios::out | ios::trunc);
- plik << *ileRazyOtwarty << "\n";
- plik << *iloscOsob << "\n";
- for (short j = 0; j < *iloscOsob; j++)
- {
- plik << " " << endl;
- plik << tablicaOsob[j].imie << endl;
- plik << tablicaOsob[j].nazwisko << endl;
- plik << tablicaOsob[j].ulica << endl;
- plik << tablicaOsob[j].numer << endl;
- plik << tablicaOsob[j].kod << endl;
- plik << tablicaOsob[j].miejscowosc << endl;
- plik << tablicaOsob[j].kraj << endl;
- }
- }
- void Dodaj(short * iloscOsob, osoba * tablicaOsob)
- {
- cout << "Imie: \n";
- //cin >> tablica_osob[ilosc_osob].imie;
- getline(cin, tablicaOsob[*iloscOsob].imie);
- cout << "Nazwisko: \n";
- //cin >> tablica_osob[ilosc_osob].nazwisko;
- getline(cin, tablicaOsob[*iloscOsob].nazwisko);
- cout << "Ulica: \n";
- //cin >> tablica_osob[ilosc_osob].ulica;
- getline(cin, tablicaOsob[*iloscOsob].ulica);
- cout << "Numer domu: \n";
- //cin >> tablica_osob[ilosc_osob].numer;
- getline(cin, tablicaOsob[*iloscOsob].numer);
- cout << "Kod pocztowy: \n";
- //cin >> tablica_osob[ilosc_osob].kod;
- getline(cin, tablicaOsob[*iloscOsob].kod);
- cout << "Miejscowosc: \n";
- //cin >> tablica_osob[ilosc_osob].miejscowosc;
- getline(cin, tablicaOsob[*iloscOsob].miejscowosc);
- cout << "Kraj: \n";
- //cin >> tablica_osob[ilosc_osob].kraj;
- getline(cin, tablicaOsob[*iloscOsob].kraj);
- cin.ignore();
- (*iloscOsob)++;
- cout << "Dodano" << endl;
- }
- void Zobacz(short * iloscOsob, osoba * tablicaOsob)
- {
- if ((*iloscOsob) != 0) // i>0
- {
- for (short j = 0; j < (*iloscOsob); j++) //kolejne zmienne
- {
- cout << " " << endl;
- cout << " Osoba nr " << j + 1 << ": " << endl;
- cout << " Imie: " << tablicaOsob[j].imie << endl;
- cout << " Nazwisko: " << tablicaOsob[j].nazwisko << endl;
- cout << " Ulica: " << tablicaOsob[j].ulica << endl;
- cout << " Numer domu: " << tablicaOsob[j].numer << endl;
- cout << " Kod pocztowy: " << tablicaOsob[j].kod << endl;
- cout << " Miejscowosc: " << tablicaOsob[j].miejscowosc << endl;
- cout << " Kraj: " << tablicaOsob[j].kraj << endl;
- cout << " " << endl;
- }
- }
- else
- cout << "Nie ma zadnych osob w bazie!";
- }
- void Usun(short * iloscOsob, osoba * tablicaOsob)
- {
- short kogo;
- if (*iloscOsob != 0)
- {
- cout << "Podaj numer osoby ktora chcesz usunac: ";
- cin >> kogo;
- cin.ignore();
- if (kogo > (*iloscOsob))
- cout << "Brak osoby o takim numerze";
- else
- {
- for (short k = kogo; k < (*iloscOsob); k++)
- {
- tablicaOsob[k - 1].imie = tablicaOsob[k].imie;
- tablicaOsob[k - 1].nazwisko = tablicaOsob[k].nazwisko;
- tablicaOsob[k - 1].ulica = tablicaOsob[k].ulica;
- tablicaOsob[k - 1].numer = tablicaOsob[k].numer;
- tablicaOsob[k - 1].kod = tablicaOsob[k].kod;
- tablicaOsob[k - 1].miejscowosc = tablicaOsob[k].miejscowosc;
- tablicaOsob[k - 1].kraj = tablicaOsob[k].kraj;
- }
- (*iloscOsob)--;
- cout << "Osoba o numerze " << kogo << " zostala usunieta!";
- cout << " " << endl;
- }
- }
- else
- {
- cout << "Brak osoby w bazie!! Wcisnij ENTER!";
- }
- }
- void Edytuj(short * iloscOsob, osoba * tablicaOsob)
- {
- int kogo;
- if ((*iloscOsob) != 0)
- {
- cout << "Podaj numer osoby ktora chcesz edytowac: ";
- cin >> kogo;
- cin.ignore();
- if (kogo > (*iloscOsob))
- cout << "Brak osoby o takim numerze";
- else
- {
- cout << " " << endl;
- cout << "Podaj imie osoby: \n";
- cin >> tablicaOsob[kogo - 1].imie;
- cout << "Podaj nazwisko osoby: \n";
- cin >> tablicaOsob[kogo - 1].nazwisko;
- cout << "Podaj ulice: \n";
- cin >> tablicaOsob[kogo - 1].ulica;
- cout << "Podaj numer domu: \n";
- cin >> tablicaOsob[kogo - 1].numer;
- cout << "Podaj kod pocztowy: \n";
- cin >> tablicaOsob[kogo - 1].kod;
- cout << "Podaj miejscowosc: \n";
- cin >> tablicaOsob[kogo - 1].miejscowosc;
- cout << "Podaj kraj: \n";
- cin >> tablicaOsob[kogo - 1].kraj;
- cout << "Osoba o numerze " << kogo << " zostala zedytowana!";
- cout << " " << endl;
- }
- }
- else
- {
- cout << "Nie ma tej osoby w bazie!! Wcisnij ENTER!";
- }
- }
- void Sortuj(short * iloscOsob, osoba * tablicaOsob)
- {
- cout << " \n \n \n";
- cout << "Wybierz kryterium sortowania" << endl;
- cout << "61. Imie" << endl;
- cout << "62. Nazwisko" << endl;
- cout << "63. Ulica" << endl;
- cout << "64. Numer domu" << endl;
- cout << "65. Kod pocztowy" << endl;
- cout << "66. Miejscowosc" << endl;
- cout << "67. Kraj" << endl;
- int pytanie1;
- cin >> pytanie1;
- int a, b;
- int tempNr1, tempNr2;
- string string_a, string_b;
- osoba t;
- for (a = (*iloscOsob) - 2; a >= 0; a--)
- {
- for (b = 0; b <= a; b++)
- {
- if (pytanie1 == 61) string_a = tablicaOsob[b].imie, string_b = tablicaOsob[b + 1].imie;
- else if (pytanie1 == 62) string_a = tablicaOsob[b].nazwisko, string_b = tablicaOsob[b + 1].nazwisko;
- else if (pytanie1 == 63) string_a = tablicaOsob[b].ulica, string_b = tablicaOsob[b + 1].ulica;
- else if (pytanie1 == 64) string_a = tablicaOsob[b].numer, string_b = tablicaOsob[b + 1].numer;
- else if (pytanie1 == 65) string_a = tablicaOsob[b].kod, string_b = tablicaOsob[b + 1].kod;
- else if (pytanie1 == 66) string_a = tablicaOsob[b].miejscowosc, string_b = tablicaOsob[b + 1].miejscowosc;
- else if (pytanie1 == 67) string_a = tablicaOsob[b].kraj, string_b = tablicaOsob[b + 1].kraj;
- if (string_a>string_b && pytanie1!=64 && pytanie1!=65)
- {
- t = tablicaOsob[b];
- tablicaOsob[b] = tablicaOsob[b + 1];
- tablicaOsob[b + 1] = t;
- }
- else if (pytanie1 == 64 || pytanie1 == 65) {
- tempNr1 = stoi(string_a.c_str());
- tempNr2 = stoi(string_b.c_str());
- if (tempNr1 > tempNr2) {
- t = tablicaOsob[b];
- tablicaOsob[b] = tablicaOsob[b + 1];
- tablicaOsob[b + 1] = t;
- }
- }
- }
- // sortowanie babelkowe
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement