示例#1
0
        public string AddDisciplina(int matricula, string nome, int code, double nota)
        {
            string mensagem = "";

            Aluno aluno = GetAluno(matricula);

            if (aluno != null)
            {
                if (aluno is AlunoExterno)
                {
                    AlunoExterno externo = (AlunoExterno)aluno;
                    Disciplina   disc    = new Disciplina(nome, code, nota);
                    externo.AddDisciplina(disc);

                    mensagem = "Disciplina inserida com sucesso!";
                }
                else
                {
                    mensagem = "Matrícula de um aluno interno.\nFuncionalidade exclusiva para alunos externos!";
                }
            }
            else
            {
                mensagem = "Matrícula inválida!";
            }

            return(mensagem);
        }
示例#2
0
        public void CriarAluno(int matricula, string nome, int cc, DateTime dataNasc)
        {
            Aluno aluno = new AlunoExterno(matricula, nome, cc, dataNasc);

            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);
        }