Lab1 Bruno Cesar

aluno: Nome do Aluno
ano/sem: 2008/2o.
data do laboratório (num. da semana) : 06/08/2008 (2)

Introdução

Esse laboratório teve como objetivo a familiarização com o Java. Para tanto, foi criado um aplicativo de entrega, fila e correção de relatórios.

Desenvolvimento

Segue o esquema do aplicativo:

2rr74er.jpg

Segue os códigios das classes:

public abstract class Aluno {
    protected int conhecimento = 0;
    protected String nome;
    protected RelaQueue queue;
    protected double qualidade;
    protected double originalidade;
    public void fazEEntregaRelatorio(){
        Relatorio relat = new Relatorio(this.qualidade,this.originalidade,this);
         queue.queue(relat);
    }
    public int getConhecimento(){
        return conhecimento;
    }
    public double getQualidade(){
        return qualidade;
    }
    public double getOriginalidade(){
        return originalidade;
    }
    abstract public double getInteligencia();
    abstract public double getDedicacao();
    public String getNome(){
        return nome;
    }
}
import java.util.*;
 
public class AlunoEsforcado extends Aluno 
{
   protected double inteligencia;
   protected double dedicacao;
   public AlunoEsforcado(String nome, RelaQueue queue){
       this.inteligencia = 0.5 ;
       this.dedicacao = 1;
       this.nome = nome;
       this.queue = queue;
       super.qualidade = (2 * this.getDedicacao() + 1 * this.getInteligencia() ) / 3 ;
       super.originalidade = (1 * this.getDedicacao() + 2 * this.getInteligencia() ) / 3 ;  
    }
   public double getInteligencia(){
       return this.inteligencia;
    }
   public double getDedicacao(){
       return this.dedicacao;
    }
}
import java.util.*;
 
public class AlunoSafoPreguicoso extends Aluno  
{
   protected double inteligencia;
   public AlunoSafoPreguicoso(String nome, RelaQueue queue){
       this.inteligencia = 1;
       this.nome = nome;
       this.queue = queue;
       super.qualidade = (2 * this.getDedicacao() + 1 * this.getInteligencia() ) / 3 ;
       super.originalidade = (1 * this.getDedicacao() + 2 * this.getInteligencia() ) / 3 ;
    }
   public double getInteligencia(){
       return inteligencia;
    }
   public double getDedicacao(){
       Random generator = new Random();
       double r = generator.nextDouble();
       return r*0.5;
    }
}
public class RelaQueue
{
    private Relatorio[] array = new Relatorio[10];
    private int inicio;
    private int fim;
    private Relatorio valor;
    public RelaQueue(){
      this.inicio=0;
      this.fim=0;
    }
    public void queue(Relatorio elem){
      array[fim] = elem;
      fim = (fim + 1) % 10;
    }
    public Relatorio dequeue(){
      if(inicio == fim) return null;
      valor = array[inicio];
      inicio = (inicio + 1) % 10;
      return valor;
    }
}
import java.util.*;
 
public class Professor
{
    protected RelaQueue queue;
    protected double nota;
    public Professor(RelaQueue queue){
        this.queue=queue;
    }
    private double corrigirRelatorio(Relatorio rela){
        return ( rela.getQualidade() + rela.getOriginalidade() + fatorAleatorioDe0a1() ) / 3 * 10;
    }
    public void corrigirRelatorios(){
        Relatorio relat;
        relat = queue.dequeue();
        while(relat!=null){
            nota = corrigirRelatorio(relat);
            System.out.println(relat.getAluno().getNome()+" "+nota);
            relat = queue.dequeue(); 
        }
    }
    public double fatorAleatorioDe0a1()
    {
        Random generator = new Random();
        double r = generator.nextDouble();
        return r ;
    }
 
}
public class Relatorio
{
  protected double qualidade; 
  protected double originalidade;
  protected Aluno aluno;
  public Relatorio(double qualidade, double originalidade, Aluno aluno){
      this.qualidade=qualidade;
      this.originalidade=originalidade;
      this.aluno = aluno;
    }
  public Aluno getAluno(){
      return aluno;
    }
  public double getQualidade(){
      return qualidade;
    }
  public double getOriginalidade(){
      return originalidade;
    }
 
}

Segue o resultado dos testes:

2drb9sp.jpg

Conclusão

O apredizado com o laboratório foi grande, boa parte do trabalho se deu na sintaxe da linguagem Java, principalmente para os iniciantes. O nível de dificuldade está adequado para o primeiro laboratório.

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License