Problemas com java.lang.NullPointerException

O programa

[color=green][code]package avaliacao;

import javax.swing.JOptionPane;
import aluno.;//ou import aluno.;
/**

  • class Avaliacao

  • Esta classe e respónsavel por setar os dados da classe aluno

  • e com estas informações

  • calculara a media de cada aluno em cada materia

  • e junto com sua frequência gerar para o professor

  • um relátorio mostrando se o aluno citado foi aprovado ou não.

  • @name class Avaliacao

  • @author 700542vanessa, 700424Marcos, 0700499Taís

  • @version 0.0.1
    /
    public class Avaliacao {
    /
    *
    * Responsável por armazenar as notas dos alunos em suas
    * principais materias em três notas.
    * @name nota[]
    * @acess public
    * @type float[]
    *
    /
    float nota[] = null;
    /
    *
    * Responsável por armazenar a media de todas as materias
    * em que o aluno esta cadastrado.
    * @name media[]
    * @acess public
    * @type float[]
    *
    /
    float media[] = null;
    /
    *
    * Responsável por armazenar a assiduidade dos alunos em aula.
    * @name frequencia[]
    * @acess public
    * @type frequencia[]
    *
    /
    float[] frequencia = new float[4];
    /
    *
    * Responsável por o total de aulas em cada materia.
    * @name diaAula[]
    * @acess public
    * @type string[]
    *
    /
    //float[] diaAula = new diaAula[4];
    /
    *
    * Responsável por armazenar a quantidade de falta dos
    * alunos em cada displina.
    * @name falta[]
    * @acess public
    * @type float[]
    *
    /
    float[] falta = new float[4];
    /
    *
    * Responsável por armazenar a quantidade de alunos para cadastro.
    * @name diaFalta[]
    * @acess public
    * @type float[]
    *
    /
    float[] diaFalta = new float[4];
    /
    *
    * Responsável por armazenar os principais dados dos alunos como
    * nome aluno, matricula e materias que ao todo são quatro.
    * @name String[]
    * @acess public
    * @type string[]
    *
    /
    private String dados [][] = new String[10][10];
    /
    *
    * Utilizados como contadores para auxiliar na amostragem dos dados
    * principais dos alunos.
    * @name i, j
    * @acess public
    * @type int
    *
    /
    int i, j;
    /
    *

    • principal função receber os dados cadastrados para cada aluno

    • e pegar a materia de cada e calcular sua media em cada uma atraves das

    • notas fornecidas pelo usuário.

    • @name avaliacaoAluno()

    • @access public

    • @param float

    • @return float

    • @since 0.0.1

    • */
      float[] total = null;
      public Aluno a1 = new Aluno();
      public float avaliacaoAluno (){

      System.out.println(“inicio avaliacao.”);

        for (int  k = 1; k <a1.qtdAluno.length; k++) {
       	for (  i = 1; i <a1.guardarDados.length; i++) {
        						 
       	nota[i] = Float.parseFloat(JOptionPane.showInputDialog ("digite a " +a1.guardarDados  + " nota do Aluno. "));
           
       	System.out.println("nota " +nota[i]);
           System.out.println("total "+total[i]);
        
        total[i] += nota[i];
      

      }

    }
    return total[i];

    }

public float calculaMedia(){
for (i = 1; i<4; i++){

	media[i] = total[i]/3;
	System.out.println("media " +media[i]);
}
return media[i];

}
}

/**
 * principal função calcular a frequência dos alunos em cada materia e retornar</br>
 * como resultado se o aluno foi reprovado por faltas ou não. 
 * @name frequencia()
 * @access public
 * @param void
 * @return float
 * @since 0.0.1 
 * */  	     	 

