Neste projeto, vou colocar em prática conceitos da linguagem C# e também dos pilares da orientação a objetos para construir um sistema de controle de clientes baseado no seguinte diagrama:
Ao analisar o diagrama, é preciso que o sistema corresponda aos seguintes requisitos:
- a entrada de dados deve ser informada via console e informado pelo usuário;
- o sistema deve ser inteiramente baseado em conceitos de POO (Abstração, Herança, Polimorfismo e Encapsulamento);
- a cada execução o sistema deverá informar se o cliente é pessoa física ou jurídica;
- o cálculo de imposto deve corresponder ao determinado tipo de cliente;
- os dados do clientes e o resultado dos cálculos devem ser apresentados na tela;
Os clientes podem ser pessoa física (com CPF e RG) ou pessoa jurídica (com CNPJ e Inscrição Estadual).
O diagrama de classes, então, mostra que a classe Clientes é a classe pai das subclasses PessoaFisica e PessoaJuridica. Os atributos e métodos da classe-pai são herdados por ambas as classes-filhas.
A classe PessoaFisica tem, ainda, os atributos específicos CPF e RG, e a classe PessoaJuridica tem os atributos específicos CNPJ e IE.
O imposto para pessoa física é de 10% sobre o valor e, para pessoa jurídica, é 20%; e 90% dos clientes são pessoas físicas.
O método Pagar_Imposto da classe-pai Clientes é reescrito(override) na classe PessoaJuridica, devido ao percentual diferente de imposto a ser pago.
Dados do cliente Pessoa Física | Dados do cliente Pessoa Jurídica |
- C#
- DotNet (SDK)
- Extensão para C#