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 #167 #167

Open
wants to merge 4 commits 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
23 changes: 15 additions & 8 deletions Cliente.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
#include <iostream>
#include <string>
#include "Cliente.hpp"

void Cliente::print(){
void Cliente::Remetente(){

std::cout << " Nome: " << NOME << endl
<< " Endereço: " << endereco << endl
<< " Cidade: " << CIDADE << endl
<< " Estado: " << ESTADO << endl
<< " CEP: " << cep << endl;
std::cout << "[Remetente]" << std::endl;
}

void Cliente::Destinatario(){

std::cout << "[Destinatário]" << std::endl;
}

void Cliente::imprimeDadosDoCliente(Cliente cliente){

std::cout << " Nome: " << nome << std::endl
<< " Endereço: " << endereco << std::endl
<< " Cidade: " << cidade << std::endl
<< " Estado: " << estado << std::endl
<< " CEP: " << cep << std::endl;
}
32 changes: 24 additions & 8 deletions Cliente.hpp
Original file line number Diff line number Diff line change
@@ -1,21 +1,37 @@
#ifndef CLIENTE_H

#define CLIENTE_H

#include <string>
using namespace std;

#include <iostream>

class Cliente{

public:

string NOME;
string endereco;
string CIDADE;
string ESTADO;
string cep;
Cliente(){}

Cliente(std::string nome, std::string endereco, std::string cidade, std::string estado, std::string cep):
nome(nome), endereco(endereco), cidade(cidade), estado(estado), cep(cep) {}

void Remetente();

void Destinatario();

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

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

private:

std::string nome;

std::string endereco;

std::string cidade;

std::string estado;

std::string cep;
};

#endif
25 changes: 11 additions & 14 deletions Encomenda.hpp
Original file line number Diff line number Diff line change
@@ -1,27 +1,24 @@
#ifndef Encomenda_H

#define Encomenda_H

#include "Cliente.hpp"
using namespace std;
#include <string>

#include <iostream>

class Encomenda{

public:

double PESO = 0.0;
double CUSTOkg = 0.0;
double T = 0.0;
Cliente remetente;
Cliente dest;

void print(){
double calculaPrecoEncomenda();

void imprimeRelatorioEncomendas();

protected:

std::cout << "[Remetente]" << endl;
remetente.print();
std::cout << "[Destinatário]" << endl;
dest.print();
}
double peso = 0.0;

double custoPorQuilograma = 0.0;
};

#endif
65 changes: 35 additions & 30 deletions EncomendaNormal.hpp
Original file line number Diff line number Diff line change
@@ -1,31 +1,36 @@
#ifndef EncomendaNormal_H
#define EncomendaNormal_H

#include "Encomenda.hpp"
#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;

}

};

#ifndef EncomendaNormal_H
#define EncomendaNormal_H

#include "Encomenda.hpp"

class EncomendaNormal: public Encomenda{

public:

EncomendaNormal(){}

EncomendaNormal(double peso, double custoPorQuilograma){

this->peso = peso;

this->custoPorQuilograma = custoPorQuilograma;
}

double calculaPrecoEncomenda(){

double custoTotalEntrega = peso * custoPorQuilograma;

return custoTotalEntrega;
}

void imprimeRelatorioEncomendas(){

std::cout << "[Encomenda Normal]" << std::endl;

std::cout << " Peso: " << peso << std::endl
<< " Custo por kg: " << custoPorQuilograma << std::endl
<< " Custo total: " << calculaPrecoEncomenda() << std::endl;
}
};

#endif
70 changes: 38 additions & 32 deletions EncomendaRelampago.hpp
Original file line number Diff line number Diff line change
@@ -1,33 +1,39 @@
#ifndef EncomendaRelampago_H
#define EncomendaRelampago_H

#include "Encomenda.hpp"
#include "Cliente.hpp"
using namespace std;

class EncomendaRelampago: public Encomenda{

public:

double calcula(){

double x = PESO * CUSTOkg;
x += x * 0.25;

return x;
}

void print(){

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;

}

};

#ifndef EncomendaRelampago_H
#define EncomendaRelampago_H

#include "Encomenda.hpp"

class EncomendaRelampago: public Encomenda{

public:

EncomendaRelampago(){}

EncomendaRelampago(double peso, double custoPorQuilograma){

this->peso = peso;

this->custoPorQuilograma = custoPorQuilograma;
}

double calculaPrecoEncomenda(){

double custoTotalEntrega = peso * custoPorQuilograma;

custoTotalEntrega += custoTotalEntrega * 0.25;

return custoTotalEntrega;
}

void imprimeRelatorioEncomendas(){

std::cout << "[Encomenda Relâmpago]" << std::endl;

std::cout << " Peso: " << peso << std::endl
<< " Custo por kg: " << custoPorQuilograma << std::endl
<< " Taxa adicional: " << 0.25 << std::endl
<< " Custo total: " << calculaPrecoEncomenda() << std::endl;
}
};

#endif
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ No **título** do Pull Request informe o seu **número de matrícula** e **nome*

Lembre-se de analisar aspectos como: nomenclatura, formatação, organização, comentários, aplicação correta dos conceitos de OO, entre outros.
Dica: Utilize o catálogo para pensar em possíveis sugestões de refatoração (https://refactoring.com/catalog/).

Loading