From b13efb0119495fb9302ef540b7357dea78e143b9 Mon Sep 17 00:00:00 2001 From: matheusrrss <89046016+matheusrrss@users.noreply.github.com> Date: Tue, 17 Aug 2021 23:10:36 -0300 Subject: [PATCH] 0d4597ff358e4286e261541f754bdf01 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit => Nomes dos parâmetros das classes alterados para Pascal Case => Construtores adicionados para todas as classes => Classe ClienteBeloHorizonte adicionada (visto que todos os clientes são de Belo Horizonte) => Cliente dentro de Imovel tratado como ponteiro => Correção de identação => Prints reduzidos nas subclasses e melhorado na classe Imovel => Funções Valor e comissao removidas. Foram adaptados nos construtores e no próprio print --- Apartamento.hpp | 38 ++------ Casa.hpp | 41 ++------ Cliente.cpp | 17 ++-- Cliente.hpp | 21 ++-- ClienteBeloHorizonte.hpp | 16 ++++ Cobertura.hpp | 37 ++------ Imovel.hpp | 41 +++++--- main.cpp | 200 +++++++-------------------------------- 8 files changed, 128 insertions(+), 283 deletions(-) create mode 100644 ClienteBeloHorizonte.hpp diff --git a/Apartamento.hpp b/Apartamento.hpp index 4dd5981..1f0e908 100644 --- a/Apartamento.hpp +++ b/Apartamento.hpp @@ -8,36 +8,14 @@ using namespace std; class Apartamento : public Imovel { - public: - - double valor() { - - double v = AREA * VALORm2; - - return v; - - } - - double comissao() { - - double c = AREA * VALORm2; - - return c * 0.04; - - } - - void print() { - - std::cout << "[Apartamento]" << endl; - Imovel::print(); - std::cout << "Area: " << AREA << endl - << " Quartos: " << Q << endl - << " Banheiros: " << B << endl - << " Vagas: " << V << endl - << "Taxa de Comissão: " << 4 << "%" << endl - << "Valor Comissão: R$ " << fixed << setprecision(2) << C << endl - << "Valor de Venda: R$ " << fixed << setprecision(2) << Valor << endl; - } + public: + void print() + { + Imovel::print("[Apartamento]", 4); + } + + Apartamento(string corretor, double area, int quartos, int banheiros, int vagas, double valorm2) + : Imovel(move(corretor), area, quartos, banheiros, vagas, valorm2, (valorm2 * area), (valorm2 * area)*0.04){} }; #endif \ No newline at end of file diff --git a/Casa.hpp b/Casa.hpp index 88a51d6..8a8a262 100644 --- a/Casa.hpp +++ b/Casa.hpp @@ -8,38 +8,15 @@ using namespace std; class Casa : public Imovel { - public: - - double valor() { - - double v = AREA * VALORm2; - - return v; - - } - - double comissao() { - - double c = AREA * VALORm2; - - return c * 0.06; - - } - - void print() { - - std::cout << "[Casa]" << endl; - Imovel::print(); - std::cout << "Area: " << AREA << endl - << " Quartos: " << Q << endl - << " Banheiros: " << B << endl - << " Vagas: " << V << endl - << "Taxa de Comissão: " << 6 << "%" << endl - << "Valor Comissão: R$ " << fixed << setprecision(2) << C << endl - << "Valor de Venda: R$ " << fixed << setprecision(2) << Valor << endl; - - } - + public: + void print() + { + Imovel::print("[Casa]", 6); + } + + Casa(string corretor, double area, int quartos, int banheiros, int vagas, double valorm2) + : Imovel(move(corretor), area, quartos, banheiros, vagas, valorm2, (valorm2 * area), (valorm2 * area)*0.06) + {} }; #endif \ No newline at end of file diff --git a/Cliente.cpp b/Cliente.cpp index 14f64f0..97ceb0b 100644 --- a/Cliente.cpp +++ b/Cliente.cpp @@ -2,13 +2,12 @@ #include #include "Cliente.hpp" -void Cliente::print(){ - - std::cout << " Nome: " << NOME << endl - << " Telefone: " << telefone << endl - << " Endereço: " << endereco << endl - << " Cidade: " << CIDADE << endl - << " Estado: " << UF << endl - << " CEP: " << cep << endl; - +void Cliente::print() +{ + std::cout << " Nome: " << Nome << endl + << " Telefone: " << Telefone << endl + << " Endereço: " << Endereco << endl + << " Cidade: " << Cidade << endl + << " Estado: " << Estado << endl + << " CEP: " << Cep << endl; } \ No newline at end of file diff --git a/Cliente.hpp b/Cliente.hpp index f32d122..2ab9019 100644 --- a/Cliente.hpp +++ b/Cliente.hpp @@ -2,18 +2,25 @@ #define CLIENTE_HPP #include +#include using namespace std; class Cliente { public: - string NOME; - string endereco; - string CIDADE; - string UF; - string cep; - string telefone; + string Nome; + string Endereco; + string Cidade; + string Estado; + string Cep; + string Telefone; + void print(); + +protected: + Cliente(string nome, string endereco, string cidade, string estado, string cep, string telefone) + : Nome(move(nome)), Endereco(move(endereco)), Cidade(move(cidade)), + Estado(move(estado)), Cep(move(cep)), Telefone(move(telefone)) + {} - void print(); }; #endif \ No newline at end of file diff --git a/ClienteBeloHorizonte.hpp b/ClienteBeloHorizonte.hpp new file mode 100644 index 0000000..962cd07 --- /dev/null +++ b/ClienteBeloHorizonte.hpp @@ -0,0 +1,16 @@ +#ifndef CLIENTEBELOHORIZONTE_HPP +#define CLIENTEBELOHORIZONTE_HPP + +#include + +#include "Cliente.hpp" + +class ClienteBeloHorizonte : public Cliente{ + public: + ClienteBeloHorizonte(string nome, string endereco, string cep, string telefone) + : Cliente(std::move(nome), std::move(endereco), + "Belo Horizonte", "MG", std::move(cep), std::move(telefone)) {}; +}; + + +#endif diff --git a/Cobertura.hpp b/Cobertura.hpp index e8c4281..ebd1069 100644 --- a/Cobertura.hpp +++ b/Cobertura.hpp @@ -8,35 +8,14 @@ using namespace std; class Cobertura : public Imovel { public: - - double valor() { - - double v = AREA * VALORm2; - - return v; - - } - - double comissao() { - - double c = AREA * VALORm2; - - return c * 0.10; - - } - - void print() { - - std::cout << "[Cobertura]" << endl; - Imovel::print(); - std::cout << "Area: " << AREA << endl - << " Quartos: " << Q << endl - << " Banheiros: " << B << endl - << " Vagas: " << V << endl - << "Taxa de Comissão: " << 10 << "%" << endl - << "Valor Comissão: R$ " << fixed << setprecision(2) << C << endl - << "Valor de Venda: R$ " << fixed << setprecision(2) << Valor << endl; - } + void print() + { + Imovel::print("[Cobertura]", 10); + } + + Cobertura(string corretor, double area, int quartos, int banheiros, int vagas, double valorm2) + : Imovel(move(corretor), area, quartos, banheiros, vagas, valorm2, (valorm2 * area), (valorm2 * area)*0.10) + {} }; #endif \ No newline at end of file diff --git a/Imovel.hpp b/Imovel.hpp index 6e91cfc..1c7ac2b 100644 --- a/Imovel.hpp +++ b/Imovel.hpp @@ -9,21 +9,38 @@ using namespace std; class Imovel { public: - double AREA; - int Q; - int B; - int V; - double VALORm2; - double Valor; - double C; - Cliente vendedor; - string corretor; + double Area; + int Quartos; + int Banheiros; + int Vagas; + double Valor_m2; + double ValorImovel; + double Comissao; + Cliente* Vendedor; + string Corretor; - void print() { + protected: + Imovel(string corretor, double area, int quartos, int banheiros, int vagas, double valorm2, double valorImovel, double comissao) + : Corretor(move(corretor)), Area(area), Quartos(quartos), Banheiros(banheiros), Vagas(vagas), + Valor_m2(valorm2), ValorImovel(valorImovel), Comissao(comissao) + { + this->Vendedor = nullptr; + } + + void print(const string& tipo, int comissao) + { + cout << tipo << endl; cout << "[Vendedor]" << endl; - vendedor.print(); + Vendedor->print(); cout << "[Corretor]" << endl; - cout << " " + corretor << endl; + cout << " " + Corretor << endl + << "Area: " << Area << endl + << " Quartos: " << Quartos << endl + << " Banheiros: " << Banheiros << endl + << " Vagas: " << Vagas << endl + << "Taxa de Comissão: " << comissao << "%" << endl + << "valorVenda Comissão: R$ " << fixed << setprecision(2) << Comissao << endl + << "valorVenda de Venda: R$ " << fixed << setprecision(2) << Comissao+ValorImovel << endl; } }; diff --git a/main.cpp b/main.cpp index 2496147..4a0669b 100644 --- a/main.cpp +++ b/main.cpp @@ -5,174 +5,46 @@ #include "Casa.hpp" #include "Cobertura.hpp" #include "Apartamento.hpp" -#include "Cliente.hpp" +#include "ClienteBeloHorizonte.hpp" int main() { - - Cliente cl1; - cl1.NOME = "Xayso Sovon Ziahaka"; - cl1.endereco = "Rua Xangrilá - Braúnas"; - cl1.CIDADE = "Belo Horizonte"; - cl1.UF = "MG"; - cl1.cep = "31365-570"; - cl1.telefone = "3196007958"; - - Cliente cl2; - cl2.NOME = "Minia Pasies Kituos"; - cl2.endereco = "Rua dos Jacobinos - Ouro Minas"; - cl2.CIDADE = "Belo Horizonte"; - cl2.UF = "MG"; - cl2.cep = "31870-290"; - cl2.telefone = "3197627067"; - - Cliente cl3; - cl3.NOME = "Vuocue Leiur Baonauza"; - cl3.endereco = "Rua Orminda de Almeida - Tupi B"; - cl3.CIDADE = "Belo Horizonte"; - cl3.UF = "MG"; - cl3.cep = "31842-630"; - cl3.telefone = "3195949327"; - - Cliente cl4; - cl4.NOME = "Zerer Huduy Fyogar"; - cl4.endereco = "Rua Taquaril - Jonas Veiga"; - cl4.CIDADE = "Belo Horizonte"; - cl4.UF = "MG"; - cl4.cep = "30285-422"; - cl4.telefone = "3198596327"; - - Cliente cl5; - cl5.NOME = "Ceziel Mioti Pler"; - cl5.endereco = "Rua João Gualberto Costa - Serrano"; - cl5.CIDADE = "Belo Horizonte"; - cl5.UF = "MG"; - cl5.cep = "30882-747"; - cl5.telefone = "3196274465"; - - Cliente cl6; - cl6.NOME = "Esxo Cilal Zyais"; - cl6.endereco = "Rua Américo Luiz Moreira - Jardim dos Comerciários (Venda Nova)"; - cl6.CIDADE = "Belo Horizonte"; - cl6.UF = "MG"; - cl6.cep = "31650-560"; - cl6.telefone = "3195004414"; - - Cliente cl7; - cl7.NOME = "Leova Wikyecil Neaca"; - cl7.endereco = "Rua João Arantes - Cidade Nova"; - cl7.CIDADE = "Belo Horizonte"; - cl7.UF = "MG"; - cl7.cep = "31170-240"; - cl7.telefone = "3198461192"; - - Cliente cl8; - cl8.NOME = "Teas Heimeu Pipe"; - cl8.endereco = "Rua Maria Pereira Damasceno - Ernesto do Nascimento(Barreiro)"; - cl8.CIDADE = "Belo Horizonte"; - cl8.UF = "MG"; - cl8.cep = "30668-430"; - cl8.telefone = "3197317802"; int qtdeA = 0; int qtdeCa = 0; int qtdeCb = 0; - Apartamento ap1; - ap1.corretor = "Tuoruars"; - ap1.AREA = 55.4; - ap1.Q = 2; - ap1.B = 1; - ap1.V = 0; - ap1.VALORm2 = 987.0; - ap1.C = ap1.comissao(); - ap1.Valor = ap1.valor() + ap1.comissao(); - ap1.vendedor = cl1; + Apartamento ap1("Tuoruars", 55.4, 2, 1, 0, 987.0); + ap1.Vendedor = new ClienteBeloHorizonte("Xayso Sovon Ziahaka", "Rua Xangrilá - Braúnas", "31365-570", "3196007958"); qtdeA++; - Apartamento ap2; - ap2.corretor = "Fyubyeis"; - ap2.AREA = 74.5; - ap2.Q = 2; - ap2.B = 1; - ap2.V = 2; - ap2.VALORm2 = 1540.0; - ap2.C = ap2.comissao(); - ap2.Valor = ap2.valor() + ap2.comissao(); - ap2.vendedor = cl2; + Apartamento ap2("Fyubyeis",74.5, 2, 1, 2, 1540.0); + ap2.Vendedor = new ClienteBeloHorizonte("Minia Pasies Kituos", "Rua dos Jacobinos - Ouro Minas", "31870-290", "3197627067");; qtdeA++; - Apartamento ap3; - ap3.corretor = "Kelia"; - ap3.AREA = 87.2; - ap3.Q = 3; - ap3.B = 2; - ap3.V = 2; - ap3.VALORm2 = 2354.0; - ap3.C = ap3.comissao(); - ap3.Valor = ap3.valor() + ap3.comissao(); - ap3.vendedor = cl3; + Apartamento ap3("Kelia",87.2, 3, 2, 2, 2354.0); + ap3.Vendedor = new ClienteBeloHorizonte("Vuocue Leiur Baonauza", "Rua Orminda de Almeida - Tupi banheiros", "31842-630", "3195949327");; qtdeA++; // Cobertura - Cobertura cb1; - cb1.corretor = "Koci"; - cb1.AREA = 120.1; - cb1.Q = 3; - cb1.B = 3; - cb1.V = 2; - cb1.VALORm2 = 3123.5; - cb1.C = cb1.comissao(); - cb1.Valor = cb1.valor() + cb1.comissao(); - cb1.vendedor = cl4; + Cobertura cb1("Koci", 120.1, 3, 3, 2, 3123.5); + cb1.Vendedor = new ClienteBeloHorizonte("Zerer Huduy Fyogar", "Rua Taquaril - Jonas Veiga","30285-422", "3198596327");; qtdeCb++; - Cobertura cb2; - cb2.corretor = "Wail"; - cb2.AREA = 134.8; - cb2.Q = 4; - cb2.B = 3; - cb2.V = 3; - cb2.VALORm2 = 3578.2; - cb2.C = cb2.comissao(); - cb2.Valor = cb2.valor() + cb2.comissao(); - cb2.vendedor = cl5; + Cobertura cb2("Wail", 134.8, 4, 3, 3, 3578.2); + cb2.Vendedor = new ClienteBeloHorizonte("Ceziel Mioti Pler", "Rua João Gualberto Costa - Serrano", "30882-747", "3196274465");; qtdeCb++; - Cobertura cb3; - cb3.corretor = "Fival"; - cb3.AREA = 180.0; - cb3.Q = 4; - cb3.B = 4; - cb3.V = 4; - cb3.VALORm2 = 4165.7; - cb3.C = cb3.comissao(); - cb3.Valor = cb3.valor() + cb3.comissao(); - cb3.vendedor = cl6; + Cobertura cb3("Fival", 180.0, 4, 4, 4, 4165.7); + cb3.Vendedor = new ClienteBeloHorizonte("Esxo Cilal Zyais", "Rua Américo Luiz Moreira - Jardim dos Comerciários (Venda Nova)", "31650-560", "3195004414");; qtdeCb++; // Casas - Casa ca1; - ca1.corretor = "Beydo"; - ca1.AREA = 145.6; - ca1.Q = 3; - ca1.B = 3; - ca1.V = 2; - ca1.VALORm2 = 4023.6; - ca1.C = ca1.comissao(); - ca1.Valor = ca1.valor() + ca1.comissao(); - ca1.vendedor = cl7; + Casa ca1("Beydo",145.6, 3, 3, 2, 4023.6); + ca1.Vendedor = new ClienteBeloHorizonte("Leova Wikyecil Neaca", "Rua João Arantes - Cidade Nova", "31170-240", "3198461192");; qtdeCa++; - Casa ca2; - ca2.corretor = "Riuzi"; - ca2.AREA = 245.0; - ca2.Q = 5; - ca2.B = 4; - ca2.V = 4; - ca2.VALORm2 = 4856.2; - ca2.C = ca2.comissao(); - ca2.Valor = ca2.valor() + ca2.comissao(); - ca2.vendedor = cl8; + Casa ca2("Riuzi", 245.0, 5, 4, 4, 4856.2); + ca2.Vendedor = new ClienteBeloHorizonte("Teas Heimeu Pipe", "Rua Maria Pereira Damasceno - Ernesto do Nascimento(Barreiro)", "30668-430", "3197317802");; qtdeCa++; std::cout << "\n>> Relatório de Imóveis <<" << endl; @@ -185,60 +57,60 @@ int main() { double comissCa = 0.0; ap1.print(); - valorAp += ap1.valor(); - comissAp += ap1.comissao(); + valorAp += ap1.ValorImovel; + comissAp += ap1.Comissao; std::cout << endl; ap2.print(); - valorAp += ap2.valor(); - comissAp += ap2.comissao(); + valorAp += ap2.ValorImovel; + comissAp += ap2.Comissao; std::cout << endl; ap3.print(); - valorAp += ap3.valor(); - comissAp += ap3.comissao(); + valorAp += ap3.ValorImovel; + comissAp += ap3.Comissao; std::cout << endl; cb1.print(); - valorCb += cb1.valor(); - comissCb += cb1.comissao(); + valorCb += cb1.ValorImovel; + comissCb += cb1.Comissao; std::cout << endl; cb2.print(); - valorCb += cb2.valor(); - comissCb += cb2.comissao(); + valorCb += cb2.ValorImovel; + comissCb += cb2.Comissao; std::cout << endl; cb3.print(); - valorCb += cb3.valor(); - comissCb += cb3.comissao(); + valorCb += cb3.ValorImovel; + comissCb += cb3.Comissao; std::cout << endl; ca1.print(); - valorCa += ca1.valor(); - comissCa += ca1.comissao(); + valorCa += ca1.ValorImovel; + comissCa += ca1.Comissao; std::cout << endl; ca2.print(); - valorCa += ca2.valor(); - comissCa += ca2.comissao(); + valorCa += ca2.ValorImovel; + comissCa += ca2.Comissao; std::cout << endl; std::cout << "\n>> Resumo Geral <<" << endl; std::cout << "\n>>Apartamentos<<\n" << "\n Quantidade: " << qtdeA - << "\n Valor Total: R$ " << fixed << setprecision(2) << valorAp + << "\n ValorImovel Total: R$ " << fixed << setprecision(2) << valorAp << "\n Comissão Total: R$" << comissAp << endl << "\n>>Coberturas<<\n" << "\n Quantidade: " << qtdeCb - << "\n Valor Total: R$ " << fixed << setprecision(2) << valorCb + << "\n ValorImovel Total: R$ " << fixed << setprecision(2) << valorCb << "\n Comissão Total: R$ " << fixed << setprecision(2) << comissCb << endl << "\n>>Casas<<\n" << "\n Quantidade: " << qtdeCa - << "\n Valor Total: R$ " << fixed << setprecision(2) << valorCa + << "\n ValorImovel Total: R$ " << fixed << setprecision(2) << valorCa << "\n Comissão Total: R$ " << fixed << setprecision(2) << comissCa << endl; }