Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement