Laboratório de Programação II 
Contas Bancárias

Resumo

Neste trabalho você deverá criar uma sistam aque gerencie contas bancárias.

Descrição

Um banco trabalha com três tipos de contas:
* conta corrente comum;
* conta corrente com limite;
* conta poupança.

Em todos os casos é necessário guardar o número da conta, o nome do correntista e o saldo.
Obs: As contas são todas armazenadas em uma mesma estrutura, independente do tipo da conta, o que irá requerer que você use herança e polimorfismo.

Para a conta poupança é necessário guardar o dia do aniversário da conta (quando são creditados os juros).

Já para a conta com limite é necessário guardar o valor do limite.

As contas também armazenam uma lista de transações. Uma transação é definida por uma data, valor da transação e descrição. Se o valor for negativo, a transação é considerada um débito (crédito caso contrário).

As operações possíveis são:

Essas operações devem ser definidas como métodos de uma classe base
denominada Conta. A forma como cada uma delas será executada dependerá do tipo de conta.

A operação de depósito é igual nos três tipos de conta.

A retirada só é diferente na conta com limite, pois esta admite que o saldo fique negativo até o limite estabelecido.

O extrato é diferente para as três:
OBS: Implemente a hierarquia de classes das contas explorando polimorfismo.

O programa deve possuir um menu que permirta ao usuário fazer:

Entrega e Apresentação

O trabalho, que poderá ser desenvolvido em duplas, deverá ser entregue no dia 02/05/2018, durante o horário da aula.

O trabalho será apresentado NA SALA DE AULA.

Todos os trabalhos já devem ter sido enviados pelo Moodle antes do horário da aula.
A entrega no Moodle deverá ser feita através da submissão de um arquivo .zip (não RAR, nem 7z ou qualquer outro formato), contendo o projeto completo do programa. O programa deverá ser nomeado da seguinte forma: nome_sobrenome.cpp. No caso de uma dupla, usar a forma: nome1sobrenome1_nome2sobrenome2.zip.

O programa deverá ser executado no sistema operacional Linux. Não serão aceitos trabalhos que não compilem corretamente no g++, sob hipótese nenhuma.

Durante a apresentação, todos os alunos devem estar presentes e aptos a responder quaisquer perguntas. Respostas insatisfatórias ou a ausência do aluno acarretarão em anulação da nota final.

Todos os trabalhos deverão ser entregues até o dia da apresentação, e apresentados na data marcada - não serão aceitos trabalhos fora do prazo.

Trabalhos copiados resultarão em nota zero para todos os alunos envolvidos.