public string ObterSituacaoPeriodoAcademicoAluno(int idAluno) { MateriaRepository materiaRep = new MateriaRepository(); MateriaAlunoRepository materiaAlunoRep = new MateriaAlunoRepository(); string situacao = string.Empty; int quantMateriasAprovadas = 0; int quantMateriasReprovadas = 0; int quantMaterias = 0; foreach (MateriaAluno materiaAluno in materiaAlunoRep.FindAllByIdAluno(idAluno)) { quantMaterias++; Materia materia = materiaRep.FindById(materiaAluno.IdMateria); decimal mediaPonderada = CalcularMediaPonderada(materiaAluno.NotaProva1, materiaAluno.NotaProva2, materiaAluno.NotaProva3, materia.PesoProva1, materia.PesoProva2, materia.PesoProva3); if (mediaPonderada >= 6.0M) { quantMateriasAprovadas++; } else if (mediaPonderada <= 4.0M) { quantMateriasReprovadas++; } else { //calcula a média aritmética entre a média ponderada e a prova final decimal mediaAritmetica = CalcularMediaAritmetica(mediaPonderada, materiaAluno.NotaProvaFinal); if (mediaAritmetica >= 5.0M) { quantMateriasAprovadas++; } else { quantMateriasReprovadas++; } } } if (quantMateriasAprovadas >= quantMaterias * 0.6) { situacao = "APROVADO"; } else { situacao = "REPROVADO"; } return(situacao); }
public JsonResult ConsultarDetalhesProvasAluno(int id) { try { List <DetalheProvasAlunoViewModel> detalhes = new List <DetalheProvasAlunoViewModel>(); MateriaAlunoRepository materiaAlunoRep = new MateriaAlunoRepository(); MateriaRepository materiaRep = new MateriaRepository(); ISimulacaoPeriodoAcademico simulador = new SimulacaoPeriodoAcademico(); foreach (MateriaAluno ma in materiaAlunoRep.FindAllByIdAluno(id)) { DetalheProvasAlunoViewModel d = new DetalheProvasAlunoViewModel(); Materia materia = materiaRep.FindById(ma.IdMateria); if (materia != null) { d.NomeMateria = materia.Nome; d.Prova1 = Math.Round(ma.NotaProva1, 1); d.Prova2 = Math.Round(ma.NotaProva2, 1); d.Prova3 = Math.Round(ma.NotaProva3, 1); d.ProvaFinal = Math.Round(ma.NotaProvaFinal, 1); d.MediaPonderada = simulador.CalcularMediaPonderada( d.Prova1, d.Prova2, d.Prova3, materia.PesoProva1, materia.PesoProva2, materia.PesoProva3); if (simulador.VerificaSeFazProvaFinal(d.MediaPonderada)) { d.MediaAritmetica = simulador.CalcularMediaAritmetica( d.MediaPonderada, d.ProvaFinal); } d.Situacao = simulador.ObterSituacaoMateria(d.MediaPonderada, d.MediaAritmetica); } detalhes.Add(d); } return(Json(detalhes, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }
public void Simular() { MateriaRepository materiaRep = new MateriaRepository(); AlunoRepository alunoRep = new AlunoRepository(); MateriaAlunoRepository materiaAlunoRep = new MateriaAlunoRepository(); Random random = new Random(); //Exclui a simulação existente para incluir a nova(1(uma) sumulação por vez) foreach (MateriaAluno ma in materiaAlunoRep.FindAll()) { materiaAlunoRep.Delete(ma); } //Faz a nova simulação foreach (Materia materia in materiaRep.FindAll()) { foreach (Aluno aluno in alunoRep.FindAll()) { MateriaAluno ma = new MateriaAluno(); ma.IdMateria = materia.IdMateria; ma.IdAluno = aluno.IdAluno; ma.NotaProva1 = Math.Round(Convert.ToDecimal(random.NextDouble() * 10), 1); ma.NotaProva2 = Math.Round(Convert.ToDecimal(random.NextDouble() * 10), 1); ma.NotaProva3 = Math.Round(Convert.ToDecimal(random.NextDouble() * 10), 1); //calcula a média ponderada das notas para saber se precisa //simular a prova final decimal mediaPonderada = CalcularMediaPonderada( ma.NotaProva1, ma.NotaProva2, ma.NotaProva3, materia.PesoProva1, materia.PesoProva2, materia.PesoProva3); if (mediaPonderada > 4.0M && mediaPonderada < 6.0M) { //simula a prova final ma.NotaProvaFinal = Math.Round(Convert.ToDecimal(random.NextDouble() * 10), 1); } materiaAlunoRep.Insert(ma); } } }
public JsonResult ConsultarSimulacao() { try { List <SimulacaoConsultaViewModel> lista = new List <SimulacaoConsultaViewModel>(); MateriaAlunoRepository materiaAlunoRep = new MateriaAlunoRepository(); TurmaRepository turmaRep = new TurmaRepository(); AlunoRepository alunoRep = new AlunoRepository(); ISimulacaoPeriodoAcademico simulador = new SimulacaoPeriodoAcademico(); List <MateriaAluno> ma = materiaAlunoRep.FindAll(); if (ma.Count() > 0) { foreach (Aluno aluno in alunoRep.FindAll()) { SimulacaoConsultaViewModel sc = new SimulacaoConsultaViewModel(); Turma turma = turmaRep.FindById(aluno.IdTurma); sc.IdAluno = aluno.IdAluno; sc.NomeAluno = aluno.Nome; sc.NomeTurma = turma.Nome; sc.Situacao = simulador.ObterSituacaoPeriodoAcademicoAluno(sc.IdAluno); lista.Add(sc); } } return(Json(lista, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }