O projeto visa desenvolver um sistema de gerenciamento escolar em Java, com classes para Alunos, Professores, Disciplinas e Turmas, focando na organização e manipulação eficiente de informações acadêmicas, com implementação de funcionalidades que agregam valor ao sistema.
Este projeto tem como objetivo a criação de um sistema de gerenciamento escolar em Java, abrangendo as principais entidades presentes em um ambiente educacional. Suas classes fundamentais englobam representações para Alunos, Professores, Disciplinas e Turmas, proporcionando uma estrutura coesa para a organização e manipulação de informações acadêmicas.
A implementação não se limita apenas à modelagem das classes, mas também prioriza a entrega de um conjunto de funcionalidades que enriquecem e aprimoram o sistema como um todo.
classDiagram
class Pessoa {
-String nome
-Integer idade
+String getNome()
+void setNome(String nome)
+Integer getIdade()
+void setIdade(Integer idade)
+String toString()
}
class Aluno {
-Integer matricula
-Float media
+Integer getMatricula()
+void setMatricula(Integer matricula)
+Float getMedia()
-void setMedia(Float media)
+void atualizarMedia(Float nota)
+String toString()
}
class Professor {
-Integer codigo
-Double salario
+Integer getCodigo()
+void setCodigo(Integer codigo)
+Double getSalario()
+void setSalario(Double salario)
+void aumentarSalario(Integer bonificacaoPercentual)
+String toString()
}
class Disciplina {
-DisciplinaEnum nome
-String codigo
-Integer cargaHoraria
-Professor professorResponsavel
+DisciplinaEnum getNome()
+void setNome(DisciplinaEnum nome)
+Integer getCargaHoraria()
+void setCargaHoraria(Integer cargaHoraria)
+Professor getProfessorResponsavel()
+void setProfessorResponsavel(Professor professorResponsavel)
+String toString()
}
class Turma {
-LocalDate dataInicio
-List < Aluno > alunos
-List < Disciplina > disciplinasOfertadas
+LocalDate getDataInicio()
+void setDataInicio(LocalDate dataInicio)
+List < Aluno > getAlunos()
+List < Disciplina > getDisciplinasOfertadas()
+void adicionarAluno(Aluno alunoParaAdicionar)
+void adicionarDisciplina(Disciplina disciplinaParaAdicionar)
+void exibirInformacoes()
+Integer calcularCargaHorariaTotal()
+Float calcularMediaDasNotas()
+void listarAlunosAprovados(Float mediaMinima)
+String toString()
}
class DisciplinaEnum {
<<Enumeration>>
MATEMATICA
PORTUGUES
CIENCIAS
HISTORIA
GEOGRAFIA
INGLES
FISICA
QUIMICA
ARTES
EDUCACAO_FISICA
}
Pessoa <|-- Aluno
Pessoa <|-- Professor
Os construtores foram omitidos no diagrama. Verifique os códigos de exemplo para descobrir como são as assinaturas dos construtores de cada classe.
Faça validações, garantindo que:
Dicas
- Faça as validações antes de atribuir os valores nos atributos!
- Adapte os métodos existentes ou crie novos métodos para atender a esses requisitos adicionais.
toString
para cada uma das classes: Pessoa, Aluno, Professor, Disciplina e Turma. Para classes que usam composição, o método toString
deve chamar os métodos toString
das classes referenciadas. Por exemplo, o toString
da classe Disciplina deve chamar o toString
da classe Professor.public class Main {
public static void main(String[] args) {
Professor professor1 = new Professor("Carlos", 40, 123, 5000.0);
Professor professor2 = new Professor("Ana", 35, 124, 4800.0);
Disciplina disciplina1 = new Disciplina(DisciplinaEnum.MATEMATICA, "MAT123", 60, professor1);
Disciplina disciplina2 = new Disciplina(DisciplinaEnum.PORTUGUES, "POR456", 45, professor2);
Aluno aluno1 = new Aluno("Maria", 16, 1001, 5.8F);
Aluno aluno2 = new Aluno("Pedro", 17, 1002, 8.4F);
Aluno aluno3 = new Aluno("João", 16, 1003, 5.7F);
Aluno aluno4 = new Aluno("Isabela", 17, 1004, 5.7F);
Aluno aluno5 = new Aluno("Julia", 15, 1008, 9.1F);
Aluno aluno6 = new Aluno("Guilherme", 18, 1009, 7.5F);
Turma turma = new Turma(LocalDate.now());
turma.adicionarAluno(aluno1);
turma.adicionarAluno(aluno2);
turma.adicionarAluno(aluno3);
turma.adicionarAluno(aluno4);
turma.adicionarAluno(aluno5);
turma.adicionarAluno(aluno6);
turma.adicionarDisciplina(disciplina1);
turma.adicionarDisciplina(disciplina2);
professor1.aumentarSalario(12);
professor2.aumentarSalario(15);
System.out.println("Salário do professor de Matemática: " + professor1.getSalario());
System.out.println("Salário do professor de Português: " + professor2.getSalario());
System.out.println("Média de notas dos alunos da turma: " + turma.calcularMediaDasNotas());
turma.exibirInformacoes();
aluno4.atualizarMedia(0.3);
aluno2.atualizarMedia(-0.5);
System.out.println("Alunos aprovados:");
turma.listarAlunosAprovados(6.0);
System.out.println("Carga horária total das disciplinas: " + turma.calcularCargaHorariaTotal());
turma.exibirInformacoes();
}
}