Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Aluno #165 #165

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Cliente.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

void Cliente::print(){

std::cout << " Nome: " << NOME << endl
std::cout << " Nome: " << nome << endl
<< " Endereço: " << endereco << endl
<< " Cidade: " << CIDADE << endl
<< " Estado: " << ESTADO << endl
<< " Cidade: " << cidade << endl
<< " Estado: " << estado << endl
<< " CEP: " << cep << endl;

}
15 changes: 10 additions & 5 deletions Cliente.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ using namespace std;

class Cliente{

public:

string NOME;
private:
string nome;
string endereco;
string CIDADE;
string ESTADO;
string cidade;
string estado;
string cep;

public:
Cliente(string _nome, string _endereco, string _cidade, string _estado, string _cep ) : nome(_nome), endereco(_endereco),
cidade(_cidade), estado(_estado), cep(_cep){};

Cliente::Cliente(){};

void print(); // imprime na tela os dados de um cliente cadastrado

};
Expand Down
19 changes: 14 additions & 5 deletions Encomenda.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,24 @@ using namespace std;

class Encomenda{

public:
protected:

double PESO = 0.0;
double CUSTOkg = 0.0;
double T = 0.0;
double peso;
double custoKg;
double custoTotal = 0.0;

public:

Cliente remetente;
Cliente dest;

void print(){
public:

Encomenda(double _peso,double _custoKg) : peso(_peso), custoKg(_custoKg){};

virtual double calcularValor(){};

virtual void print(){

std::cout << "[Remetente]" << endl;
remetente.print();
Expand Down
17 changes: 9 additions & 8 deletions EncomendaNormal.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,21 @@ class EncomendaNormal: public Encomenda{

public:

double calcula(){
EncomendaNormal(double _peso,double _custoKg) : Encomenda(_peso,_custoKg){};

double calcularValor() override{

double x = PESO * CUSTOkg;

return x;
double valor = peso * custoKg;
return valor;
}

void print(){
void print() override{

Encomenda::print();
std::cout << "[Encomenda Normal]" << endl;
std::cout << " Peso: " << PESO << endl
<< " Custo por kg: " << CUSTOkg << endl
<< " Custo total: " << T << endl;
std::cout << " Peso: " << peso << endl
<< " Custo por kg: " << custoKg << endl
<< " Custo total: " << custoTotal << endl;

}

Expand Down
24 changes: 15 additions & 9 deletions EncomendaRelampago.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,30 @@ using namespace std;

class EncomendaRelampago: public Encomenda{

private:

double taxa = 0.25;

public:

double calcula(){
EncomendaRelampago(double _peso,double _custoKg) : Encomenda(_peso,_custoKg){};

double x = PESO * CUSTOkg;
x += x * 0.25;
double calcularValor() override{

double valor = peso * custoKg;
valor += valor * taxa;

return x;
return valor;
}

void print(){
void print() override{

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;
std::cout << " Peso: " << peso << endl
<< " Custo por kg: " << custoKg << endl
<< " Taxa adicional: " << taxa << endl
<< " Custo total: " << custoTotal << endl;

}

Expand Down
220 changes: 71 additions & 149 deletions main.cpp
Original file line number Diff line number Diff line change
@@ -1,171 +1,93 @@
#include <iostream>
#include <vector>
#include <typeinfo>
#include "Encomenda.hpp"
#include "EncomendaNormal.hpp"
#include "EncomendaRelampago.hpp"
#include "Cliente.hpp"
using namespace std;

int main(){

vector<Cliente> clientes;

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.";
Cliente cli0("Thales","Rua dos Pré-Socráticos","Miletus","Ionia","548 a.C.");
clientes.push_back(cli0);

Cliente cli1("Aristóteles","Avenida do Meio-Termo","Atenas","Ática","384 a.C.");
clientes.push_back(cli1);

Cliente cli2("Platão","Praça das Formas","Atenas","Ática","348 a.C");
clientes.push_back(cli2);

Cliente cli3("Sócrates","Rua do Elenchus","Atenas","Ática","399 a.C.");
clientes.push_back(cli3);

Cliente cli4("Pitágoras","Praça dos Quadrados dos Catetos","Samos","Egeu","571 a.C.");
clientes.push_back(cli4);

Cliente cli5("Parmênides","Rua do Não Ser","Eleia","Magna Grécia","460 a.C.");
clientes.push_back(cli5);

Cliente cli6("Empédocles","Rua dos Quatro Elementos","Agrigento","Sicília","495 a.C.");
clientes.push_back(cli6);

Cliente cli7("Anaxágoras","Avenida da Mente Cósmica","Clazômenas","Jónia","499 a.C.");
clientes.push_back(cli7);

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++;
vector<Encomenda> encomendas;

EncomendaNormal enc0(5,12);
encomendas.push_back(enc0);

EncomendaNormal enc1(10,12);
encomendas.push_back(enc1);

EncomendaNormal enc2(7,12);
encomendas.push_back(enc2);

EncomendaNormal enc3(2,12);
encomendas.push_back(enc3);

EncomendaNormal enc4(3,12);
encomendas.push_back(enc4);

EncomendaRelampago enc5(13,18);
encomendas.push_back(enc5);

EncomendaRelampago enc6(6,18);
encomendas.push_back(enc6);

EncomendaRelampago enc7(8,18);
encomendas.push_back(enc7);

for(int i=0;i<7;i++){
encomendas[i].remetente = clientes[i];
encomendas[i].dest = clientes[i+1];
}
enc7.dest=clientes[0];
enc7.remetente=clientes[7];

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;

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;
for(auto e : encomendas){
e.calcularValor();
e.print();
if(typeid(e)==typeid(EncomendaNormal)){
custN += e.calcularValor();
quantN++;
}else{
custR += e.calcularValor();
quantR++;
}
std::cout << endl;
}

std::cout << "\n>> Encomendas Normais <<"
<< "\nQuantidade: " << quantN
Expand Down