CA Desafio Papa

Faça um programa que leia um arquivo texto de contas corrente com o seguintes campos:
número da conta, nome do cliente, saldo da conta corrente e saldo da poupança. Depois o
programa deve exibir um menu com as seguintes opções: inclusão de cliente, alteração de
cliente, exclusão de cliente e relatórios gerenciais.
● No caso de inclusão, o programa deverá evitar que seja criada uma conta com um
número que já exista, caso contrário deverá enviar uma mensagem de erro.
● Nos casos de alteração e exclusão, o programa deverá garantir que a conta exista, caso
contrário deverá enviar uma mensagem de erro.
● No caso específico da inclusão, garantir que os valores do saldo da conta corrente e do
saldo da poupança sejam maiores que zero.
● No caso específico da exclusão, o saldo da conta corrente e da poupança deverão ser
iguais a zero, caso contrário deverá enviar uma mensagem de erro.
● No caso da opção de relatórios gerenciais, serão oferecidas as seguintes opções: listar
clientes com saldo negativo, listar os clientes que tem saldo acima de um determinado
valor, listar todas as contas, listar os três maiores saldos de conta corrente.
● Ao término, o programa deverá gravar os dados atualizados no arquivo em disco.
O programa deve implementar classe(s), métodos estáticos, gets/sets,
variáveis locais, passagem de parâmetros, vetores e todas as boas práticas apresentadas
durante o curso.

Você pode usar qualquer linguagem de programação para o desafio. Abaixo a lista de linguagens que nós aqui da CA temos mais afinidade:

  • JavaScript
  • Python
  • Go
  • Ruby
  • C++
  • PHP
  • JAVA

Você pode usar qualquer framework. Se a sua escolha for por um framework que resulte em boilerplate code, por favor assinale no README qual pedaço de código foi escrito por você. Quanto mais código feito por você, mais conteúdo teremos para avaliar.

Requisitos

  • Forkar esse desafio e criar o seu projeto (ou workspace) usando a sua versão desse repositório, tão logo acabe o desafio, submeta um pull request usando a branch resolucoes.
  • O código precisa rodar em Windows, macOS ou Ubuntu
  • Para executar seu código, deve ser preciso apenas rodar os seguintes comandos:
    • git clone $seu-fork
    • cd $seu-fork
    • comando para instalar dependências
    • comando para executar a aplicação

Critério de avaliação

  • Organização do código: Separação de módulos, view e model, back-end e front-end
  • Clareza: O README explica de forma resumida qual é o problema e como pode rodar a aplicação?
  • Assertividade: A aplicação está fazendo o que é esperado? Se tem algo faltando, o README explica o porquê?
  • Legibilidade do código (incluindo comentários)
  • Histórico de commits (estrutura e qualidade)
  • UX: A interface é de fácil uso e auto-explicativa?

Dúvidas

Quaisquer dúvidas que você venha a ter, consulte as issues para ver se alguém já não a fez e caso você não ache sua resposta, abra você mesmo uma nova issue!

Boa sorte! ;)

Challange accepted

Créditos

Esse repositório foi baseado no trabalho aplicado pelo prof. LP Maia no bloco de desenvolvimento Java 2018 do Instituto Infnet.