From 9787915e4669e36a3cb0e6a370b217cb8dd9c7f2 Mon Sep 17 00:00:00 2001 From: "lucas.campos" Date: Mon, 8 Mar 2021 17:53:01 -0300 Subject: [PATCH 1/5] =?UTF-8?q?Nova=20representa=C3=A7=C3=A3o=20para=20end?= =?UTF-8?q?ere=C3=A7o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Endereco.cpp | 9 +++++++++ Endereco.hpp | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 Endereco.cpp create mode 100644 Endereco.hpp diff --git a/Endereco.cpp b/Endereco.cpp new file mode 100644 index 0000000..4e6aed7 --- /dev/null +++ b/Endereco.cpp @@ -0,0 +1,9 @@ +#include +#include "Endereco.hpp" + +Endereco::Endereco(string logradouro, string cidade, string estado, string cep) { + this -> logradouro = logradouro; + this -> cidade = cidade; + this -> estado = estado; + this -> cep = cep; +} \ No newline at end of file diff --git a/Endereco.hpp b/Endereco.hpp new file mode 100644 index 0000000..f032e9f --- /dev/null +++ b/Endereco.hpp @@ -0,0 +1,24 @@ +#ifndef ENDERECO_H +#define ENDERECO_H + +#include +using namespace std; + +class Endereco { + + private: + string logradouro; + string cidade; + string estado; + string cep; + + public: + Endereco(string logradouro, string cidade, string estado, string cep); + + string getLogradouro(); + string getCidade(); + string getEstado(); + string getCep(); +}; + +#endif \ No newline at end of file From f2c0955938be98cd9037f159364381d3cad76fa7 Mon Sep 17 00:00:00 2001 From: "lucas.campos" Date: Mon, 8 Mar 2021 17:55:15 -0300 Subject: [PATCH 2/5] =?UTF-8?q?Adicinando=20m=C3=A9todos=20que=20retornam?= =?UTF-8?q?=20os=20valores=20dos=20atributos=20de=20endere=C3=A7o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Endereco.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Endereco.cpp b/Endereco.cpp index 4e6aed7..260ef23 100644 --- a/Endereco.cpp +++ b/Endereco.cpp @@ -2,8 +2,24 @@ #include "Endereco.hpp" Endereco::Endereco(string logradouro, string cidade, string estado, string cep) { - this -> logradouro = logradouro; - this -> cidade = cidade; - this -> estado = estado; - this -> cep = cep; + this->logradouro = logradouro; + this->cidade = cidade; + this->estado = estado; + this->cep = cep; +} + +string Endereco::getLogradouro() { + return this->logradouro; +} + +string Endereco::getCidade() { + return this->cidade; +} + +string Endereco::getEstado() { + return this->estado; +} + +string Endereco::getCep() { + return this->cep; } \ No newline at end of file From 4d91abba0ab6a2bdc7473397881943ccdc75e474 Mon Sep 17 00:00:00 2001 From: "lucas.campos" Date: Tue, 9 Mar 2021 22:41:11 -0300 Subject: [PATCH 3/5] Refactoring --- Cliente.cpp | 22 +++-- Cliente.hpp | 18 ++-- Encomenda.cpp | 24 +++++ Encomenda.hpp | 32 ++++--- EncomendaNormal.hpp | 33 ++++--- EncomendaRelampago.hpp | 38 +++++--- main.cpp | 213 +++++++++++------------------------------ 7 files changed, 166 insertions(+), 214 deletions(-) create mode 100644 Encomenda.cpp diff --git a/Cliente.cpp b/Cliente.cpp index 96c5819..9f6a437 100644 --- a/Cliente.cpp +++ b/Cliente.cpp @@ -2,12 +2,20 @@ #include #include "Cliente.hpp" -void Cliente::print(){ +Cliente::Cliente(string nome, Endereco *endereco) { + this->nome = nome; + this->endereco = endereco; +} + +Cliente::~Cliente() { + //delete this->endereco; +} - std::cout << " Nome: " << NOME << endl - << " Endereço: " << endereco << endl - << " Cidade: " << CIDADE << endl - << " Estado: " << ESTADO << endl - << " CEP: " << cep << endl; +void Cliente::print(){ + std::cout << " Nome: " << nome << endl + << " Endereço: " << endereco->getLogradouro() << endl + << " Cidade: " << endereco->getCidade() << endl + << " Estado: " << endereco->getEstado() << endl + << " CEP: " << endereco->getCep() << endl; -} \ No newline at end of file +} diff --git a/Cliente.hpp b/Cliente.hpp index ecde6c4..d29bd39 100644 --- a/Cliente.hpp +++ b/Cliente.hpp @@ -2,20 +2,22 @@ #define CLIENTE_H #include +#include "Endereco.hpp" + using namespace std; -class Cliente{ +class Cliente { + + private: + string nome; + Endereco *endereco; public: + Cliente(string nome, Endereco *endereco); - string NOME; - string endereco; - string CIDADE; - string ESTADO; - string cep; + ~Cliente(); - void print(); // imprime na tela os dados de um cliente cadastrado - + void print(); }; #endif \ No newline at end of file diff --git a/Encomenda.cpp b/Encomenda.cpp new file mode 100644 index 0000000..5643934 --- /dev/null +++ b/Encomenda.cpp @@ -0,0 +1,24 @@ +#include +#include + +#include "Encomenda.hpp" + +Encomenda::Encomenda(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) { + this->peso = peso; + this->custoPorkg = custoPorkg; + this->remetente = remetente; + this->destinatario = destinatario; + this->calculaCustoTotal(); +} + +double Encomenda::getCustoTotal() { + return this->custoTotal; +} + +void Encomenda::print() { + std::cout << "[Remetente]" << endl; + this->remetente->print(); + std::cout << "[Destinatário]" << endl; + this->destinatario->print(); + this -> _print(); +} diff --git a/Encomenda.hpp b/Encomenda.hpp index 0c6db2a..eb7e899 100644 --- a/Encomenda.hpp +++ b/Encomenda.hpp @@ -2,26 +2,32 @@ #define Encomenda_H #include "Cliente.hpp" + using namespace std; -class Encomenda{ +class Encomenda { + + protected: + double peso = 0.0; + double custoPorkg = 0.0; + double custoTotal = 0.0; + Cliente *remetente; + Cliente *destinatario; + + virtual void _print() {} + public: - double PESO = 0.0; - double CUSTOkg = 0.0; - double T = 0.0; - Cliente remetente; - Cliente dest; - - void print(){ - - std::cout << "[Remetente]" << endl; - remetente.print(); - std::cout << "[Destinatário]" << endl; - dest.print(); + Encomenda(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario); + + virtual void calculaCustoTotal() { + custoTotal = peso * custoPorkg; } + double getCustoTotal(); + + void print(); }; #endif \ No newline at end of file diff --git a/EncomendaNormal.hpp b/EncomendaNormal.hpp index e854f9c..21f00c0 100644 --- a/EncomendaNormal.hpp +++ b/EncomendaNormal.hpp @@ -3,28 +3,31 @@ #include "Encomenda.hpp" #include "Cliente.hpp" -using namespace std; -class EncomendaNormal: public Encomenda{ +using namespace std; - public: - - double calcula(){ +class EncomendaNormal: public Encomenda { - double x = PESO * CUSTOkg; + private: - return x; - } + void _print() override { + std::cout << "[Encomenda Normal]" << endl; + std::cout << " Peso: " << peso << endl + << " Custo por kg: " << custoPorkg << endl + << " Custo total: " << custoTotal << endl; + } - void print(){ + public: - Encomenda::print(); - std::cout << "[Encomenda Normal]" << endl; - std::cout << " Peso: " << PESO << endl - << " Custo por kg: " << CUSTOkg << endl - << " Custo total: " << T << endl; + EncomendaNormal(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) {} - } + // void print() { + // Encomenda::print(); + // std::cout << "[Encomenda Normal]" << endl; + // std::cout << " Peso: " << peso << endl + // << " Custo por kg: " << custoPorkg << endl + // << " Custo total: " << custoTotal << endl; + // } }; diff --git a/EncomendaRelampago.hpp b/EncomendaRelampago.hpp index 879c705..1275231 100644 --- a/EncomendaRelampago.hpp +++ b/EncomendaRelampago.hpp @@ -3,31 +3,39 @@ #include "Encomenda.hpp" #include "Cliente.hpp" -using namespace std; -class EncomendaRelampago: public Encomenda{ +#define TAXA_ADICIONAL 0.25 - public: +using namespace std; + +class EncomendaRelampago: public Encomenda { - double calcula(){ + private: - double x = PESO * CUSTOkg; - x += x * 0.25; - - return x; + void _print() override { + std::cout << "[Encomenda Relâmpago]" << endl; + std::cout << " Peso: " << peso << endl + << " Custo por kg: " << custoPorkg << endl + << " Taxa adicional: " << TAXA_ADICIONAL << endl + << " Custo total: " << custoTotal << endl; } - void print(){ + public: - Encomenda::print(); - std::cout << "[Encomenda Relâmpago]" << endl; - std::cout << " Peso: " << PESO << endl - << " Custo por kg: " << CUSTOkg << endl - << " Taxa adicional: " << 0.25 << endl - << " Custo total: " << T << endl; + EncomendaRelampago(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) {} + void calculaCustoTotal() override { + custoTotal = peso * custoPorkg * (1 + TAXA_ADICIONAL); } + // void print(){ + // Encomenda::print(); + // std::cout << "[Encomenda Relâmpago]" << endl; + // std::cout << " Peso: " << peso << endl + // << " Custo por kg: " << custoPorkg << endl + // << " Taxa adicional: " << TAXA_ADICIONAL << endl + // << " Custo total: " << custoTotal << endl; + // } }; #endif \ No newline at end of file diff --git a/main.cpp b/main.cpp index f73d1b8..46f1cde 100644 --- a/main.cpp +++ b/main.cpp @@ -1,179 +1,80 @@ #include +#include +#include + #include "Encomenda.hpp" #include "EncomendaNormal.hpp" #include "EncomendaRelampago.hpp" #include "Cliente.hpp" -using namespace std; - -int main(){ - - Cliente cli0; - cli0.NOME = "Thales"; - cli0.endereco = "Rua dos Pré-Socráticos"; - cli0.CIDADE = "Miletus"; - cli0.ESTADO = "Ionia"; - cli0.cep = "548 a.C."; - - Cliente cli1; - cli1.NOME = "Aristóteles"; - cli1.endereco = "Avenida do Meio-Termo"; - cli1.CIDADE = "Atenas"; - cli1.ESTADO = "Ática"; - cli1.cep = "384 a.C."; - - Cliente cli2; - cli2.NOME = "Platão"; - cli2.endereco = "Praça das Formas"; - cli2.CIDADE = "Atenas"; - cli2.ESTADO = "Ática"; - cli2.cep = "348 a.C"; +#include "Endereco.hpp" - Cliente cli3; - cli3.NOME = "Sócrates"; - cli3.endereco = "Rua do Elenchus"; - cli3.CIDADE = "Atenas"; - cli3.ESTADO = "Ática"; - cli3.cep = "399 a.C."; - - Cliente cli4; - cli4.NOME = "Pitágoras"; - cli4.endereco = "Praça dos Quadrados dos Catetos"; - cli4.CIDADE = "Samos"; - cli4.ESTADO = "Egeu"; - cli4.cep = "571 a.C."; - - Cliente cli5; - cli5.NOME = "Parmênides"; - cli5.endereco = "Rua do Não Ser"; - cli5.CIDADE = "Eleia"; - cli5.ESTADO = "Magna Grécia"; - cli5.cep = "460 a.C."; - - Cliente cli6; - cli6.NOME = "Empédocles"; - cli6.endereco = "Rua dos Quatro Elementos"; - cli6.CIDADE = "Agrigento"; - cli6.ESTADO = "Sicília"; - cli6.cep = "495 a.C."; - - Cliente cli7; - cli7.NOME = "Anaxágoras"; - cli7.endereco = "Avenida da Mente Cósmica"; - cli7.CIDADE = "Clazômenas"; - cli7.ESTADO = "Jónia"; - cli7.cep = "499 a.C."; - - int quantN = 0; - int quantR = 0; - - EncomendaNormal enc0; - enc0.PESO = 5; - enc0.CUSTOkg = 12; - enc0.remetente = cli0; - enc0.dest = cli1; - quantN++; +using namespace std; - EncomendaNormal enc1; - enc1.PESO = 10; - enc1.CUSTOkg = 12; - enc1.remetente = cli1; - enc1.dest = cli2; - quantN++; +double getCustoTotalDasEncomendas(vector encomendas) { + double custoTotal = 0; + for (auto it = encomendas.cbegin(); it != encomendas.cend(); ++it) { + custoTotal += (*it)->getCustoTotal(); + } + return custoTotal; +} + +void imprimeEncomendas(vector encomendas) { + for (auto it = encomendas.cbegin(); it != encomendas.cend(); ++it) { + (*it)->print(); + std::cout << endl; + } +} - EncomendaNormal enc2; - enc2.PESO = 7; - enc2.CUSTOkg = 12; - enc2.remetente = cli2; - enc2.dest = cli3; - quantN++; +int main(){ - EncomendaNormal enc3; - enc3.PESO = 2; - enc3.CUSTOkg = 12; - enc3.remetente = cli3; - enc3.dest = cli4; - quantN++; + Endereco endereco0 = Endereco("Rua dos Pré-Socráticos", "Miletus", "Ionia", "548 a.C."); + Cliente cli0 = Cliente("Thales", &endereco0); - EncomendaNormal enc4; - enc4.PESO = 3; - enc4.CUSTOkg = 12; - enc4.remetente = cli4; - enc4.dest = cli5; - quantN++; + Endereco endereco1 = Endereco("Avenida do Meio-Termo", "Atenas", "Ática", "384 a.C."); + Cliente cli1 = Cliente("Aristóteles", &endereco1); - EncomendaRelampago enc5; - enc5.PESO = 13; - enc5.CUSTOkg = 18; - enc5.remetente = cli5; - enc5.dest = cli6; - quantR++; + Endereco endereco2 = Endereco("Praça das Formas", "Atenas", "Ática", "348 a.C"); + Cliente cli2 = Cliente("Platão", &endereco2); - EncomendaRelampago enc6; - enc6.PESO = 6; - enc6.CUSTOkg = 18; - enc6.remetente = cli6; - enc6.dest = cli7; - quantR++; + Endereco endereco3 = Endereco("Rua do Elenchus", "Atenas", "Ática", "399 a.C."); + Cliente cli3 = Cliente("Sócrates", &endereco3); - EncomendaRelampago enc7; - enc7.PESO = 8; - enc7.CUSTOkg = 18; - enc7.remetente = cli7; - enc7.dest = cli0; - quantR++; + Endereco endereco4 = Endereco("Praça dos Quadrados dos Catetos", "Samos", "Egeu", "571 a.C."); + Cliente cli4 = Cliente("Pitágoras", &endereco4); + + Endereco endereco5 = Endereco("Rua do Não Ser", "Eleia", "Magna Grécia", "460 a.C."); + Cliente cli5 = Cliente("Parmênides", &endereco5); + + Endereco endereco6 = Endereco("Rua dos Quatro Elementos", "Agrigento", "Sicília", "495 a.C."); + Cliente cli6 = Cliente("Empédocles", &endereco6); + + Endereco endereco7 = Endereco("Avenida da Mente Cósmica", "Clazômenas", "Jónia", "499 a.C."); + Cliente cli7 = Cliente("Anaxágoras", &endereco7); + + vector encomendasNormais; + encomendasNormais.push_back(new EncomendaNormal(5, 12, &cli0, &cli1)); + encomendasNormais.push_back(new EncomendaNormal(10, 12, &cli1, &cli2)); + encomendasNormais.push_back(new EncomendaNormal(7, 12, &cli2, &cli3)); + encomendasNormais.push_back(new EncomendaNormal(2, 12, &cli3, &cli4)); + encomendasNormais.push_back(new EncomendaNormal(3, 12, &cli4, &cli5)); + + vector encomendasRelampagos; + encomendasRelampagos.push_back(new EncomendaRelampago(13, 18, &cli5, &cli6)); + encomendasRelampagos.push_back(new EncomendaRelampago(6, 18, &cli6, &cli7)); + encomendasRelampagos.push_back(new EncomendaRelampago(8, 18, &cli7, &cli0)); std::cout << "\n>> Relatório de encomendas <<" << endl; - double custN = 0; - double custR = 0; - - enc0.calcula(); - enc0.print(); - custN += enc0.calcula(); - std::cout << endl; - - enc1.calcula(); - enc1.print(); - custN += enc1.calcula(); - std::cout << endl; + imprimeEncomendas(encomendasNormais); + imprimeEncomendas(encomendasRelampagos); - enc2.calcula(); - enc2.print(); - custN += enc2.calcula(); - std::cout << endl; - - enc3.calcula(); - enc3.print(); - custN += enc3.calcula(); - std::cout << endl; - - enc4.calcula(); - enc4.print(); - custN += enc4.calcula(); - std::cout << endl; - - enc5.calcula(); - enc5.print(); - custR += enc5.calcula(); - std::cout << endl; - - enc6.calcula(); - enc6.print(); - custR += enc6.calcula(); - std::cout << endl; - - enc7.calcula(); - enc7.print(); - custR += enc7.calcula(); - std::cout << endl; - std::cout << "\n>> Encomendas Normais <<" - << "\nQuantidade: " << quantN - << "\nValor Total: " << custN + << "\nQuantidade: " << encomendasNormais.size() + << "\nValor Total: " << getCustoTotalDasEncomendas(encomendasNormais) << endl << "\n>> Encomendas Relâmpago <<" - << "\nQuantidade: " << quantR - << "\nValor Total: " << custR + << "\nQuantidade: " << encomendasRelampagos.size() + << "\nValor Total: " << getCustoTotalDasEncomendas(encomendasRelampagos) << endl; } \ No newline at end of file From 9f6c506b6c80f8d31be7b1a10fa9a69acc80afc9 Mon Sep 17 00:00:00 2001 From: "lucas.campos" Date: Tue, 9 Mar 2021 22:49:26 -0300 Subject: [PATCH 4/5] =?UTF-8?q?Corre=C3=A7=C3=A3o=20no=20c=C3=A1lculo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EncomendaNormal.hpp | 8 -------- EncomendaRelampago.hpp | 13 +++---------- exec | Bin 0 -> 46216 bytes 3 files changed, 3 insertions(+), 18 deletions(-) create mode 100755 exec diff --git a/EncomendaNormal.hpp b/EncomendaNormal.hpp index 21f00c0..81e6f72 100644 --- a/EncomendaNormal.hpp +++ b/EncomendaNormal.hpp @@ -21,14 +21,6 @@ class EncomendaNormal: public Encomenda { EncomendaNormal(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) {} - // void print() { - // Encomenda::print(); - // std::cout << "[Encomenda Normal]" << endl; - // std::cout << " Peso: " << peso << endl - // << " Custo por kg: " << custoPorkg << endl - // << " Custo total: " << custoTotal << endl; - // } - }; #endif \ No newline at end of file diff --git a/EncomendaRelampago.hpp b/EncomendaRelampago.hpp index 1275231..adb3fec 100644 --- a/EncomendaRelampago.hpp +++ b/EncomendaRelampago.hpp @@ -25,17 +25,10 @@ class EncomendaRelampago: public Encomenda { EncomendaRelampago(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) {} void calculaCustoTotal() override { - custoTotal = peso * custoPorkg * (1 + TAXA_ADICIONAL); + double valor = peso * custoPorkg; + valor += valor * (1 + TAXA_ADICIONAL); + custoTotal = valor; } - - // void print(){ - // Encomenda::print(); - // std::cout << "[Encomenda Relâmpago]" << endl; - // std::cout << " Peso: " << peso << endl - // << " Custo por kg: " << custoPorkg << endl - // << " Taxa adicional: " << TAXA_ADICIONAL << endl - // << " Custo total: " << custoTotal << endl; - // } }; #endif \ No newline at end of file diff --git a/exec b/exec new file mode 100755 index 0000000000000000000000000000000000000000..18f242ce0b532f5721e09537eb25fa2005f4f1c8 GIT binary patch literal 46216 zcmeHwdwi7D(f^anYD5eH5hJ25h!jv_HWv~UYPc+HBw(5ZMHC;F&4#Qd*|^ytSZz_j z*A!#X7NuS)tyHPCmU=5*8wE+Ew#C*;RFu?u*%VZ&)~1N$_nmX*JhwcXpr7}j-{#v~dABm&CDyBQ(EYRpuka+1Te?MML_lZhT z>;pHG;czLa>U{_GNYA6avY4@g+e>DbgWR5i$`9w(MV3x3IJd5PQeC8>dBvm^#givZ zF34$$=H!WflYHWxGk<|-iNvre1bsNlgd=+Jme;k~@BZYES9{ws)=m0Tv}4XEbBK2= z{*>R~IdM-ox=z|Sc&5B_|MvjU9Ktq+7#elMKZpk1@NYl?H~g27GsY%a7A{XB=eQ*J z{Ym6^CgFby%?x#E_v0k}BI~>9|Cc1~j!PnESQ0$NwVV7IN#yTKqR-n&Tt4D{EFKj*b0i9UBFkv}YnJ~Ym}PT?rmCXs)B z68?!v^uGdfhH4`ao zaU|NLL#J>-X+tD#NR8Gt`O9ZlR7NXxw5cy!u|jVQ$C{!I!MaF%rM^73uey0qy(!|Z z@z+*zrq5qKHv~QNNzdxKaJ4C+haxCT8GjE8DLsEkvq@!DAQ8oe&uuq_4U!^7}h!o;0#b7j5KI-X3o^}b8@vgWu-G_>UlW@#$8@cp*C~j!s#i?DLxhM~hL{88k`5e%xPV>mfakLVhZ1AU} zj-&x-D_{K$4=^a}g@qEo#DU++ z^_w<(nP&&D^i`4!n}H$$>BD_4O79Udi9)z&A2~n**=-cRTPm zGk*rpo629Rtn5lLLu+A*DY}%MoOsm^;RoSQ@pnYMD9JsFv2{Utw*`N!;E?}xTJUOb zMU*ZJp4KetN?7n-g#r2AM4USm0=JJnHFh6RrS zV_aDlJcg}tWn1t(v;@s-!CUuD<1KjQGpdkl!DHYXSFr_;0dHI-7W`lXt7!oX{sarY z+=9=v;1^o(LoE0u7QBiDBG+2*LoNJ`7QA&`yTXD$(ZavVfT@g5PSvpJu^tv*1s+;M*+t(H4AQ^?{7QI?qQ}c(uUVws>mq z?!f9D8QTqx-oiH*d$r!P_Tt|mXO!TM%C$uA?&`&L)?cVhA=$lKly^~?Lb1C|lwYJW zg<$tqQGS}r6nfp8MEOxFQ@D4p7v+bjOd;64N|b+2WeWT5Mp3?t$`p#-OGNp0DpLq{ zmy7Zbs7xuLyF`?4q%wtKcdjU3OJxedZm%fEs7#^Poh8awQaO{#nkX-&GKE_A!6QJN zwTQ|TV%=S$TtQ_Dt?u2Td?A%7q`KQgc?Oj!l)ATy@_AII6xY2;l=G-eA=SNJlqXV| zLaBR|D375sg-~~+D37Evg--VpQ67eJ&3cr@<@>0#<<%;WUi0 z))W3ZmB6$jc&7KHFE00LpAR`>mOzb$fCYh8&nbX`DLsLf_v5D^BzA#^LgIwQywIIwQol_(`nfCmx*{Ik<@1Nc%%omHgRXWJnX{UP?n z-8JB#J4APGpym3`>cG16v&Mrh(Bkj$wbcyyr0vroL;VK>>-?R8miELE3<;3BRCxwc zILe7Y>jL}%-|{-KeIMvGZSf+BYES%u*w%rwJyCt0rqv7?-|^{?EdRkzhb(+S$`^Ip z6E}i!|IY;tP4rX;@})X)PvY*cdV62q-jA|Mr$ti7gew13mJdQl{6SZ#<6A&O$MYqs zJ@GA5$JeHix}NSuUZ}hio;&w4nDo%$-d@H0CMxg$>3XM*{{f5Cae7r{;D!UMFg&d$ zP59aZt!umf3qdeNDS8xW-5`psYiW=oI%Z*`O~hwKYirw>_cX~XijaVS2JdL*T`zez zG4H=baf2vAuH^j^b{F=SysMb^CCMv_kSkg#+{3)Zg7}=&tW`F;LCSkVvaap=vbVRi z1!JK-F?BLpU>PW01`3L*p;u&4)CP5$ED9Y_d_)#S6DXb`i*2mrdag?r0yTx1nHsYf zKNCfVRZr(0)i6iiZE1n0K?}UB#XENM2Di{5PL@R|wvI{kH@zX8&DRVDsPI z)Pm{1!LnWDzw0Gcsr<1lD*x%S*hT=h*e#37s?(X7sgK%=`Jy3*|86gqR((M5ZXm4# zt;&DvsfP65`dpj;_VkE8ba6`odrL1%VS;Lmzd~+ls^nE&xL5LuqT#>JBB@oD$W)rGfZ!=h;TFPnMGCGRHg&~GKLC>s9z4Es~+!C1+= zih0*cUQsmsH;U!vyMh4!-TkS} ze}iSa%DdM~s#5u5SycYhWwDKw+%1d7{Kw2pebipe7Y#Z5cM0WoDD{Bgpd^s*GzMS2+X-+z6wrKyrvb>UvgD~g6sUT5Ac$-9X=bhYFaMZ+hL zG4Fd)rB%%9m%O6by0%2j{e`zN?>51!{3ji^K|1aU$tqUD?7wGa>I1>MLBxr%evuI; z)}On-W%J+3cF{N6i^tholIAJAmRq_`@~SSpEgKd^!_Jp5Z@J{%#2xyr#-TFEPlt!p*OJB)dIJ|P!8CpBx89@`-0Jt0}eN?Xl;GIj+4raDzrHs?QC z6tzM9>SN(urE-I$mWY|CJ+V(x+gQnRNmbr`K~lSznkT8M_?Rdv{|Sk$g^MV+quFti zC?cVidn9KKnLo3}3I8cQF0r@NA&aZH;r0_X?e{R1miRsqTDD^|DAuxw40Hs$V9%}8 z?mEv8Me~26eRH5??F!TfQNTdUzQkKYNV$7O2aN5cY((tF|7f&xve8bP@Kh@`N9~N0 z?VQ_hJ52+$6E@oU%}1&~Vr|gcO3hI_&(r#Do#)R4T9WnW_yOAa3WrA0ZgY%wydv|r zQghVK#j>4fzwO+g*}vU3813vkp!!oT+o9&DosVhGSmzniZ#(A?(9R^Zg9N;Z!(!`D z)xBDyS()@&sdZ}hLD}pU0!hud(9Mjp5fK(o8trICJ3LgWIcnzu*-oI}b`H9A&(h9( zqn(ZWl^H3%v4EuJsGU9M2s0)KB<;`51GMu&7MZc|88Hn^yRH;RHYbY)UxbHFLy^vM zTJ|LJ2-&(p3=k|ugw=&X_6PyS@yu-$T#BJRQ7EWtRcWcV$zE-dz1k7-LTjO4YV|0Drxvm-(6Uy#OywojtbC`Fw;#KOmnd)atJtU?*ah7oEzQkvu z3fbTkG|o22kt%#JQL6BXY~^V#c2QAiw25Q#FC?4Hw=a<|dGBG~#}%)OWo{CEHw^kC z;f;NXprO(K%rP{&M~F3e+sWCj#_`uSSybx$QWjUSc6Z652woWU6R)VNrt2d(!zSY* z*2vtiN~&6_bxA6XETTTfb$KKFqNLJrC+Y^SOUq{zH%qF>aVTEHb(wmTq>4-n>ZM$l zw!SFR$vU*61Wd*Axh_*LlvFWHKs}A?vKr@rx=q6sST`?$Gt$B0$act@T%7iIkHbIG zd1@#5>W96(`*F@}4Y6qnw9A`YH1LRpMHzXdWKo7%XJKh$!~X|3lENF4S_?}Tv%E$u zE#mOFlmrSbRD~j!3ikuoJqOP*?41~FVO4%#L9)$Gbbny>Q*~m2WKo^iX<<>F$YUwo ziTf=qsuM%N(!CjnxpwtexUjwlT=$g*tMb7-3#(H9Dc~&XPqeTo_3w}@O8sLkEK2<* zmcr`4_r7TarG7bBy4&&S$gciVF05w}YpcPk)W6ljs?J(5MKAF!|} z^&e*`to~UR7N!1ez;*uVIJuZTUeC(*^))6 z-(q1=>i-)!%Lu5kuqgHa0$leAhE6K>&v#*ckXY&M5!q9fva&3!O8x7AL&K_vAN|8L zhEo4h$)eQXWnoe3PnIl7rw1)8O8pbT(w%GQq*$+WVNC$n{Y9!$zl3w!cPy+*{pWy# z`l^RH78a%cU6Muh@OTT0QvVvsqI62UYZ^hRUj>%#N<$~b`kV{v1Y$kKVAWXt+byh0 z{Ug9ZeJ`^_Ei6j?wa&a$$8#^{~O~UaNwVl`2E*gg>PYG ztrhtrMpnw0R~_Gp6uSQcJMK}!oo&bclyE$`DZBo_g4@LN&~giI72}oyXBk7k%N9iy zB0Fiwnj!iVNmZk1i=>wGl>A+;%h}`ylB(7Xi@7eZ4C*9Rts5@jx=fufscjrvqq#1x z400t^tsBy~E>r1kU+BDq>%Nc2;V5>olAnuFEau|py6E{Z{t4W$gPu}eHvRI&>fvfu z%k_s_ntN7Xe>kN%?}qDf%8uvE6Yv;x$^}@xR#K(blhVKKh3LX@Kw)Y5!88D@BbM*$ z?OiXQfId&vevh!z5}T3SS$fO$cvjd<&yx>YFnH99Z9o7oScsdFtWSqr`hqMBEy-SQ zYKCXjJ!o~?Y1FT28_{YaA58{YXni|HC?VGP^9k8nc)#RpB);PnpT8%tt|TMSLXV&E z44SqCe^xZlzo$}1gp5H_MlH!e*Z%MhwgjMewMNHFXK!wEHZ!4?*14~o3NDm=f3+G9`k;M0e;&ZX; zO4Vb}eWr}ZrHo-D1Bx}<>f5b4#i*~F_2aVsAg*7i>U%2j7LU!ShYXU}tSOwf%S6Xbsy zD)ZLv@j$OhGdJyY&80`k4RcHY-HXOmJ^4-^Mpz?O4}3vKmt|qMx)ehfAs+=k+Uf= zzus#`vwX?rJc|y~7tl*7s}GEaMLJ-SHtU-yop>{4-Qo_&ZzD+w*00sShh6vssg$7Z zKvEC1ynvTsKz&g>I@*`mM+^efp7@<)Mk{z4E><2dK{BM1*@cJ@rXs8YR1q&UYh^9n zftEMRT0Wp!cZ#VBSsk@n$}{Lq8-#{>8|eJ~1!5II?c+Tfp=>AJe((laV7si=p7@1O zR8U?4C23t`rynWEs6iN63rs+_b_ZVQNwaV%ORp1QKsi)--rX}K3OYR` zUD$UNg7z*{ca4#CCGc)vZ44X-q==Wdq_st3-$e){ix;oR^VEwLysfnkZ$k+U#o5;@ zQV}uN*m~1<46PHR0Ro`nlo#VuA*GA@*=9r^Xdlo1%nijf?=BEL*f20gc(Y@Edq9_$%SqK$G zL~@+DzlR55o$i@cCs8h$wH~?P8)w!*NrYw#p}Za;+au&Snp)0MG|>-JI0%nu!%Si#;3(0~)$S1;lRJ)_B zJ{g9w60Jb74(DEvz;dWSH!mELnU4a)4 zVGH@X#0@fgc!L}WU?jz}SVRZqF5K_7nI}cI-BO;l9yB_Zm9MT2S#v84)V+qx2)&2@ z1*)vRzC&vs3pTrjl?dUr%h197V?>jvcDC5jp^16aV<;oW*O_L&5Cj;461@w%!NlFv zP|Nnjb^$x7?GD@~Dun_&%56J7V=UWe1)Rc??|YnMSj>dB0Y!&aYS@#QIw(l0R1)0BxmuLYsMf1W*MyuWpuS%lk`(R*%U=>!Mw{5|E! z#Bb=iJ6<|R*k;qDI3CMZX(yGH#iT$XOGZ)tpf&x}-VsnMcwQe^yC~KM z;#Kv7tVjnXF_#JS90-$c>bnAhfi4pxLz5kaTd)dc44J8uR*t+>=^MRb?m7vL_8`ub z9&@Q%o^23f%$OWwa%IprI$Gvo%u_08PZX1tgv}FFoFIzrkWL)1FmfE$v+pDp58?yTjZXVd{sUK!1ZxBU? z-)VVa_q(lev38+(Y=YX-BIDu+==vTleg|BiK@QyBlMv zPz(tiP;&I+$Uh+ES{(T-Wni<9zedq?2Nrf*QhahU5HhUb-bpK8YAg!!hOT2vc`>;ZK{&JQVF)5D7KO|&p zVJlU}kk}%4kfmhBb>-fGdO1M!>~uQRQ5Xo=m$=xFdYvitHYwH5QY&1f`d6{B{!QzM zRw@d4#~AX?G38B{^6=GDLd#S)d7D_?U!^=0g}f(svMD@!$9hp)^!i_f#EV8)h*7T} z6+HG{(;=7W@^7U)6otGRL*6Z>yq^hq@?7jJdB2GSpCa#9(ftYH-gwjE$V>1o2CKQv zh+ne5oJLWrl=C(i__3H@2z$kX5E7p;5r)_Yf#c}92Ms2^MXlbjgCfUVR3&{pbSg}q zC=iOC^!}MJS8HJgd10NWol5A%C6Ldniszk=hm3JjY)k%F<&??IsTeO$kcO1aR=0Uc z;xEi{36(dPJtIFp1TDpTpv?4x5z7t-ZYobel-p$S~FwskZ?qKw3K<~d$r7b>B zuT{LO+k`R;&9YE7pvq8eD&5P0>?0jl?_wV3)S8CV^|2u9$|VCvG>$~ z+|*IUy>38m>c8S%+=rVc9k*v8ttVZ2It2k$rR7==f2b5kftG@el1&sm)DVxlBp;RV z7-T5U97&S!rf?tKcOp%W7kC(!-eIt=T&1XzY_&g9S+cb-oz5Uyr&Wwb*nadPxdS=R z^O=`oRfI$acM|88!hes_cDuE(GhNghN%fvE>OEuD+f7KJX32O8!fWL=9jd|(_swefcn*Lu?J)Ie+DlR!buxM;3Dkq%yi1{V4ABy`?^XT-I`^tmTVY zEuT#99lkfPdV5M>%G=HVMA&9rwwO-Sr(ZE$-@e}byz^(RLh?-Maq^+c>VZFq);uC zs@(oqD26Y|Y0?Ude3He#EZnSB2J4}jyp&kz{+;Gvbu37|pud@@7zbNoJbA(>l?TKvN{?fBNV7EUby`+GW*QB;I-Qy2cy-7LD;Y% z9`?@M{#aAJFmgk1h0=Y{x4-R$Yhkg+Vv(q~I_!m!WV|$ar%u&~ZbVR%455gmK(mH8 zyi^^A{|8+htc%9HRU9~uYG&||%;n)wJQ_RiJbj*y?*^mqdBV4OHHBkwwmrTTw|{Xrg8$|@k>8=9&a>n{f{Mq~wCi8zmk7i*Wz3OB{^4NZt8n13+HLHj-c`U>nNs{=T<23(53{cm$LSn2+?a9`L~1y}hGwj9>Up zZ|_vV3jyiT^8 zz%sxbz&gMS0dE1Mw+bHyd=hXs;10lpfFA>9VHJ27klwwew>7H(-vx{V9t8X`AicZ# zIN+6ldjX#ZJPbGtFT{?*s&p3MRKObnF9-Y`;B|m+1KtBT0`EpY3%C?;FW@`-dwbId z;ajKhiuYK+9KczC=K)p&t^r&F_%`5Xz)ZZ7z5{Rq;Cq0V0Hz<0egTdJd>C*R;4Z*w zz$fuBk(&XJ0B!-C@kwuQ2jFtR1mGIL47`Kf2}tiE9|0@_JOPK2b%5sq-U2uq@L|9! z0bc>U1@Hji?*Ip%plN>xJO^+BKFCxCxCpQgFamfB;1hsb0e1uL1{{Vh_d&pO0JAbR zZ82aj;8lR-fI9%=fSrIp2K3;gbdLj$0elTG7w~hyAmDJkoBnISV!&be5Fve9q5yCO z;4Ogn0NxAuEa0yI_X6$(JPbGkp9@`rczyuzX22H#w*VfGgWBDIRe%QpuLR7(yZjA! z->evLBj7^7oq#IZQ}nP&zX#|{(7&|OQ@;=lRR3B0{S$OL^D*kDRvGlYK#zT^xA#2K zU&&7^Od$rUe;9w?#)~}3>W@Ob6`)sw�d|-;hr)S?+qexA)gJ`WAzJIp~+b-kWXo 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 VP!!ziKlm%jb(&I?D>;hV{{w&dJVXEh literal 0 HcmV?d00001 From 905883589f672ab7267b417c92a74b547ae42cf8 Mon Sep 17 00:00:00 2001 From: "lucas.campos" Date: Tue, 9 Mar 2021 23:02:09 -0300 Subject: [PATCH 5/5] =?UTF-8?q?Corre=C3=A7=C3=A3o=20na=20defini=C3=A7?= =?UTF-8?q?=C3=A3o=20do=20custo=20total?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Encomenda.cpp | 1 - Encomenda.hpp | 5 +---- EncomendaNormal.hpp | 8 +++++++- EncomendaRelampago.hpp | 15 +++++++++------ exec | Bin 46216 -> 0 bytes 5 files changed, 17 insertions(+), 12 deletions(-) delete mode 100755 exec diff --git a/Encomenda.cpp b/Encomenda.cpp index 5643934..01c64f4 100644 --- a/Encomenda.cpp +++ b/Encomenda.cpp @@ -8,7 +8,6 @@ Encomenda::Encomenda(double peso, double custoPorkg, Cliente *remetente, Cliente this->custoPorkg = custoPorkg; this->remetente = remetente; this->destinatario = destinatario; - this->calculaCustoTotal(); } double Encomenda::getCustoTotal() { diff --git a/Encomenda.hpp b/Encomenda.hpp index eb7e899..60ae54d 100644 --- a/Encomenda.hpp +++ b/Encomenda.hpp @@ -16,15 +16,12 @@ class Encomenda { Cliente *destinatario; virtual void _print() {} + virtual void _calculaCustoTotal() {} public: Encomenda(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario); - virtual void calculaCustoTotal() { - custoTotal = peso * custoPorkg; - } - double getCustoTotal(); void print(); diff --git a/EncomendaNormal.hpp b/EncomendaNormal.hpp index 81e6f72..2bd8f30 100644 --- a/EncomendaNormal.hpp +++ b/EncomendaNormal.hpp @@ -17,9 +17,15 @@ class EncomendaNormal: public Encomenda { << " Custo total: " << custoTotal << endl; } + void _calculaCustoTotal() override { + custoTotal = peso * custoPorkg; + } + public: - EncomendaNormal(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) {} + EncomendaNormal(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) { + _calculaCustoTotal(); + } }; diff --git a/EncomendaRelampago.hpp b/EncomendaRelampago.hpp index adb3fec..48f9e94 100644 --- a/EncomendaRelampago.hpp +++ b/EncomendaRelampago.hpp @@ -20,15 +20,18 @@ class EncomendaRelampago: public Encomenda { << " Custo total: " << custoTotal << endl; } - public: - - EncomendaRelampago(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) {} - - void calculaCustoTotal() override { + void _calculaCustoTotal() override { double valor = peso * custoPorkg; - valor += valor * (1 + TAXA_ADICIONAL); + valor += valor * TAXA_ADICIONAL; custoTotal = valor; } + + public: + + EncomendaRelampago(double peso, double custoPorkg, Cliente *remetente, Cliente *destinatario) : Encomenda(peso, custoPorkg, remetente, destinatario) { + _calculaCustoTotal(); + } + }; #endif \ No newline at end of file diff --git a/exec b/exec deleted file mode 100755 index 18f242ce0b532f5721e09537eb25fa2005f4f1c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46216 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�d|-;hr)S?+qexA)gJ`WAzJIp~+b-kWXo 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 VP!!ziKlm%jb(&I?D>;hV{{w&dJVXEh