/* public void frequencia(){

	System.out.println("inicio frequencia.");
 for ( i = 0; i <getGuardarDados.lenth; i++) {
	diaAula = JOptionPane.showInputDialog("digite o total de aulas do aluno ? ");
    	falta = JOptionPane.showInputDialog("digite o total de faltas do aluno ? ");
    	   
         	
    	 frequencia = (float)(diaAula * 0.75);
    	 diaFalta = diaAula[] - falta[];
    	 System.out.println("frequencia" +frequencia);
    	 System.out.println("diaFalta" +diaFalta);
      }	
		if(diaFalta <= frequencia) {
			
			System.out.println("Aluno reprovado.");
		}
		else
		   {
			
			System.out.println("Aluno aprovado.");
		}		
	
	 
}
*/
/**
 * principal função receber os dados dos metodos avaliacaoAluno() e</br>
 * frequência() e retornar ao usuário se o aluno foi aprovado ou não</br>
 * dizendo o motivo se por faltas, media ou os dois. 
 * @name aprovacao()
 * @access public
 * @param void
 * @return String
 * @since 0.0.1 
 * */  	     

/*void aprovacao (float media, int frequencia, int materia){

for ( i = 0; i <getGuardarDados.lenth; i++){	
	
	if ((media >= 6) && (diaFalta <= frequencia))    {
		 

		
		System.out.println("Reprovado por faltas");

	} else  {
		
		System.out.println("aprovado");
		}
	
	  
		if (frequencia <= diaFalta) {

		
		System.out.println("reprovado por nota");

	} else  {
		
		System.out.println("Reprovado por faltas e notas.");
		}
		

	} 
 }
 
*/

[/code][/color]

OS METODOS SÃO CHAMADOS DE OUTRA CLASSE

[color=green][code]public class Aluno{

public String getGuardarDados(String guardarDados) {

	return guardarDados;
}
/**
 * principal função contador que auxilia na</br> captura e guarda dos dados que usuário digita sobre o aluno</br>
 	 * que e o seu nome, matricula e materias.
 * @name capturarDados()
 * @access public
 * @param int
 * @return int
 * @since 0.0.2 
 * */  
public int getFix() {
	
	
	return getFix();
}
public String getQtdAluno(String qtdAluno) {
	 
	return qtdAluno;
}

}[/code][/color]

E no final ele aparece a seguinte mensagem de erro

[color=red]Exception in thread "main" java.lang.NullPointerException at avaliacao.Avaliacao.avaliacaoAluno(Avaliacao.java:105) at aluno.TesteAluno.main(TesteAluno.java:38) inicio avaliacao.[/color]

O que posso fazer para depurar este problema?

kra ta faltando o metodo main da classe principal do seu programa

Dê uma olhada se antes de chamar o método avaliacaoAluno() você está inicializando o atributo nota, pois nesse código que você postou isso não está sendo feito.

o metodo main ja foi criado e pq ele não foi postado para nao ficar maior ainda a mensagem

segue abaixo

[color=green][code]package aluno;

import javax.swing.JOptionPane;

import aluno.*;
import avaliacao.Avaliacao;
/**

  • Esta classe e a principal do programa
  • e a responsavel por chamar todos os
  • metodos da classe aluno e avaliação
    • @author 700542vanessa, 700424Marcos, 0700499Taís
  • @version 0.0.1
    **/

public class TesteAluno {

/**
 * @name main
 * @access public
 * @param void
 * @return void
 * @since 0.0.1 informa desde qndo o metodo foi definido na class
 * 
 */
public static void main(String[] args) {

/**
 * Este metodo é responsável por iniciar o programa e receber os principais dados do</br>
     * programa que e o seu inicio.
 * @name aluno.iniciaPrograma
 * @access public
 * @param String
 * @return String
 * @since 0.0.1 informa desde qndo o metodo foi definido na class
 * */
	Aluno aluno = new Aluno();
	Avaliacao avaliacao = new Avaliacao();
	
		if(aluno.cadastraAluno() > 0) {
                    	aluno.iniciaPrograma();
			avaliacao.avaliacaoAluno();
		}
                    else {
		     aluno.cadastraAluno();
		     }
			
		
	
	
	
	/*avaliacao.avaliacaoAluno();
	avaliacao.frequencia();
	//avaliacao.aprova();*/
}		

}[/code][/color]