SHARE
TWEET

Untitled

a guest May 19th, 2019 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <cstring>
  5. #include <ctime>
  6. #include <iomanip>
  7. #include <cstdlib>
  8. using namespace std;
  9. struct SAuta{
  10.   string model;
  11.   unsigned rok;
  12.   string r_paliwo;
  13.   unsigned przebieg;
  14.   string moc;
  15.   string kolor;
  16.   unsigned cena;
  17. };
  18. struct SLista{
  19.  string marka;
  20.  unsigned ilosc;
  21.  SAuta * lista;
  22. };
  23. SLista wczytaj(string& nazwa){
  24.   SLista wsk;
  25.   ifstream fin;
  26.   fin.open(nazwa);
  27.   if(!fin){
  28.     cerr<<"Blad przy otwarciu pliku!";
  29.     exit('0');
  30.   }
  31.   fin>>wsk.marka;
  32.   fin>>wsk.ilosc;
  33.   if(wsk.ilosc>0){
  34.     wsk.lista=new SAuta[wsk.ilosc];
  35.     for(unsigned i=0;i<wsk.ilosc;i++){
  36.       fin>>wsk.lista[i].model>>wsk.lista[i].rok>>wsk.lista[i].r_paliwo>>wsk.lista[i].przebieg>>wsk.lista[i].moc>>wsk.lista[i].kolor>>wsk.lista[i].cena;
  37.     }
  38.   }
  39.   fin.close();
  40.   return wsk;
  41. }
  42.  
  43. SAuta szukaj(const SLista& wsk,const string szukanym){
  44.   SAuta szukany;
  45.   szukany.model.clear();
  46.   for(unsigned i=0;i<wsk.ilosc;i++){
  47.     if(wsk.lista[i].model==szukanym){
  48.       szukany.model=wsk.lista[i].model;
  49.       szukany.rok=wsk.lista[i].rok;
  50.       szukany.r_paliwo=wsk.lista[i].r_paliwo;
  51.       szukany.przebieg=wsk.lista[i].przebieg;
  52.       szukany.moc=wsk.lista[i].moc;
  53.       szukany.kolor=wsk.lista[i].kolor;
  54.       szukany.cena=wsk.lista[i].cena;
  55.     }
  56.   }
  57.   return szukany;
  58. }
  59. void plik_o(ifstream& fin,string nazwafin){
  60.   fin.open(nazwafin);
  61.   if(!fin){
  62.     cerr<<"Blad przy otwarciu pliku!";
  63.   }
  64. }
  65. void plik_z(ifstream& fin){
  66.   fin.close();
  67. }
  68. void wypisz1(const SAuta& a,ostream& out){
  69.   out<<setw(5)<<a.model<<"\t"<<setw(4)<<a.rok<<"\t"<<setw(10)<<a.r_paliwo<<"\t"<<setw(10)<<a.przebieg<<"\t"<<setw(5)<<a.moc<<"\t"<<setw(10)<<a.kolor<<"\t"<<setw(6)<<a.cena<<endl;
  70. }
  71. void wypisz(const SLista& wsk,ostream& out){
  72.   for(unsigned i=0;i<wsk.ilosc;i++){
  73.     wypisz1(wsk.lista[i],out);
  74.   }
  75.   }
  76. void wyszukany(const SLista& wsk)
  77. {
  78. string szukanym;
  79. cin.ignore();
  80. cout<<"Podaj nazwe poszukiwanego modelu auta: ";
  81. getline(cin,szukanym);
  82. SAuta szukanyx;
  83. szukanyx=szukaj(wsk,szukanym);
  84.  if(szukanyx.model!=""){
  85.   wypisz1(szukanyx,cout);
  86.  }
  87.   else{
  88.     cout<<"Niestety nie posiadamy auta o podanym modelu"<<endl;
  89.   }
  90. }
  91. void sortuj(SLista& wsk){
  92.   for(unsigned i=0;i<wsk.ilosc;i++)
  93.     {
  94.       for(unsigned j=0;j<wsk.ilosc-1;j++){
  95.     if(wsk.lista[j].rok>wsk.lista[j+1].rok)
  96.       swap(wsk.lista[j],wsk.lista[j+1]);
  97.       }
  98.     }
  99. }
  100. void menu(SLista& wsk){
  101.   for(;;){
  102.   char wybor;
  103.   cout<<"Salon samochodowy BMW"<<endl;
  104.   cout<<"1.Wypisz wszystkie samochody"<<endl;
  105.   cout<<"2.Wypisz samochody wedlug roku produkcji"<<endl;
  106.   cout<<"3.Wyszukaj pozadany samochod"<<endl;
  107.   cout<<"4.Dane kontaktowe"<<endl;
  108.   cout<<"5.Wyjscie"<<endl;
  109.   cout<<"Wybierz pozadana opcje: ";
  110.   cin>>wybor;
  111.     switch(wybor){
  112.     case '1':
  113.       cout<<setw(5)<<"Model"<<"\t"<<setw(4)<<"Rok"<<"\t"<<setw(10)<<"Paliwo"<<"\t"<<setw(10)<<"Przebieg"<<"\t"<<setw(5)<<"Moc"<<"\t"<<setw(10)<<"Kolor"<<"\t"<<setw(6)<<"Cena"<<endl<<endl;
  114.       wypisz(wsk,cout);
  115.       break;
  116.     case '2':
  117.       sortuj(wsk);
  118.       wypisz(wsk,cout);
  119.       break;
  120.     case '3':
  121.       wyszukany(wsk);
  122.       break;
  123.     case '4':
  124.       cout<<"dane"<<endl;
  125.       break;
  126.     case '5':
  127.             exit('0');
  128.             break;
  129.     default:
  130.       cout<<"Wybierz jedna z pieciu dostepnych opcji!"<<endl;
  131.         break;
  132.     }
  133.   }                    
  134.  
  135. }
  136. int main(int argc,char* argv[]){
  137.   if(argc!=2){
  138.     cerr<<"Bledna liczba parametrow!"<<endl;
  139.     cout<<"Prawidlowy schemat uruchomienia: ./nazwaprogramu nazwaplikuwejsciowego";
  140.   }
  141.   else{
  142.     string nazwafin=argv[1];
  143.     SLista wsk;
  144.     wsk=wczytaj(nazwafin);
  145.     menu(wsk);
  146.     if(wsk.lista)
  147.       {
  148.     delete [] wsk.lista;
  149.       }
  150.   }
  151.   return 0;
  152. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top