Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <memory>
- using namespace std;
- static int numarFructe=0;
- class Fruct{
- protected:
- string nume;
- int pret,valabilitate,cantitate;
- public:
- Fruct(const string& nume, int pret, int valabilitate, int cantitate):
- nume(nume),pret(pret),valabilitate(valabilitate),cantitate(cantitate){numarFructe++;}
- virtual void const print(ostream &)const;
- const string& getNume() const ;
- };
- void const Fruct::print(ostream &os) const{
- os<<" "<<nume<<" "<<pret<<" "<<valabilitate<<" "<<cantitate;
- }
- const string& Fruct::getNume() const {
- return nume;
- }
- ostream& operator<<(ostream& os,const Fruct& f){
- f.print(os);
- return os;
- }
- class Autohton:public Fruct{
- string judet,producator;
- public:
- Autohton(const string& nume, int pret, int valabilitate,int cantitate,const string& judet,const string& producator):
- Fruct(nume, pret, valabilitate, cantitate), judet(judet), producator(producator){numarFructe++;}
- void const print(ostream &os)const;
- };
- void const Autohton::print(ostream &os) const{
- Fruct::print(os);
- os<<" "<<judet<<" "<<producator;
- }
- class Import:public Fruct{
- string tara,importator;
- public:
- Import(const string& nume, int pret, int valabilitate,int cantitate,const string& tara,const string& importator):
- Fruct(nume, pret, valabilitate, cantitate), tara(tara), importator(importator){numarFructe++;}
- void const print(ostream &os)const;
- };
- void const Import::print(ostream &os) const{
- Fruct::print(os);
- os<<" "<<tara<<" "<<importator;
- }
- int main() {
- bool exit = false;
- vector<unique_ptr<Fruct>> fructe;
- while (!exit) {
- cout << "Bun venit in lista fructelor, alege optiunea:" << endl;
- cout << "1) Adauga fruct, 2) Afisare fructe, 3) Exit" << endl;
- string nume;
- int pret;
- int valabilitate;
- int cantitate;
- string tara;
- string importator;
- string judet;
- string producator;
- int input;
- cin >> input;
- switch(input){
- case 1:
- cout<<"1.)Adauga fruct autohton, 2.)Adauga fruct import"<<endl;
- int auxinput;
- cin>>auxinput;
- if(auxinput == 1){
- cout<<"Nume fruct:";
- cin>>nume;
- cout<<"Pret fruct:";
- cin>>pret;
- cout<<"Valabilitate fruct:";
- cin>>valabilitate;
- cout<<"Cantitate fruct:";
- cin>>cantitate;
- cout<<"Judetul de provenienta fruct:";
- cin>>judet;
- cout<<"Producator fruct:";
- cin>>producator;
- fructe.push_back(make_unique<Autohton>(nume, pret, valabilitate, cantitate, judet, producator));
- }
- else{
- cout<<"Nume fruct:";
- cin>>nume;
- cout<<"Pret fruct:";
- cin>>pret;
- cout<<"Valabilitate fruct:";
- cin>>valabilitate;
- cout<<"Cantitate fruct:";
- cin>>cantitate;
- cout<<"Tara import fruct:";
- cin>>tara;
- cout<<"Importator fruct:";
- cin>>importator;
- fructe.push_back(make_unique<Import>(nume, pret, valabilitate, cantitate, tara, importator));
- }
- break;
- case 2:
- for(const auto& fruct:fructe){
- cout<<*fruct<<endl;
- }
- break;
- case 3:
- exit=true;
- break;
- default:
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement