Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 3
0
        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));
            }
        }