online: 10; azi: 711; total: 52717 Manual clasa a x a - Realizarea aplicatiilor - Aplicatii

Manual clasa a X a

Realizarea aplicatiilor

Aplicatii

Ex3 -23 7 -Xa
O companie asigură distribuția către abonați a mai multor publicații. Compania per cepe editurii un comision de 25% din prețul publicației. Creați o aplicație pentru acest beneficiar, în care să păstrați evidența distribuțiilor. Trebuie să se păstreze următoa rele informații referitoare la editori şi abonați:
Aplicația trebuie să asigure afişarea următoarelor informații:
#include < iostream >
#include < string >
#include <vector>
struct Editura {
std :: string nume;
std :: string adresa;
std :: string persoana_contact ;
std :: string telefon;
std ::vector< std :: string > publicatii ;
};
struct Publicatie {
std :: string nume;
std :: string tip;
std :: string tip_distributie ;
double pret ;
std :: string nume_editura ;
};
struct Abonat {
std :: string nume;
std :: string adresa;
std :: string numar_telefon ;
std ::vector< std :: string > publicatii ;
};
void afiseaza_publicatii_abonat ( const std ::vector<Abonat>& abonati , const std :: string & nume_abonat ) {
for ( const auto& abonat : abonati ) {
if ( abonat.nume == nume_abonat ) {
std :: cout << " Publicatiile abonatului " << nume_abonat << ":\n";
for ( const auto& publicatie : abonat.publicatii ) {
std :: cout << publicatie << '\n';
}
return ;
}
}
std :: cout << "Abonatul nu a fost gasit .\n";
}
void afiseaza_publicatii_editura ( const std ::vector<Editura>& edituri, const std :: string & nume_editura ) {
for ( const auto& editura : edituri) {
if ( editura.nume == nume_editura ) {
std :: cout << " Publicatiile editurii " << nume_editura << " sunt:\n";
for ( const auto& publicatie : editura.publicatii ) {
std :: cout << "- " << publicatie << "\n";
}
return ;
}
}
std :: cout << "Nu s-a gasit editura cu numele " << nume_editura << "\n";
}
void afiseaza_exemplare_publicatie_editura ( const std ::vector<Editura>& edituri, const std ::vector<Abonat>& abonati , const std :: string & nume_publicatie , const std :: string & nume_editura ) {
int nr_exemplare = 0;
for ( const Abonat& abonat : abonati ) {
for ( const std :: string & publicatie : abonat.publicatii ) {
if ( publicatie == nume_publicatie ) {
nr_exemplare ++;
break;
}
}
}
std :: cout << "Editorul " << nume_editura << " trebuie sa furnizeze " << nr_exemplare << " exemplare din publicatia " << nume_publicatie << " pentru a asigura distributia catre toti abonatii .\n";
}
int main () {
std ::vector<Editura> edituri = {
{"Editura1", "Str. Principala 1", "Ion Popescu", "0123456789"},
{"Editura2", "Str. Libertatii 22", "Maria Ionescu", "0987654321"}
};
std ::vector< Publicatie > publicatii = {
{"Publicatie1", "Ziar", "Zilnic", 5.5, "Editura1"},
{"Publicatie2", "Revista", " Saptamanal ", 10.0, "Editura1"},
{"Publicatie3", "Carte", "Lunar", 50.0, "Editura2"}
};
std ::vector<Abonat> abonati = {
{"Abonat1", "Str. Florilor 10", "024681012", {"Publicatie1", "Publicatie2"}},
{"Abonat2", "Str. Viilor 8", "035791113", {"Publicatie3"}}
};
std :: string nume_abonat ;
std :: cout << "Introdu numele abonatului: ";
std ::cin >> nume_abonat ;
afiseaza_publicatii_abonat ( abonati , nume_abonat );
std :: string nume_editura ;
std :: cout << "Introdu numele editurii: ";
std ::cin >> nume_editura ;
afiseaza_publicatii_editura (edituri, nume_editura );
std :: string nume_publicatie ;
std :: cout << "Introdu numele publicatiei : ";
std ::cin >> nume_publicatie ;
afiseaza_exemplare_publicatie_editura (edituri, abonati , nume_publicatie , nume_editura );
return 0;
}
std ::vector< Publicatie > publicatii = {
{"Publicatie1", "Ziar", "Zilnic", 5.5, "Editura1"},
{"Publicatie2", "Revista", " Saptamanal ", 10.0, "Editura1"},
{"Publicatie3", "Carte", "Lunar", 50.0, "Editura2"}
};
std ::vector<Abonat> abonati = {
{"Abonat1", "Str. Florilor 10", "024681012", {"Publicatie1", "Publicatie2"}},
{"Abonat2", "Str. Viilor 8", "035791113", {"Publicatie3"}}
};
std :: string nume_abonat ;
std :: cout << "Introdu numele abonatului: ";
std ::cin >> nume_abonat ;
afiseaza_publicatii_abonat ( abonati , nume_abonat );
std :: string nume_editura ;
std :: cout << "Introdu numele editurii: ";
std ::cin >> nume_editura ;
afiseaza_publicatii_editura (edituri, nume_editura );
std :: string nume_publicatie ;
std :: cout << "Introdu numele publicatiei : ";
std ::cin >> nume_publicatie ;
afiseaza_exemplare_publicatie_editura (edituri, abonati , nume_publicatie , nume_editura );
return 0;
}

In cazul in care aveti erori: Atunci eroarea prov ine din faptul că proiectul este setat să folosească standardul C++98 în loc de C++11 sau o versiune mai recentă. Pentru a remedia această problemă, asigurați-vă că proiectul dvs. folosește cel puțin standardul C++11.
În Code:: Blocks , puteți modifica setările standardului C++ urmând acești pași: