Advertisement
Guest User

Untitled

a guest
Jan 24th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. struct Automobil{
  10.     string imeAuta;
  11.     string regAuta;
  12. };
  13.  
  14.  
  15. int izbornik(vector<Automobil>& automobili){
  16.     cout << "Unesite izbor:\n";
  17.     cout << "1. Ispis automobila\n";
  18.     cout << "2. Unos automobila\n";
  19.     cout << "3. Brisanje automobila\n";
  20.     cout << "4. Izlaz\n";
  21.  
  22.     char temp;
  23.     string tempAuto,tempAuto1;
  24.     cin >> temp;
  25.     cin.ignore();
  26.  
  27.     switch(temp){
  28.     case '1':
  29.         ispis(1,automobili);
  30.         break;
  31.  
  32.     case '2':
  33.         cout << "Unos automobila\n";
  34.         cout << "Unesite vrstu: ";
  35.         getline(cin, tempAuto);
  36.         cout << "Unesite registraciju: ";
  37.         getline(cin, tempAuto1);
  38.         unos(tempAuto, tempAuto1,automobili);
  39.         break;
  40.  
  41.     case '3':
  42.         ispis(0, automobili);
  43.         cout << "Unesite vrstu automobila za obrisati:";
  44.         getline(cin, tempAuto);
  45.         brisanje(tempAuto,automobili);
  46.         break;
  47.  
  48.     case '4': return -1;
  49.  
  50.     default:
  51.         cout << "Neispravan odabir.\n";
  52.         break;}
  53.     return 0;
  54. }
  55.  
  56. void ucitajBazu(vector<Automobil>& automobili){
  57.     ifstream infile("automobili.txt");
  58.       if (infile.is_open())
  59.       {
  60.         Automobil noviAutomobil;
  61.         while(getline( infile, noviAutomobil.imeAuta, '|' ) && getline( infile, noviAutomobil.regAuta ,'\n')){
  62.             automobili.push_back(noviAutomobil);
  63.         }
  64.         infile.close();
  65.       }else cout << "nemogu otvoriti bazu.\n";
  66. }
  67.  
  68. void zapisiBazu(vector<Automobil>& automobili){
  69.     ofstream myfile ("automobili.txt");
  70.     if (myfile.is_open()){
  71.         for(unsigned int i = 0; i<automobili.size(); i++){
  72.             myfile << automobili[i].imeAuta << "|" << automobili[i].regAuta << "\n";
  73.         }
  74.         myfile.close();
  75.     } else cout << "nemogu otvoriti bazu.\n";
  76.  
  77.     cout << "zapisano u bazu\n";
  78.     return;
  79. }
  80.  
  81. void ispis(int foo,vector<Automobil>& automobili){
  82.     for(unsigned int i = 0; i<automobili.size(); i++){
  83.         cout << automobili[i].imeAuta << "(" << automobili[i].regAuta << ")\n";
  84.     }
  85.  
  86.     if(foo){
  87.         cout << "Povratak na glavni izbornik\n";
  88.         cin.ignore();
  89.     }
  90. }
  91.  
  92. void unos(string autoZaUnos, string regZaUnos, vector<Automobil>& automobili){
  93.     Automobil noviAutomobil;
  94.     noviAutomobil.imeAuta = autoZaUnos;
  95.     noviAutomobil.regAuta = regZaUnos;
  96.     automobili.push_back(noviAutomobil);
  97.     cout << "Automobil uspjesno unesen\n";
  98.  
  99.     cout << "Povratak na glavni izbornik\n";
  100.     cin.ignore();
  101. }
  102.  
  103. void brisanje(string imeAutaZaBrisanje, vector<Automobil>& automobili){
  104.     // https://en.wikipedia.org/wiki/Erase%E2%80%93remove_idiom
  105.  
  106.     automobili.erase(remove_if(automobili.begin(), automobili.end(), [&](Automobil const & automobil) {return automobil.imeAuta == imeAutaZaBrisanje;}), automobili.end());
  107.  
  108.     cout << "Povratak na glavni izbornik\n";
  109.     cin.ignore();
  110. }
  111.  
  112.  
  113. int main(){
  114.     vector<Automobil> automobili;
  115.  
  116.     ucitajBazu(automobili);
  117.     while(izbornik(automobili)!=-1);
  118.     zapisiBazu(automobili);
  119.  
  120.     return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement