Gostaria de ajuda para resolver um exercicio

1 resposta
Kaike_Amorim
estou fazendo faculdade e o professor passou um exercicio que e o seguinte Desenvolva um sistema para cadastro de Curso com seus Alunos Classe

Curso:

Atributos: int código, cargaHoraria, sala

String nome, nomeProfessor;

double valorCurso;

int quantidadeAlunos;

Métodos: public Curso(int cod, int ch, int sala, String n, String nP, double v, ArrayList

alunos)

Getters and Setters
Classe CursoEspecializacao extends Curso:

Atributos: boolean latoSensu;

double adicionalDiploma;

Métodos: public CursoEspecializacao (int cod, int ch, int sala, String n, String nP,

double v, int qntAlunos, boolean lS)

public void setAdicionalDiploma(); // método que seta o adicional diploma.

 O adicional diploma deverá ser calculado da seguinte forma:
o Se a turma tiver até 10 alunos → R$ 25,00 por aluno
o Se a turma tiver até 30 alunos → R$ 20,00 por aluno
o Acima de 30 alunos → R$ 18,00 por aluno

Classe CursoMestrado extends Curso:

Atributos: boolean strictoSensu;

double adicionalDiploma;

Métodos: public CursoMestrado (int cod, int ch, int sala, String n, String nP, double v,

int qntAlunos, boolean lS)

public void setAdicionalDiploma(); // método que seta o adicional diploma.

 O adicional diploma deverá ser calculado da seguinte forma:

o Se a turma tiver até 5 alunos  R$ 45,00 por aluno

o Se a turma tiver até 15 alunos  R$ 43,00 por aluno

o Se a turma tiver até 30 alunos  R$ 40,00 por aluno

o Acima de 30 alunos  R$ 36,00 por aluno
Classe CursoDoutorado extends Curso:

Atributos: boolean strictoSensu;

int mesesParaDefesa;

double adicionalDiploma;

Métodos: public CursoMestrado (int cod, int ch, int sala, String n, String nP, double v,

int qntAlunos, boolean lS)

public void setAdicionalDiploma(); // método que seta o adicional diploma.

 O adicional diploma deverá ser calculado da seguinte forma:

o Se faltam 24 meses para defesa  R$ 1500,00

o Se faltam 12 meses para a defesa  R$ 2000,00

o Se faltam 6 meses para a defesa  R$ 3000,00

o Caso contrário  R$ 4000,00.

 Além disso, o adicional diploma terá desconto com reajuste percentual de acordo

com a quantidade de alunos presentes no programa da seguinte forma:

o 7% se a turma tiver até 3 alunos.

o 12% se turma tiver até 7 alunos

o 15% se a turma tiver mais de 7 alunos.

Classe Controle Geral:
Responsável em ler todas as informações para o cadastramento dos CursosEspecializacao
CursoMestrado e CursoDoutorado e crie um Arraylist para cada tipo de Curso, colocando
em um ArrayList do tipo de cada classe implementada. Obs. Pelo menos 2 objetos de
cada tipo (Utilize o showInputDialog para ler os atributos normais e o showInputDialog
com opções para selecionar o tipo de Curso “Especializacao” “Mestrado” “Doutorado”
que está sendo cadastrado. Repita este processo enquanto o usuário desejar continuar,
controle isso usando o showConfirmDialog. Ao final, apresente uma caixa de diálogo
usando o showOptionDialog usando as opções de escolha definidas acima para escolher
qual dos Arraylists será impresso pelo showMessageDialog contendo todos os dados
armazenados naquele Arraylist.

o exercicio e meio extenso mais eu estou com uma duvida sobre como fazer essa classe geral e gostaria de uma ajuda nela e sobre como irei usar o metodo public void setAdicionalDiploma();

1 Resposta

A

Você pode usar if -> else, não tem muito segredo.

Agora se você quiser radicalizar, tem o padrão Strategy.
Mas pra esse caso o melhor, em minha visão, seria o padrão command, pois o fluxo das operações é muito natural.

Por questões de simplicidade use o if -> else.
Mas você teria mais conhecimento para situações diversas usando os padrões acima com as alterações que você considerar necessárias.

Recomendação, para este caso:

Menos recomendado, neste caso:

Obs.: como você pode ver, há mais de uma forma de resolver o mesmo problema.
Minha preferência por command se justifica pelo comportamento semelhante a uma “lista ligada” de pessoas onde você perguntaria a cada participante que se o nome dele é João, ai ele diria, não sou eu, veja com o próximo, até encontrar um, sendo que neste caso, obrigatoriamente a fila terá 1 João e somente 1, caso contrário haverá um erro na aplicação mas ai é só trabalhar com lógica, para este erro não ocorrer.

Você pode alterar o padrão para atender a sua necessidade.

Criado 1 de setembro de 2017
Ultima resposta 1 de set. de 2017
Respostas 1
Participantes 2