Informatică, întrebare adresată de danielabrz, 8 ani în urmă

Sa se scrie un program care administreaza o fabrica de jucarii. Fiecare jucarie are atasata o eticheta pe care este scris: denumire, material, mod de functionare(mecanic, electronic), destinatar. Campul “destinatar” contine la randul lui informatii referitoare la varsta si gen. Sa se afiseze pe ecran toate jucariile destinate fetelor. Rezolvare in c++.
Multumesc!


Apollyon: În ce limbaj să fie, C/C++/Java/Python ?

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

#include <iostream>

#include <string>

#include <vector>

class Destinatar

{

 int varsta;

 std::string gen;

public:

 Destinatar(int varsta, std::string gen)

   : varsta(varsta)

   , gen(gen)

 {}

 ~Destinatar() {}

 friend std::ostream& operator<<(std::ostream& os, const Destinatar& destinatar)

 {

   os << "varsta: " << destinatar.varsta << ", gen: " << destinatar.gen;

   return os;

 }

 std::string getGen() const { return gen; }

};

class Jucarie

{

 std::string denumire, material, modDeFunctionare;

 Destinatar destinatar;

public:

 Jucarie(std::string denumire, std::string material, std::string modDeFunctionare, Destinatar destinatar)

     : denumire(denumire), material(material), modDeFunctionare(modDeFunctionare), destinatar(destinatar) {}

 friend std::ostream& operator<<(std::ostream& os, const Jucarie& jucarie)

 {

   os << "Denumire jucarie: " << jucarie.denumire << ", material: " << jucarie.material

      << ", mod de functionare: " << jucarie.modDeFunctionare << ", destinatar: " << jucarie.destinatar;

   return os;

 }

 Destinatar getDestinatar() const { return destinatar; }

};

class FabricaDeJucarii

{

 std::vector<Jucarie> vectorJucarii;

public:

 FabricaDeJucarii(std::vector<Jucarie> vectorJucarii)

   : vectorJucarii(vectorJucarii)

 {}

 friend std::ostream& operator<<(std::ostream& os, const FabricaDeJucarii& fabricaDeJucarii)

 {

   os << "Magazinul de jucarii are urmatoarele jucarii in depozit:\n";

   for (const auto& jucarie : fabricaDeJucarii.vectorJucarii) {

     os << "\t" << jucarie << "\n";

   }

   return os;

 }

 void afisareJucarii() {

   for (const Jucarie& jucarie : vectorJucarii) {

       if (jucarie.getDestinatar().getGen() == "Feminin") {

           std::cout << jucarie << std::endl;

       }

   }

 }

};

int

main()

{

 /* creăm 3 obiecte de tip Destinatar (poți adăuga field-urile-n Jucarie dacă nu mai vrei o clasă-n +) */

 Destinatar destinatarPrimaJucarie(16, "Baiat");

 Destinatar destinatarADouaJucarie(17, "Feminin");

 Destinatar destinatarATreiaJucarie(13, "Feminin");

 /* crăm vectorul în care și construim obiectele (pentru a evita copierea lor folosim emplace_back în loc de push_back) */

 std::vector<Jucarie> vectorJucarii;

 vectorJucarii.emplace_back("Masina cu Telecomanda", "Plastic", "Electronic", destinatarPrimaJucarie);

 vectorJucarii.emplace_back("Papusa", "Plastic", "Mecanic", destinatarADouaJucarie);

 vectorJucarii.emplace_back("Papusa", "Plastic", "Mecanic", destinatarATreiaJucarie);

/* construim fabrica de jucării iar metoda afisareJucarii() va afișa jucăriile destinate fetelor  */

 FabricaDeJucarii fabricaDeJucarii(vectorJucarii);

 fabricaDeJucarii.afisareJucarii();

 return 0;

}


Cam asta e baza, mai poți crea tu funcțiile în care introduci datele de la tastatură și creezi obiectele în loc de a le avea deja create.

Alte întrebări interesante