Me ajudem neste metodo

4 respostas
IsaelCoelho

Gente não consigo fazer o teste desta classe na hora de adicionar notas por favor alguém pode me ajudar

public class Testaluno {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Aluno a = new Aluno();
		a.setNome("Isael Selvino Coelho");
		a.setMatricula(1);
		a.setNotas(1, (float) 7.5);
		a.setNotas(2, (float) 6.0);
		a.setNotas(3, (float) 8.0);
		a.setNotas(4, (float) 5.5);
		
		System.out.println("O nome do aluno é: " + a.getNome() );
		//System.out.println( "suas medias são " + a.getNotas(int ava-1));
		
	}
public class Aluno {

	private String nome;
	private int matricula;
	private float notas[];
	private boolean frequencia[];
	private float media;
	private boolean aprovado;

	
	public Aluno(){
		notas = new float [4];
		frequencia = new boolean [5];
	}
	public void setNome(String n) {
		nome = n;

	}

	public String getNome() {
		return nome;

	}

	public void setMatricula(int m) {
		matricula = m;
	}
		public int getMatricula(){
			return matricula;
		}
	

	public int getnota() {
		return matricula;
	}

	public void setNotas(int ava, float nota) {
		notas[ava - 1] = nota;

	}

	public float getNotas(int ava) {
		return notas[ava-1];
		
	}

	public void setfrequencia(int dia, boolean pre) {
		frequencia[dia-1] = pre;
	}

	public boolean getfrequencia(int dia) {
		return frequencia [dia-1];
	}

	public void calcularmedia() {
		media = (notas[0] + notas[1] + notas[2] + notas[3]) / 4;
		if (media >= 7.0) {
			System.out.println("Aprovado");
		} else {
			System.out.println("Reprovado");
		}
	}

}

4 Respostas

dreampeppers99

Está ocorrendo algum erro? o valor impresso está incorreto? Não está conseguindo criar os testes unitários?

ps:não penso que isso seja Java avançado.

ViniGodoy

Qual teste deveria ser feito?

Movido para o fórum de Java Básico.

rogelgarcia

Melhora esse código também…

media = (notas[0] + notas[1] + notas[2] + notas[3]) / 4;

Usa um loop para fazer o cálculo

isaiaspf

Isael,

Acredito que o que você está querendo como resultado é algo mais próximo disso aqui:
public class Aluno {
	private String nome;
	private Integer matricula;
	private Double media;

	private List<Double> notas;

	/**
	 * Nota média mínima para aprovação.
	 */
	public static final Double MEDIA_APROVACAO = 70.0;

	public Aluno() {
		notas = new ArrayList<Double>();
	}

	/**
	 * Calcula a média das notas do aluno.
	 * 
	 * @return
	 */
	public Double getMedia() {
		if(media == null) {
			Double m = 0.0;
			for(Double nota : notas) {
				m += nota;
			}
			media = (m / notas.size());
		}
		return media;
	}

	/**
	 * Verifica se o aluno está aprovado com a atual média de notas.
	 * 
	 * @return
	 */
	public Boolean isAprovado() {
		return (getMedia() >= MEDIA_APROVACAO);
	}

	/**
	 * Adciona uma nota.
	 * 
	 * @param nota
	 */
	public void addNota(Double nota) {
		notas.add(nota);
		media = null;
	}

	/**
	 * Descrição do estado do aluno.
	 * 
	 * @return
	 */
	public String getDescricao() {
		StringBuffer descricao = new StringBuffer();
		descricao.append("O aluno ").append(getNome());
		descricao.append(", de matrícula ").append(getMatricula());
		descricao.append(", está ").append((isAprovado() ? "aprovado" : "reprovado"));
		descricao.append(" com a média ").append(getMedia().intValue()).append(".");

		return descricao.toString();
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Integer getMatricula() {
		return matricula;
	}

	public void setMatricula(Integer matricula) {
		this.matricula = matricula;
	}
}
E para executar:
public class TestaAluno {
	public static void main(String[] args) {
		Aluno aluno = new Aluno();
		aluno.setNome("Isael Selvino Coelho");
		aluno.setMatricula(1);
		aluno.addNota(60.0);
		aluno.addNota(90.0);
		aluno.addNota(50.0);
		aluno.addNota(80.0);
		
		System.out.println(aluno.getDescricao());
	}
}
Dessa forma você consegue colocar quantas notas quiser.

Abraço.

Criado 13 de julho de 2011
Ultima resposta 14 de jul. de 2011
Respostas 4
Participantes 5