Galera, eis meu codigo abaixo q busca em um arquivo notas.txt as notas de alunos e grava seu nome, media e situacao em um arquivo saidaNotas.txt.
A entrada sempre devera ser feita da seguinte forma:
Juliano Drusian;7;8.5;9
Carlos Santana;5;3
sendo notas uma quantidade indefinida…
olhem meu código:
import java.util.StringTokenizer;
import java.io.*;
import java.lang.*;
public class CalculaMedia {
public CalculaMedia()
{
}
public void notas()
{
int count = 0;
int linhas = 0;
try {
BufferedReader in = new BufferedReader(new FileReader("notas.txt"));
BufferedWriter out = new BufferedWriter(new FileWriter("SaidaNotas.txt"));
String str="";
float j=0;;
float countQTDnotas=0;
float totNotas=0;
float media = 0;
String getNome = "";
String proxToken = "";
String status = "";
int ultimaPos=0;
while ( ( str = in.readLine() ) != null )
{
linhas++;
StringTokenizer token = new StringTokenizer(str);
while (token.hasMoreTokens())
{
proxToken = token.nextToken(";");
if (count == 0)
{
getNome = proxToken;
}
if (count > 0)
{
j = Float.parseFloat(proxToken);
countQTDnotas++;
totNotas = (totNotas + j);
media = (totNotas / countQTDnotas);
}
count++;
}
if (media < 5)
status = "Reprovado";
else if ((media >=5) && (media < 7))
status = "Exame";
else if (media >= 7)
status = "Aprovado";
out.write("Nome: " + getNome + " ## Media: " + media + " ## Situação: " + status);
out.close();
}
in.close();
} catch (IOException e) { }
System.out.println("\n\nLinhas" + linhas);
}
public static void main (String[] args)
throws Exception
{
CalculaMedia f = new CalculaMedia();
f.notas();
}
}
só q, na saida, ele mostra apenas a 1a linha, ou seja, ele analisa apenas o 1o aluno… na minha condicao, obviamente, q se COUNT==0, ele pegara o nome da pessoa, mas, qdo for p/ a linha de baixo, COUNT nao sera + zero… Só q eu consigo zerar o count após ele passar pela 1a linha, mas msmo assim nao da certo…
tento fazer com k ele analise somente notas, mas com essa programacai q passei p/ vcs, ele só analisa e GRAVA no out.write, apenas a 1a linha…
o q devo fazer?? gostaria q vcs testassem o programa p/ ver o resultado e confirmar q com mais de um nome(+ de uma linha no arquivo de entrada), ele ja nao analisa e nao grava…
o q devo fazer???
aguardo e valewsssss :?: