Curva do Esquecimento -> Estude menos e Aprenda mais

Minha prioridade é fazer este código da Curva do Esquecimento em Java no prazo de uma semana, todas as minhas dúvidas até concluir o código será postava nesta página, conto com a ajuda de todos e este código será útil pra todo mundo.
Se você assistir uma aula e entender a aula você aprende 100% , passado um dia cai para mais de 70% e depois de um mês você só consegue lembrar menos de 6%, tudo isto acontece por que a gente não fez revisão. Preciso iniciar meu código para usar em todos os meus estudos, mas não sei como fazer, quero que ao iniciar o código mostre…
a) data atual baseada na hora do computador…
b) mostre a lista completa se tem alguma revisão para hoje
c)Pergunte se quer cadastrar algum lembrete…
d)após cadastrar cada lembrete, depois de 10 minutos, 24 horas, uma semana, 15 dias, 31 dias e de 45 em 45 dias este lembrete tem que ser lembrado para poder fazer a revisão.
e) Se eu desligar o pc vou perder o código, ou seja, vou ter que salvar o código num bloco de notas.
Parece simples, mas o código é muito complexo, depois do código pronto pretendo fazer pequenos ajustes pra deixar do jeito que quero.
O que devo fazer pra iniciar o código, me passa as informações que estudo, se quiser passar o código completo explicando todos detalhes das linhas fiquem a vontade.

Aprender lógica de programação e estruturas de dados.

Bloco de notas é somente um editor de textos, você não salva nada dentro dele.
Você terá que salvar em arquivo ou em um banco de dados.

1 curtida

Concordo em absoluto com o @staroski e acrescento que você vai precisar entender como todo esse processo funciona e quais são as fórmulas para calcular o que você precisa (por exemplo, qual o percentual esquecido por dia, se é progressivo ou não, etc).

Olá staroski,
Tenho usado o bloco de notas pra salvar as coisas nele, no código java peço para criar um arquivo extensão txt e no mesmo código java dá pra fazer a leitura, acho muito mais fácil, não sei se é a forma correta, mas funciona perfeitamente, como estou iniciando em java, achei mais fácil usar o bloco de notas.

Olá darlan,
Você me deu ótima ideia de colocar gráfico depois,vamos estudar um jeito de deixar este código bem profissional, o problema é que qualquer coisa que você tenta acrescentar num código você tem que ter um pouco mais de conhecimento, depois de pronto o código está nos meus planos colocar sua ideia em prática.

staroski,
Entrei nesta página e já baixei o pdf estrutura Lógica de Programação e estrutura de dados que você indicou…
http://www.ams.eti.br/livros/Sandra_Puga.pdf
São 261 páginas e qualquer coisa que eu aprender vai me ajudar a tentar montar o código da Curva do esquecimento.

Tudo depende de conhecimento. Mas, essa primeira parte depende muito de entender a coisa, afinal, como você faria para criar um sistema que demonstrasse o processo de aceleração e desaceleração de um veículo qualquer, dadas as devidas informações (distância percorrida, velocidade inicial, velocidade máxima, velocidade final, etc)?

olá darlan,
Tenta rodar este código e veja o que pode ser melhorado…
//Curva do Esquecimento
//Início 22/10/2018
import java.util.Calendar;
import java.util.Scanner;
public class CurvaEsquecimento {
public static void main(String[] args) {
Scanner lembrete = new Scanner(System.in);
// Data inicial
Calendar dataInicio = Calendar.getInstance();
// Data que comecei a estudar 22/10/2018
dataInicio.set(2018, Calendar.OCTOBER, 22);
// Data do Pc de hoje
Calendar dataFinal = Calendar.getInstance();
// Calcula a diferença entre hoje e a data cadastrada 22/10/2018
long diferenca = dataFinal.getTimeInMillis() -
dataInicio.getTimeInMillis();
// Quantidade de milissegundos em um dia
int tempoDia = 1000 * 60 * 60 * 24;
long diasDiferenca = diferenca / tempoDia;
//dividir data pra chegar nos 10 minutos
//adicionar a opção entre com outro lembrete para ser arquivado
//salvar e pesquisar lembrete, deletar caso erre ao escrever
//listar todos lembretes
//montando o código e tentando aprender o que cada linha faz

   System.out.println("Curva do Esquecimento \nEntre com o lembrete 1: ");
    String lembrete1 = lembrete.nextLine();
    System.out.println(lembrete1);
    System.out.println("Dentro de 10 minutos tem que fazer a revisão!");
    System.out.println("Início 22/10/2018 : " +
                        diasDiferenca + " dias de diferença.");
    if(diasDiferenca == 1) {
    System.out.println("Fazer Primeira Revisão Hoje.");
    } else if(diasDiferenca == 7) {
    System.out.println("Fazer Segunda Revisão Hoje.");
       } else if(diasDiferenca == 15) {
    System.out.println("Fazer Terceira Revisão Hoje"); 
       } else if(diasDiferenca == 31) {
    System.out.println("Fazer Quarta Revisão Hoje");
       } else if(diasDiferenca == 45) {
    System.out.println("Fazer Quinta Revisão Hoje.");   
       } else if(diasDiferenca == 90) {
    System.out.println("Fazer Sexta Revisão Hoje.");   
       } else if(diasDiferenca == 135) {
    System.out.println("Criar novos calculos para meses,semestres,anos.");
        
    } else {
    System.out.println("Não precisa fazer revisão hoje");
     }

 }


  }

Você já usou o duolingo alguma vez?
Ele utiliza o mesmo princípio que você está tentando implementar.
É possível fazer N exercícios por dia, porém, de acordo com o passar do tempo, cada alvo abordado em vários exercícios vai apresentando percentual menor, até ficar em 0 novamente (em geral, após vários meses).
Seria bacana você dar uma olhada nisso e tentar reproduzir essa questão.
Veja, você não considera, em nenhum momento, valores mensuráveis (percentuais) para o que aprendeu e para o que está esquecendo.
Por exemplo, como resolver equações de segundo grau? Entendi que tem algumas maneiras, entendi como calcula o delta, mas não entendi como aplicar corretamente a fórmula de Bháskara. Qual o percentual de aprendizado?

darlan,
Não conhecia o duolingo, é de graça e dá para aprender idiomas, vou precisar muito do inglês, cadastrei agora, tem muito conteúdo de java na internet que não está em português e se traduzir não vai ser perfeito.