예제 #1
0
        public string AddMediaAno(int matricula, double valor)
        {
            string mensagem = "";

            Aluno aluno = GetAluno(matricula);

            if (aluno != null)
            {
                if (aluno is AlunoInterno)
                {
                    AlunoInterno interno  = (AlunoInterno)aluno;
                    bool         addMedia = interno.AddMediaAno(valor);
                    if (addMedia)
                    {
                        mensagem = "Media inserida com sucesso!";
                    }
                    else
                    {
                        mensagem = "O aluno já concluiu o seu percurso escolar!";
                    }
                }
                else
                {
                    mensagem = "Matrícula de um aluno externo.\nFuncionalidade exclusiva para alunos internos!";
                }
            }
            else
            {
                mensagem = "Matrícula inválida!";
            }

            return(mensagem);
        }
예제 #2
0
        public void CriarAluno(int matricula, string nome, int cc, DateTime dataNasc, string curso, string turma)
        {
            Aluno aluno = new AlunoInterno(matricula, nome, cc, dataNasc, curso, turma);

            alunos.Add(aluno);
        }
예제 #3
0
        private Aluno GetAluno(int matricula)
        {
            //Aluno que será devolvido
            Aluno aluno = null;

            //Conexão à BD
            cn.Open();
            //Select que une as tabelas Alunos e AlunosInternos de modo a juntar todos os alunos da BD
            cmd = new SqlCommand("select * from Alunos left join AlunosInternos on Alunos.matricula = AlunosInternos.matricula where Alunos.matricula = @matricula;", cn);
            //Associa ao parâmetro @matricula a variável matricula
            cmd.Parameters.AddWithValue("@matricula", matricula);
            //Executa a consulta e a referência dr passa a conter os resultados da consulta
            dr = cmd.ExecuteReader();
            //Se resultarem linhas da consulta
            if (dr.HasRows)
            {
                //Ciclo para ler todas as linhas resultantes da consulta
                while (dr.Read())
                {
                    //campos comuns a todos os alunos
                    int      mat      = int.Parse(dr["matricula"].ToString());
                    string   nome     = dr["nome"].ToString();
                    int      cc       = int.Parse(dr["cc"].ToString());
                    DateTime dataNasc = Convert.ToDateTime(dr["datanasc"].ToString());
                    //Se o campo curso estiver vazio indica que temos um externo
                    if (dr["curso"].ToString() == "")
                    {
                        /*
                         * Instanciação do AlunoExterno usando a informação recolhida
                         * e associação do objeto à referência aluno que será retornada
                         */
                        aluno = new AlunoExterno(matricula, nome, cc, dataNasc);
                    }
                    else //caso contrário um Interno
                    {
                        //Campos do interno
                        string curso   = dr["curso"].ToString();
                        string turma   = dr["turma"].ToString();
                        int    media10 = int.Parse(dr["media10"].ToString());
                        int    media11 = int.Parse(dr["media11"].ToString());
                        int    media12 = int.Parse(dr["media12"].ToString());

                        /*
                         * Instanciação do AlunoInterno usando a informação recolhida
                         * e associação do objeto a uma nova referência de AlunosInternos
                         * com o intuito de invocar o método AddMediaAno que é exclusivo à classe
                         */
                        AlunoInterno alunoi = new AlunoInterno(matricula, nome, cc, dataNasc, curso, turma);

                        //Verifica se o aluno tem alguma das 3 médias
                        if (media10 > 0)
                        {
                            //adiciona a media encontrada ao objeto
                            alunoi.AddMediaAno(media10);
                            if (media11 > 0)
                            {
                                alunoi.AddMediaAno(media11);
                                if (media12 > 0)
                                {
                                    alunoi.AddMediaAno(media12);
                                }
                            }
                        }
                        //Associação do objeto à referência aluno que será retornada
                        aluno = alunoi;
                    }
                }
            }
            //Fechar conexões
            dr.Close();
            cn.Close();
            //Devolve o aluno encontrado ou null
            return(aluno);
        }