Exercicio java

7 respostas
L

Galera, tenho esse exercicio ja fiz parte dele, criei uma classe DISSERTAÇÃO, ALUNO, E PROFESSOR.

A direção do curso de Mestrado da UCB deseja gerir melhor as dissertações que são apresentadas pelos alunos para aquisição do título de Mestre.
Uma Dissertação tem nome, sigla, Professor-Orientador, nota final e um Aluno.
De um professor é importante saber o nome, matrícula e título.
De aluno importa o nome, a matrícula e se ele é ou não aluno regular.
Ao receber todas as dissertações de uma direção apresente os seguintes relatórios:
1- Todos os dados da Direção: Nome da direção e os dados de todas as dissertações.
2- A melhor Dissertação.
3- O Aluno que apresentou a pior Dissertação.
4- Quantas Dissertações foram feitas por alunos que não são regulares.
5- As dissertações que tiraram nota maior que 9.

Ai, dissertação recebe professor e aluno, que quando eu vou tentar ler na classe Read uma dado de de aluno ou professor eu não consigo achar os seus atributos.

Alguem pode ajudar?

Desde já, agradeço!

package br.com.lab2;

public class Dissertacao implements Comparable<Dissertacao>{
	private Aluno aluno;
	private Professor professor;
	private String nomeDissertacao;
	private String sigla;
	private int notaFinal;
	
	@Override
	public int compareTo(Dissertacao argumento) {
		if(getNotaFinal() < argumento.getNotaFinal())
			return -1;
		else if(getNotaFinal() == argumento.getNotaFinal())
			return 0;
		else
			return 1;
	}
	
	@Override
	public boolean equals(Object object) {
		if(object instanceof Dissertacao){
			Dissertacao dissertacao = (Dissertacao) object;
			if(getNomeDissertacao().toLowerCase().contains(dissertacao.getNomeDissertacao().toLowerCase()))
				return true;
			return false;
		}
		return false;
	}
	
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("Aluno "+getAluno());
		sb.append("\nProfessor: "+getProfessor());
		sb.append("\nNome da dissertação: "+getNomeDissertacao());
		sb.append("\nSigla: "+getSigla());
		sb.append("\nNota final: "+getNotaFinal());
		
		return sb.toString();
	}
	
	
	public Aluno getAluno() {
		return aluno;
	}
	public void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}
	public Professor getProfessor() {
		return professor;
	}
	public void setProfessor(Professor professor) {
		this.professor = professor;
	}
	public String getNomeDissertacao() {
		return nomeDissertacao;
	}
	public void setNomeDissertacao(String nomeDissertacao) {
		this.nomeDissertacao = nomeDissertacao;
	}
	public String getSigla() {
		return sigla;
	}
	public void setSigla(String sigla) {
		this.sigla = sigla;
	}
	public int getNotaFinal() {
		return notaFinal;
	}
	public void setNotaFinal(int notaFinal) {
		this.notaFinal = notaFinal;
	}

	


	
}
package br.com.lab2;

public class Aluno extends Pessoa{
	private int classificacao;
	

	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append(super.toString());
		sb.append("\nNome Aluno: "+getNome());
		sb.append("\nMatricula: "+getMatricula());
		sb.append("\nClassificacao: "+getClassificacao());
		return sb.toString();
		
	}
	
	public int getClassificacao() {
		return classificacao;
	}

	public void setClassificacao(int classificacao) {
		this.classificacao = classificacao;
	}


}
package br.com.lab2.view;

import java.util.Scanner;
import br.com.lab2.Dissertacao;

public class Read {

	public static Dissertacao lerDissertacao() {
		Dissertacao dissertacao = new Dissertacao();
		
		
		return dissertacao;
	}

	private static String lerString(String msg) {
		System.out.println(msg);
		return lerString();
	}

	private static String lerString() {
		
		return new Scanner (System.in).nextLine();
	}


}

7 Respostas

Fellipex

Seja mais específico, está acontecendo erro de execução, ou só nao acha?
Poderia postar o main para eu ver como está sendo executada estas funcionalidades?

L
Fellipex:
Seja mais específico, está acontecendo erro de execução, ou só nao acha? Poderia postar o main para eu ver como está sendo executada estas funcionalidades?

Essa é a main alem dela tem a classe Direção onde sera colocada as dissertações.

package br.com.lab2.main;

import br.com.lab2.Direcao;
import br.com.lab2.view.Read;

public class Main {
	public static void main(String[] args) {
		Direcao direcao = new Direcao();
		
		if(direcao.addDissertacao(Read.lerDissertacao()));
			System.out.println("Sucesso!");
	}
}
L

Fellipex:
Seja mais específico, está acontecendo erro de execução, ou só nao acha?
Poderia postar o main para eu ver como está sendo executada estas funcionalidades?

Só não estou conseguindo achar os atributos.

Fellipex

Cara, pelo que eu pude ver você não está lendo a dissertacao. Seu método ler dissertacao só cria um objeto do tipo dissertacao. É isso mesmo que você quer?
Aonde são populados os dados da dissertação? Pois você tem um método lerString que utiliza Scanner(ou seja entrada de dados do teclado), porém você não chama ele em lugar nenhum, como quer ler algo?
Tá faltando coisa ai
Att

L

Fellipex:
Cara, pelo que eu pude ver você não está lendo a dissertacao. Seu método ler dissertacao só cria um objeto do tipo dissertacao. É isso mesmo que você quer?
Aonde são populados os dados da dissertação? Pois você tem um método lerString que utiliza Scanner(ou seja entrada de dados do teclado), porém você não chama ele em lugar nenhum, como quer ler algo?
Tá faltando coisa ai
Att

Vamos por partes, eu quero ler so o objeto dissertação, os dados estão populados na classe dissertação, só que aluno e prof. estão declarados em dissertação so que na hora de ler não consigo enchergar os atributos da classe aluno e nem da classe prof.

Eu não chamei os dados pq não consigo enchergar. Por isso pedi ajuda.

Fellipex

você não consegue fazer isto aqui ?

public static Dissertacao lerDissertacao() {  
        Dissertacao dissertacao = new Dissertacao();  
         dissertacao.getAluno(); ???
         dissertacao.getProfessor(); ????
          
        return dissertacao;  
    }

Voce mencionou que não enxergava os atributos. Vou explicar, acredito que seja isso
Você declarou por exemplo

private Aluno aluno;

Logo você não vai conseguir acessar aluno assim, pois ele é um atributo privado

dissertacao.aluno; //Não funciona, aluno é privado

Funciona se utilizar getter para buscar ou setter para alterar o valor , exemplo

dissertacao.getAluno();

Seria esse o seu problema?

L

Fellipex:
você não consegue fazer isto aqui ?

public static Dissertacao lerDissertacao() {  
        Dissertacao dissertacao = new Dissertacao();  
         dissertacao.getAluno(); ???
         dissertacao.getProfessor(); ????
          
        return dissertacao;  
    }

Voce mencionou que não enxergava os atributos. Vou explicar, acredito que seja isso
Você declarou por exemplo

private Aluno aluno;

Logo você não vai conseguir acessar aluno assim, pois ele é um atributo privado

dissertacao.aluno; //Não funciona, aluno é privado

Funciona se utilizar getter para buscar ou setter para alterar o valor , exemplo

dissertacao.getAluno();

Seria esse o seu problema?

Valeu consegui resolver, era isso ai e qnd eu tva lendo não tva fazendo a sobrecarga do metodo de aluno e professor.

Grato!

Criado 22 de novembro de 2012
Ultima resposta 22 de nov. de 2012
Respostas 7
Participantes 2