From f5fbe0c70c08af8ce4d6dbbc3078557a48da7e58 Mon Sep 17 00:00:00 2001 From: klayor <72930341+klayor@users.noreply.github.com> Date: Tue, 9 Mar 2021 23:57:28 -0300 Subject: [PATCH] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mudanças: Cliente: Variáveis de Publicas para privadas. Novos métodos Get para todas as variáveis. Mudança no nome das variáveis para padronização, construtor inicializa os valores numéricos, Novos métodos get e set. Nova variável: Taxa adicional main.cpp Incluídas duas nova biblioteca: String, todas as repetições resumidas em loops, nomes de variáveis trocados e padronizados No geral tentei criar o máximo de métodos possível e padronizar as variáveis para deixar o código mais legível --- Cliente.cpp | 14 +-- Cliente.hpp | 27 +++-- Encomenda.hpp | 30 +++-- EncomendaNormal.hpp | 37 +++--- EncomendaRelampago.hpp | 30 ++--- main.cpp | 255 +++++++++++++++-------------------------- 6 files changed, 168 insertions(+), 225 deletions(-) diff --git a/Cliente.cpp b/Cliente.cpp index 96c5819..65eb78f 100644 --- a/Cliente.cpp +++ b/Cliente.cpp @@ -2,12 +2,10 @@ #include #include "Cliente.hpp" -void Cliente::print(){ - - std::cout << " Nome: " << NOME << endl - << " Endereço: " << endereco << endl - << " Cidade: " << CIDADE << endl - << " Estado: " << ESTADO << endl - << " CEP: " << cep << endl; - +void Cliente::printCliente(){ + std::cout << " Nome: " << getNome() << endl + << " Endereço: " << getEndereco() << endl + << " Cidade: " << getCidade() << endl + << " Estado: " << getEstado() << endl + << " CEP: " << getCep() << endl; } \ No newline at end of file diff --git a/Cliente.hpp b/Cliente.hpp index ecde6c4..86b0c78 100644 --- a/Cliente.hpp +++ b/Cliente.hpp @@ -5,17 +5,26 @@ using namespace std; class Cliente{ - public: + string getNome() {return this->_nome;} + string getEndereco() {return this->_endereco;} + string getCidade() {return this->_cidade;} + string getEstado() {return this->_estado;} + string getCep() {return this->_cep;} + + void setNome(string nome) {this->_nome = nome;} + void setEndereco(string endereco) {this->_endereco = endereco;} + void setCidade(string cidade) {this->_cidade = cidade;} + void setEstado(string estado) {this->_estado = estado;} + void setCep(string cep) {this->_cep = cep;} - string NOME; - string endereco; - string CIDADE; - string ESTADO; - string cep; - - void print(); // imprime na tela os dados de um cliente cadastrado - + void printCliente(); // imprime na tela os dados de um cliente cadastrado + private: + string _nome; + string _endereco; + string _cidade; + string _estado; + string _cep; }; #endif \ No newline at end of file diff --git a/Encomenda.hpp b/Encomenda.hpp index 0c6db2a..2d2ec69 100644 --- a/Encomenda.hpp +++ b/Encomenda.hpp @@ -7,21 +7,31 @@ using namespace std; class Encomenda{ public: + double getPeso() {return this->_peso;} + double getCustokg() {return this->_custoKg;} + double getCustoTotal() {return this->_custoTotal;} + Cliente getRemetente() {return this->_remetente;} + Cliente getDest() {return this->_destinatario;} - double PESO = 0.0; - double CUSTOkg = 0.0; - double T = 0.0; - Cliente remetente; - Cliente dest; - - void print(){ + + void setPeso(double peso) {this->_peso = peso;} + void setCustokg(double custoKg) {this->_custoKg = custoKg;} + void setRemetente(Cliente remetente) {this->_remetente = remetente;} + void setDest(Cliente destinatario) {this->_destinatario = destinatario;} + + void printEncomenda(){ std::cout << "[Remetente]" << endl; - remetente.print(); + getRemetente().printCliente(); std::cout << "[Destinatário]" << endl; - dest.print(); + getDest().printCliente(); } - + protected: + double _peso = 0.0; + double _custoKg = 0.0; + double _custoTotal = 0.0; + Cliente _remetente; + Cliente _destinatario; }; #endif \ No newline at end of file diff --git a/EncomendaNormal.hpp b/EncomendaNormal.hpp index e854f9c..7655bea 100644 --- a/EncomendaNormal.hpp +++ b/EncomendaNormal.hpp @@ -5,27 +5,22 @@ #include "Cliente.hpp" using namespace std; -class EncomendaNormal: public Encomenda{ - - public: - - double calcula(){ - - double x = PESO * CUSTOkg; - - return x; - } - - void print(){ - - Encomenda::print(); - std::cout << "[Encomenda Normal]" << endl; - std::cout << " Peso: " << PESO << endl - << " Custo por kg: " << CUSTOkg << endl - << " Custo total: " << T << endl; - - } - +class EncomendaNormal: public Encomenda +{ + public: + double calculaCustoFinal() + { + return (getPeso() * getCustokg()); + } + + void printEncomendaNormal() + { + Encomenda::printEncomenda(); + std::cout << "[Encomenda Normal]" << endl; + std::cout << " Peso: " << getPeso() << endl + << " Custo por kg: " << getCustokg() << endl + << " Custo total: " << getCustoTotal() << endl; + } }; #endif \ No newline at end of file diff --git a/EncomendaRelampago.hpp b/EncomendaRelampago.hpp index 879c705..db36c6b 100644 --- a/EncomendaRelampago.hpp +++ b/EncomendaRelampago.hpp @@ -5,29 +5,29 @@ #include "Cliente.hpp" using namespace std; -class EncomendaRelampago: public Encomenda{ - +class EncomendaRelampago: public Encomenda +{ public: + double getTaxaAdd() {return this->_taxaAdicional;} - double calcula(){ - - double x = PESO * CUSTOkg; - x += x * 0.25; - - return x; + double calculaCustoFinal() + { + return ((getPeso() * getCustokg()) * (1 + getTaxaAdd())); } - void print(){ + void printEncomendaRelampago() + { - Encomenda::print(); + Encomenda::printEncomenda(); 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; + std::cout << " Peso: " << getPeso() << endl + << " Custo por kg: " << getCustokg() << endl + << " Taxa adicional: " << getTaxaAdd() << endl + << " Custo total: " << getCustoTotal() << endl; } - + private: + double _taxaAdicional = 0.25; }; #endif \ No newline at end of file diff --git a/main.cpp b/main.cpp index f73d1b8..0ab2916 100644 --- a/main.cpp +++ b/main.cpp @@ -3,177 +3,108 @@ #include "EncomendaNormal.hpp" #include "EncomendaRelampago.hpp" #include "Cliente.hpp" +#include +#include + using namespace std; -int main(){ + +//void CadastroClientes() + + + +int main() +{ + Cliente clientes[9]; + int quantEncNormais = 5; + int quantEncRelampagos = 3; + int quantClientes = 8; + string nomesClientes[] = {"Thales", "Aristóteles", "Platão", "Sócrates" , "Pitágoras", "Parmênides", "Empédocles", "Anaxágoras"}; + string enderecosClientes[] = {"Rua dos Pré-Socráticos", "Avenida do Meio-Termo", "Praça das Formas", "Rua do Elenchus", "Praça dos Quadrados dos Catetos", "Rua do Não Ser", "Rua dos Quatro Elementos", "Avenida da Mente Cósmica"}; + string cidadeClientes[] = {"Miletus", "Atenas", "Atenas", "Atenas", "Samos", "Eleia", "Agrigento", "Clazômenas"}; + string estadoClientes[] = {"Ionia", "Ática", "Ática", "Ática", "Egeu", "Magna Grécia", "Sicília", "Jónia"}; + string cepClientes[] = {"548 a.C.", "384 a.C.", "384 a.C.", "399 a.C.", "571 a.C.", "460 a.C.", "495 a.C.", "499 a.C."}; + + for (int i = 0; i < quantClientes; i++) + { + //Cliente atual(nomesClientes[i], enderecosClientes[i], cidadeClientes[i], estadoClientes[i], cepClientes[i] + + clientes[i].setNome(nomesClientes[i]); + clientes[i].setEndereco(enderecosClientes[i]); + clientes[i].setCidade(cidadeClientes[i]); + clientes[i].setEstado(estadoClientes[i]); + clientes[i].setCep(cepClientes[i]); + } - 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"; - - 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++; - - EncomendaNormal enc1; - enc1.PESO = 10; - enc1.CUSTOkg = 12; - enc1.remetente = cli1; - enc1.dest = cli2; - quantN++; - - EncomendaNormal enc2; - enc2.PESO = 7; - enc2.CUSTOkg = 12; - enc2.remetente = cli2; - enc2.dest = cli3; - quantN++; - - EncomendaNormal enc3; - enc3.PESO = 2; - enc3.CUSTOkg = 12; - enc3.remetente = cli3; - enc3.dest = cli4; - quantN++; - - EncomendaNormal enc4; - enc4.PESO = 3; - enc4.CUSTOkg = 12; - enc4.remetente = cli4; - enc4.dest = cli5; - quantN++; - - EncomendaRelampago enc5; - enc5.PESO = 13; - enc5.CUSTOkg = 18; - enc5.remetente = cli5; - enc5.dest = cli6; - quantR++; - - EncomendaRelampago enc6; - enc6.PESO = 6; - enc6.CUSTOkg = 18; - enc6.remetente = cli6; - enc6.dest = cli7; - quantR++; - - EncomendaRelampago enc7; - enc7.PESO = 8; - enc7.CUSTOkg = 18; - enc7.remetente = cli7; - enc7.dest = cli0; - quantR++; + EncomendaNormal EncomendasNormais[quantEncNormais+1]; + double pesoEncNormais[] = {5, 10, 7, 2, 3}; + double custoKgEncNormais = 12; + int remet = 0; + int dest = 0; + + for (int i = 0; i < quantEncNormais; i++) + { + remet = i; + dest = i+1; + + EncomendasNormais[i].setPeso(pesoEncNormais[i]); + EncomendasNormais[i].setCustokg(custoKgEncNormais); + EncomendasNormais[i].setRemetente(clientes[remet]); + EncomendasNormais[i].setDest(clientes[dest]); + } + + EncomendaRelampago EncomendasRelampagos[quantEncRelampagos+1]; + double pesoEncRelampagos[] = {13, 6, 8}; + double custoKgEncRelampago = 18; + + for (int i = 0; i < quantEncRelampagos; i++) + { + if(i+5 == 7) + { + remet = 7; + dest = 0; + } + else + { + remet = i + 5; + dest = remet + 1; + } + + EncomendasRelampagos[i].setPeso(pesoEncRelampagos[i]); + EncomendasRelampagos[i].setCustokg(custoKgEncRelampago); + EncomendasRelampagos[i].setRemetente(clientes[remet]); + EncomendasRelampagos[i].setDest(clientes[dest]); + + } std::cout << "\n>> Relatório de encomendas <<" << endl; + double custEncNormais = 0; + double custEncRelampagos = 0; + + + for (int j = 0; j < quantEncNormais; j++) + { + //EncomendasNormais[j].calculaCustoFinal; + custEncNormais += EncomendasNormais[j].calculaCustoFinal(); + EncomendasNormais[j].printEncomendaNormal(); + std::cout << endl; + } + + for (int j = 0; j < quantEncRelampagos; j++) + { + //EncomendasNormais[j].calculaCustoFinal; + custEncRelampagos += EncomendasNormais[j].calculaCustoFinal(); + EncomendasRelampagos[j].printEncomendaRelampago(); + std::cout << 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; - - 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: " << quantEncNormais + << "\nValor Total: " << custEncNormais << endl << "\n>> Encomendas Relâmpago <<" - << "\nQuantidade: " << quantR - << "\nValor Total: " << custR + << "\nQuantidade: " << quantEncRelampagos + << "\nValor Total: " << custEncRelampagos << endl; - } \ No newline at end of file