Hierarquia de herança Pacote. Use a hierarquia de herança Pacote criada no Exercício 20.9 para criar um programa que mostre a informação de endereço e calcule os custos de remessa para vários Pacotes. O programa deverá conter um vector de ponteiros Pacote para objetos das classes PacoteDoisDias e Pacote-Noturno. Percorra o vetor para processar os Pacotes
polimorficamente. Para cada Pacote, chame funções get para obter a informação de endereço do emissor e do destinatário, depois imprima os dois endereços conforme apareceriam em etiquetas de correspondência. Além disso, chame a função-membro calculaCusto de cada
Pacote e imprima o resultado. Acompanhe o custo de entrega total para todos os Pacotes no vetor e mostre esse total quando o loop terminar.
Passo 1
Introdução
Vamos usar classes criadas no exercício 20.9 para usá-las polimorficamente dentro de um vetor de ponteiros Package.
Principal
Em primeiro lugar, o cabeçalho do arquivo:
#include
#include
#include
#include "TwoDayPackage.h"
#include "OvernightPackage.h"
using namespace std;
...
Passo 2
Declare e inicialize alguns pacotes e coloque-os em um vetor:
int main()
{
cout
TwoDayPackage twoDayPackage(
{"Phil Jones", "3476 Bryan Street",
"Dallas", "Texas", "39870"},
{"Jay Myers", "2191 Chicago Avenue",
"Chicago", "Illinois", "60622"},
3.5, 0.55, 5);
OvernightPackage overnightPackage(
{"Phil Jones", "3476 Bryan Street",
"Dallas", "Texas", "39870"},
{"Jay Myers", "2191 Chicago Avenue",
"Chicago", "Illinois", "60622"},
3.5, 0.55, 0.1);
vector
packages.push_back(&twoDayPackage);
packages.push_back(&overnightPackage);
...
}
Agora, itere pelo vetor, emitindo etiquetas de endereçamento para destinatários e remetentes junto com o custo de envio.
Acompanhe o valor total do custo de envio e gere seu valor após o término do loop:
int main()
{
...
double sum = 0;
for (Package* package : packages)
{
cout getRecipientName()
getRecipientAddress()
getRecipientCity()
getRecipientState()
getRecipientZip()
cout getSenderName()
getSenderAddress()
getSenderCity()
getSenderState()
getSenderZip()
cout
calculateCost()
sum += package->calculateCost();
}
cout
}
É isso pessoal. Testem o código e veja o que acontece, podem mudar também o código ao seu prazer. Abraços!!!!
Resposta
Ver o desenvolvimento.