Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///Avram Adrian Constantin Grupa 132
- #include <iostream>
- #include <fstream>
- #include <cstring>
- #include <vector>
- using namespace std;
- class SU;
- class SE;
- vector<SU> urban;
- vector<SE> extraurban;
- /*class pctinfo{int pret=2;
- public:
- pctinfo();
- pctinfo(const pctinfo &ob)
- {
- pret=ob.pret;
- }
- pctinfo(int price){pret+=price;}
- friend istream&operator>>(istream&in,pctinfo&ob)
- {
- in>>ob.pret;
- return in;
- }
- friend ostream&operator<<(ostream&out,pctinfo&ob)
- {
- out<<ob.pret<<endl;
- return out;
- }
- pctinfo&operator=(pctinfo&ob){
- pret=ob.pret;}
- ~pctinfo(){}
- };*/
- class SU{public:
- int numar,sector;
- char cod[30];
- int nr;
- char strada[30];
- vector<int> mij;
- //char[30]imp;
- char nume[30];
- public:
- SU(){}
- friend istream&operator>>(istream&in,SU&ob)
- { cout<<"Numar /strada/ sector/ nume/ nr mijl/ mijloace transp/cod"<<endl;
- in>>ob.numar;
- try{
- if(ob.numar<0) throw ob.numar;
- in>>ob.strada>>ob.sector>>ob.nume;
- in>>ob.nr;
- for(int i=0;i<ob.nr;++i)
- {
- int x;
- in>>x;
- ob.mij.push_back(x);
- }
- in>>ob.cod;
- return in;
- }catch(int l){cout<<"Numarul strazii este invalid";return in;}
- }
- friend ostream&operator<<(ostream&out,SU&ob)
- {
- out<<"Numar="<<ob.numar<<endl;
- out<<"Strada="<<ob.strada<<endl;
- out<<"Sector="<<ob.sector<<endl;
- out<<"Nume="<<ob.nume<<endl;
- out<<"Nr="<<ob.nr<<endl;
- out<<"Mijloace="<<endl;
- while(ob.mij.empty()==0)
- {
- out<<ob.mij.back()<<endl;
- ob.mij.pop_back();
- }
- out<<"Cod="<<ob.cod<<endl;
- return out;
- }
- SU(const SU&ob)
- {
- strcpy(strada,ob.strada);
- numar=ob.numar;
- sector=ob.sector;
- mij=ob.mij;
- strcpy(nume,ob.nume);
- strcpy(cod,ob.cod);
- }
- SU&operator=(SU&ob)
- {
- strcpy(strada,ob.strada);
- numar=ob.numar;
- sector=ob.sector;
- mij=ob.mij;
- strcpy(nume,ob.nume);
- strcpy(cod,ob.cod);
- return *this;
- }
- SU(char street[30],int num,int sect,int cardin,char numele[30],vector<int>mijloac,char codul[30])
- {
- strcpy(strada,street);
- numar=num;
- sector=sect;
- strcpy(nume,numele);
- nr=cardin;
- mij=mijloac;
- strcpy(cod,codul);
- // return *this;
- }
- ~SU(){}
- };
- class SE
- {public:
- int numar,sector,nr;
- char cod[30];
- vector<int> mij;
- char strada[30];
- char nume[30];
- //public:
- //char[30]imp;
- friend istream&operator>>(istream&in,SE&ob)
- { cout<<"Numar /strada/ sector/ nume/ nr mijl/ mijloace transp/cod"<<endl;
- //cout<<"dc?";
- in>>ob.numar;
- try{
- if(ob.numar<0) throw ob.numar;
- in>>ob.strada>>ob.sector>>ob.nume;
- in>>ob.nr;
- for(int i=0;i<ob.nr;++i)
- {
- int x;
- in>>x;
- ob.mij.push_back(x);
- }
- in>>ob.cod;
- return in;
- }catch(int l){cout<<"Numarul strazii este invalid";return in;}
- }
- friend ostream&operator<<(ostream&out,SE&ob)
- {
- out<<"Numar="<<ob.numar<<endl;
- out<<"Strada="<<ob.strada<<endl;
- out<<"Sector="<<ob.sector<<endl;
- out<<"Nr="<<ob.nr<<endl;
- out<<"Mijloace= ";
- while(ob.mij.empty()==0)
- {
- cout<<ob.mij.back()<<" ";
- ob.mij.pop_back();
- }
- out<<endl;
- out<<ob.cod<<endl;
- return out;
- }
- SE(){}
- SE(const SE&ob)
- {
- strcpy(strada,ob.strada);
- numar=ob.numar;
- sector=ob.sector;
- mij=ob.mij;
- strcpy(nume,ob.nume);
- strcpy(cod,ob.cod);
- }
- SE&operator=(SE&ob)
- {
- strcpy(strada,ob.strada);
- numar=ob.numar;
- sector=ob.sector;
- mij=ob.mij;
- strcpy(nume,ob.nume);
- strcpy(cod,ob.cod);
- return *this;
- }
- SE(char street[30],int num,int sect,int cardin,char numele[30],vector<int>mijloac,char codul[30])
- {
- strcpy(strada,street);
- numar=num;
- sector=sect;
- strcpy(nume,numele);
- mij=mijloac;
- nr=cardin;
- strcpy(cod,codul);
- }
- ~SE(){}
- };
- void citire(){
- cout<<"1 introduc Urban , 2 introduc Extraurban,3 criteriu B , 4 C , 5D , 6 iesire";
- int x;
- cin>>x;
- while(x!=0)
- {
- if(x==2)
- {
- SE d;
- cin>>d;
- extraurban.push_back(d);
- }
- else
- if(x==1)
- {
- SU b;
- cin>>b;
- urban.push_back(b);
- }
- else
- if(x==6)
- {
- cout<<"iesire"<<endl;
- break;
- }
- else
- if(x==3)
- { int i;
- cout<<endl<<"adresa va fi gasita deoarece nu poate fi un nume sau o adresa asemenea"<<endl;
- char choice[30];
- cin>>choice;
- for(i=0;i<extraurban.size();++i)
- {
- if(strcmp(extraurban[i].nume,choice)==0||strcmp(extraurban[i].strada,choice)==0||strcmp(extraurban[i].cod,choice)==0)
- cout<<extraurban[i]<<endl;
- }
- for(i=0;i<urban.size();++i)
- {
- if(strcmp(urban[i].nume,choice)==0||strcmp(urban[i].strada,choice)==0||strcmp(urban[i].cod,choice)==0)
- cout<<urban[i]<<endl;
- }
- }
- }
- }
- int main()
- {
- citire();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement