Este projeto implementa um sistema de negociação financeira em C++ que permite gerenciar contas, carteiras e ordens de negociação. O sistema foi desenvolvido utilizando princípios de programação orientada a objetos e inclui validações rigorosas para todos os dados de entrada.
O projeto está organizado em três camadas principais:
Classes que representam tipos de dados básicos com validações específicas:
- Codigo: Representa códigos de identificação
- CodigoNegociacao: Códigos específicos para negociações
- Cpf: Validação de CPF
- Data: Validação de datas no formato AAAAMMDD
- Nome: Validação de nomes
- Perfil: Perfil de investidor (Conservador, Moderado, Arrojado)
- Dinheiro: Valores monetários
- Quantidade: Quantidades numéricas
- Senha: Validação de senhas
Classes que representam os objetos de negócio do sistema:
- Conta: Representa uma conta de usuário (CPF, Nome, Senha)
- Carteira: Representa uma carteira de investimentos (Código, Nome, Perfil)
- Ordem: Representa uma ordem de negociação (Código, CodigoNegociacao, Data, Preço, Quantidade)
Classes para testes unitários de todas as classes de domínio e entidade:
- Testes de unidade para cada classe de domínio (TUCodigo, TUCodigoNegociacao, etc.)
- Testes de unidade para cada entidade (TUConta, TUCarteira, TUOrdem)
- Validação de dados de entrada com regras específicas para cada tipo de dado
- Criação e gerenciamento de contas de usuário
- Criação e gerenciamento de carteiras de investimento
- Criação e gerenciamento de ordens de negociação
- Testes unitários para garantir a integridade do sistema
- Compilador C++ com suporte a C++11 ou superior
- Biblioteca padrão C++
O projeto utiliza o Code::Blocks como IDE, mas pode ser compilado com qualquer compilador C++ compatível:
# Compilar com g++
g++ -std=c++11 main.cpp dominios.cpp entidades.cpp testes.cpp -o sistema_negociacao
# Executar
./sistema_negociacaoOu abra o arquivo ProjetoTP1.cbp no Code::Blocks e execute o projeto.
- Código: Formato específico para códigos de identificação
- Código de Negociação: Formato específico para códigos de negociação
- CPF: Validação de dígitos verificadores e formato
- Data: Validação de datas válidas, incluindo anos bissextos
- Nome: Validação de formato de nomes
- Perfil: Validação de tipos de perfil de investidor
- Dinheiro: Validação de valores monetários
- Quantidade: Validação de quantidades numéricas
- Senha: Validação de formato e segurança de senhas
O sistema segue o padrão de projeto de camadas, separando claramente:
- Domínios: Implementação de tipos de dados básicos com validações
- Entidades: Objetos de negócio compostos por domínios
- Testes: Validação da integridade do sistema
Esta arquitetura facilita a manutenção, extensão e teste do sistema.