SHARE
TWEET

Untitled

a guest Jul 16th, 2019 54 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///Avram Adrian Constantin Grupa 132
  2. #include <iostream>
  3. #include <fstream>
  4. #include <cstring>
  5. #include <vector>
  6. using namespace std;
  7. class SU;
  8. class SE;
  9. vector<SU> urban;
  10. vector<SE> extraurban;
  11. /*class pctinfo{int pret=2;
  12. public:
  13.     pctinfo();
  14.     pctinfo(const pctinfo &ob)
  15.     {
  16.         pret=ob.pret;
  17.     }
  18.     pctinfo(int price){pret+=price;}
  19.    friend istream&operator>>(istream&in,pctinfo&ob)
  20.     {
  21.         in>>ob.pret;
  22.         return in;
  23.     }
  24.    friend ostream&operator<<(ostream&out,pctinfo&ob)
  25.     {
  26.         out<<ob.pret<<endl;
  27.         return out;
  28.     }
  29.     pctinfo&operator=(pctinfo&ob){
  30.     pret=ob.pret;}
  31.     ~pctinfo(){}
  32.     };*/
  33. class SU{public:
  34. int numar,sector;
  35. char cod[30];
  36. int nr;
  37. char strada[30];
  38. vector<int> mij;
  39. //char[30]imp;
  40. char nume[30];
  41. public:
  42. SU(){}
  43. friend istream&operator>>(istream&in,SU&ob)
  44. {   cout<<"Numar /strada/ sector/ nume/ nr mijl/ mijloace transp/cod"<<endl;
  45.     in>>ob.numar;
  46.     try{
  47.     if(ob.numar<0) throw ob.numar;
  48.     in>>ob.strada>>ob.sector>>ob.nume;
  49.     in>>ob.nr;
  50.    for(int i=0;i<ob.nr;++i)
  51.     {
  52.         int x;
  53.         in>>x;
  54.         ob.mij.push_back(x);
  55.     }
  56.     in>>ob.cod;
  57.     return in;
  58.     }catch(int l){cout<<"Numarul strazii este invalid";return in;}
  59. }
  60. friend ostream&operator<<(ostream&out,SU&ob)
  61. {
  62.     out<<"Numar="<<ob.numar<<endl;
  63.     out<<"Strada="<<ob.strada<<endl;
  64.     out<<"Sector="<<ob.sector<<endl;
  65.     out<<"Nume="<<ob.nume<<endl;
  66.     out<<"Nr="<<ob.nr<<endl;
  67.     out<<"Mijloace="<<endl;
  68.     while(ob.mij.empty()==0)
  69.     {
  70.         out<<ob.mij.back()<<endl;
  71.         ob.mij.pop_back();
  72.     }
  73.     out<<"Cod="<<ob.cod<<endl;
  74.     return out;
  75. }
  76. SU(const SU&ob)
  77. {
  78.     strcpy(strada,ob.strada);
  79.     numar=ob.numar;
  80.     sector=ob.sector;
  81.     mij=ob.mij;
  82.     strcpy(nume,ob.nume);
  83.     strcpy(cod,ob.cod);
  84. }
  85. SU&operator=(SU&ob)
  86. {
  87.     strcpy(strada,ob.strada);
  88.     numar=ob.numar;
  89.     sector=ob.sector;
  90.     mij=ob.mij;
  91.     strcpy(nume,ob.nume);
  92.     strcpy(cod,ob.cod);
  93.     return *this;
  94. }
  95. SU(char street[30],int num,int sect,int cardin,char numele[30],vector<int>mijloac,char codul[30])
  96. {
  97.     strcpy(strada,street);
  98.     numar=num;
  99.     sector=sect;
  100.     strcpy(nume,numele);
  101.     nr=cardin;
  102.     mij=mijloac;
  103.     strcpy(cod,codul);
  104.    // return *this;
  105. }
  106.  
  107. ~SU(){}
  108. };
  109. class SE
  110. {public:
  111. int numar,sector,nr;
  112. char cod[30];
  113. vector<int> mij;
  114. char strada[30];
  115. char nume[30];
  116. //public:
  117. //char[30]imp;
  118. friend istream&operator>>(istream&in,SE&ob)
  119. {   cout<<"Numar /strada/ sector/ nume/ nr mijl/ mijloace transp/cod"<<endl;
  120. //cout<<"dc?";
  121.     in>>ob.numar;
  122.     try{
  123.     if(ob.numar<0) throw ob.numar;
  124.     in>>ob.strada>>ob.sector>>ob.nume;
  125.     in>>ob.nr;
  126.     for(int i=0;i<ob.nr;++i)
  127.     {
  128.         int x;
  129.         in>>x;
  130.         ob.mij.push_back(x);
  131.     }
  132.     in>>ob.cod;
  133.  
  134.  
  135.     return in;
  136.     }catch(int l){cout<<"Numarul strazii este invalid";return in;}
  137. }
  138. friend ostream&operator<<(ostream&out,SE&ob)
  139. {
  140.     out<<"Numar="<<ob.numar<<endl;
  141.     out<<"Strada="<<ob.strada<<endl;
  142.     out<<"Sector="<<ob.sector<<endl;
  143.     out<<"Nr="<<ob.nr<<endl;
  144.     out<<"Mijloace= ";
  145.     while(ob.mij.empty()==0)
  146.     {
  147.         cout<<ob.mij.back()<<" ";
  148.         ob.mij.pop_back();
  149.     }
  150.     out<<endl;
  151.     out<<ob.cod<<endl;
  152.     return out;
  153. }
  154.  
  155. SE(){}
  156. SE(const SE&ob)
  157. {
  158.     strcpy(strada,ob.strada);
  159.     numar=ob.numar;
  160.     sector=ob.sector;
  161.     mij=ob.mij;
  162.     strcpy(nume,ob.nume);
  163.     strcpy(cod,ob.cod);
  164. }
  165. SE&operator=(SE&ob)
  166. {
  167.     strcpy(strada,ob.strada);
  168.     numar=ob.numar;
  169.     sector=ob.sector;
  170.     mij=ob.mij;
  171.     strcpy(nume,ob.nume);
  172.     strcpy(cod,ob.cod);
  173.     return *this;
  174.  
  175. }
  176. SE(char street[30],int num,int sect,int cardin,char numele[30],vector<int>mijloac,char codul[30])
  177. {
  178.     strcpy(strada,street);
  179.     numar=num;
  180.     sector=sect;
  181.     strcpy(nume,numele);
  182.     mij=mijloac;
  183.     nr=cardin;
  184.     strcpy(cod,codul);
  185. }
  186.  
  187. ~SE(){}
  188. };
  189. void citire(){
  190. cout<<"1 introduc Urban , 2 introduc Extraurban,3 criteriu B , 4 C , 5D , 6 iesire";
  191. int x;
  192. cin>>x;
  193. while(x!=0)
  194. {
  195.  
  196.  
  197.  
  198.     if(x==2)
  199. {
  200.     SE d;
  201.     cin>>d;
  202.     extraurban.push_back(d);
  203. }
  204. else
  205.     if(x==1)
  206. {
  207.     SU b;
  208.     cin>>b;
  209.     urban.push_back(b);
  210. }
  211. else
  212.     if(x==6)
  213. {
  214.     cout<<"iesire"<<endl;
  215.     break;
  216. }
  217. else
  218.  
  219.     if(x==3)
  220.     {   int i;
  221.         cout<<endl<<"adresa va fi gasita deoarece nu poate fi un nume sau o adresa asemenea"<<endl;
  222.         char choice[30];
  223.         cin>>choice;
  224.         for(i=0;i<extraurban.size();++i)
  225.             {
  226.                 if(strcmp(extraurban[i].nume,choice)==0||strcmp(extraurban[i].strada,choice)==0||strcmp(extraurban[i].cod,choice)==0)
  227.                     cout<<extraurban[i]<<endl;
  228.             }
  229.  
  230.         for(i=0;i<urban.size();++i)
  231.         {
  232.             if(strcmp(urban[i].nume,choice)==0||strcmp(urban[i].strada,choice)==0||strcmp(urban[i].cod,choice)==0)
  233.                     cout<<urban[i]<<endl;
  234.         }
  235.     }
  236.  
  237.  
  238.  
  239.  
  240.  
  241. }
  242. }
  243. int main()
  244. {
  245.     citire();
  246.     return 0;
  247. }
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