Este repositório contém o código-fonte de um simulador de sistema bancário desenvolvido em C# durante as aulas da Alura. O projeto foi dividido em diferentes módulos e diretórios que encapsulam funcionalidades como gerenciamento de contas, autenticação, comparadores e manipulação de streams.
Esta pasta contém as principais classes que modelam as entidades e comportamentos do sistema bancário. Algumas das classes e interfaces presentes são:
- Cliente: Representa os dados de um cliente do banco.
- ContaCorrente: Responsável pelas operações bancárias das contas correntes.
- GerenciadorBonificacao: Gerencia o sistema de bonificações para os funcionários.
- ParceiroComercial: Modela parceiros comerciais do banco.
- AutenticacaoHelper: Classe auxiliar para gerenciamento de autenticação.
- Funcionario: Classe base para os funcionários do banco.
- Auxiliar, Desenvolvedor, Designer, GerenteDeConta, FuncionarioAutenticavel: Classes derivadas que herdam de Funcionario, representando diferentes tipos de funcionários.
- IAutenticavel: Interface para implementação de autenticação.
- OperacaoFinanceiraException, SaldoInsuficienteException: Exceções customizadas para tratar erros de operações financeiras.
Nesta pasta, o foco foi trabalhar com:
- Comparadores: Implementação de comparações customizadas para ordenação de listas.
- Extensões: Métodos de extensão aplicados a tipos do sistema.
- Listas: Manipulação de coleções e listas de dados bancários.
Este diretório contém o sistema de execução do banco, incluindo os executáveis e dlls necessários para rodar a aplicação internamente.
Este módulo foi utilizado para testes com streams, como importação e exportação de dados, leitura e escrita em arquivos, e manipulação de streams de dados.
Esses diretórios contêm arquivos atualizados do sistema, com melhorias e novas funcionalidades implementadas ao longo do desenvolvimento.
Durante o desenvolvimento deste projeto, foram abordados conceitos e práticas importantes, como:
- Modelagem de classes e entidades no contexto bancário.
- Autenticação e autorização de usuários e funcionários.
- Manipulação de exceções customizadas.
- Streams para importação/exportação de dados.
- Trabalho com listas, comparadores e métodos de extensão.
Sinta-se à vontade para explorar o código, sugerir melhorias ou discutir sobre sistemas bancários com C#!