Академический Документы
Профессиональный Документы
Культура Документы
#include
#include
#include
{
floatVal = atof(linha); //converte valor pra float
pontos = floatVal;
}
}
arquivo.close(); //fecha arquivo atual
}
void leArquivos() //essa funo vai ler todos os arquivos presentes na pasta, um a u
m
{
char nomeArquivo[] = "pontos"; //comeo do nome de qualquer arquivo
char extensao[] = ".txt"; //final do nome de qualquer arquivo
do
{
char num[10]; //nmero do arquivo atual comeando em "1"
strcpy(nomeArquivo,"pontos"); //reinicia o valor para as prximas passagen
s do looping
strcpy(extensao,".txt"); //reinicia o valor para as prximas passagens do
looping
strcpy(num,""); //reinicia o valor para as prximas passagens do looping
itoa(arqNum,num,10); //converte o inteiro em texto para podermos criar o
nome final do arquivo
strcat(nomeArquivo,num); //junta "pontos" com "1" por exemplo
strcat(nomeArquivo,extensao); //junta "pontos1" com ".txt" por exemplo
arqNum++; //incrementa o nmero do arquivo
arquivo.open(nomeArquivo); //tenta abrir o arquivo
if (arquivo) //se funcionou (se o arquivo existia na pasta e foi aberto
com sucesso)
{
leArquivo(nomeArquivo); //le os dados do arquivo fsico para o vetor n
a memria
}
else // se no conseguiu abrir o arquivo (provavelmente pq no existia esse
arquivo na pasta)
{
break; //sai do looping
}
}while(1); //roda o looping pra sempre at tentar abrir um arquivo que no exist
e
}
void exibeVetor() //exibe os dados do vetor na tela
{
for (int i = 0; i < qtd; i++)
{
cout << "RA " << alunos[i].RA << " --> " << alunos[i].pontos << endl;
}
}
void ordenaVetor() //ordena o vetor por ordem de RA (vc no precisa entender essa
funo inteira)
{
Aluno temp; //varivel auxiliar s pra usar na troca de um Aluno por outro
for (int i = 0; i < qtd-1; i++)
{
for (int j = 0; j < qtd-1 - i; j++)
{
if (alunos[j].RA > alunos[j+1].RA) //se aluno estiver fora de ordem,
troca!
{
temp.RA = alunos[j].RA;
temp.pontos = alunos[j].pontos;
alunos[j].RA = alunos[j+1].RA;
alunos[j].pontos = alunos[j+1].pontos;
alunos[j+1].RA = temp.RA;
alunos[j+1].pontos = temp.pontos;
}
}
}
}
void gravaArquivo() //grava dados finais num outro arquivo
{
ofstream arqFinal; //abre arquivo em branco para gravao de dados
arqFinal.open("final.txt");
for (int i = 0; i < qtd; i++)
{
arqFinal << alunos[i].RA << " " << alunos[i].pontos << endl; //insere da
dos no arquivo
}
arqFinal.close(); //fecha arquivo
}
int main() //funo principal, seu programa comea aqui
{
leArquivos(); //l cada arquivo da pasta, um a um
ordenaVetor(); //ordena os dados por RA
exibeVetor(); //exibe na tela o que ser gravado no arquivo final
gravaArquivo(); //grava dados no arquivo final
return 0; //sai do programa
}