Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jerome82

Usando arquivo para calcular a media de notas de alunos

Recommended Posts

Ola pessoal gostaria de uma ajuda em trabalho de escola, eu estava querendo elaborar um cadastro das notas dos alunos de diversas turmas que consiga ler os dados de entrada através de um arquivo e gerar as seguintes estatísticas no console:

 Para cada turma:

 Exibir a média de todos os alunos, considerando três notas por aluno;

 Exibir a matrícula dos alunos que obtiveram a melhor e a pior média.

 Os códigos das turmas de melhor e pior rendimento: o rendimento de uma turma é definido pela média das médias de seus alunos.


Arquivo de Entrada

Considere para tal que o arquivo de entrada nomeado “dados.txt” será construído da seguinte forma:


<número de turmas>

<código da turma 1>

<número de alunos da turma 1>

<matrícula do aluno 1>

<nota 1 do aluno 1>

<nota 2 do aluno 1>

<nota 3 do aluno 1>

<matrícula do aluno 2>

<nota 1 do aluno 2>

<nota 2 do aluno 2>

<nota 3 do aluno 2>


<matrícula do aluno n>

<nota 1 do aluno n>

<nota 2 do aluno n>

<nota 3 do aluno n>

<código da turma 2>

<número de alunos da turma 2>

<matrícula do aluno 1>

<nota 1 do aluno 1>

<nota 2 do aluno 1>

<nota 3 do aluno 1>

<matrícula do aluno 2>

<nota 1 do aluno 2>

<nota 2 do aluno 2>

<nota 3 do aluno 2>


<matrícula do aluno n>

<nota 1 do aluno n>

<nota 2 do aluno n>

<nota 3 do aluno n>


<código da turma m>

<número de alunos da turma m>

<matrícula do aluno 1>

<nota 1 do aluno 1>

<nota 2 do aluno 1>

<nota 3 do aluno 1>

<matrícula do aluno 2>

<nota 1 do aluno 2>

<nota 2 do aluno 2>

<nota 3 do aluno 2>


<matrícula do aluno n>

<nota 1 do aluno n>

<nota 2 do aluno n>

<nota 3 do aluno n>


Exemplo de Arquivo de Entrada

2

100

3

2010101

1.2

5.0

9.0

2010102

7.0

3.5

8.0

2010130

0.5

2.0

10.0

350

1

2012100

9.0

8.0

7.5


Parâmetros

Considerando que cada turma apresente no máximo 50 alunos e que o número máximo de turmas é 20.


Agradeço quem puder ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, e o que você já fez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, e o que você já fez?

Eu ja fiz a leitura do arquivo txt para dentro do programa, porem estou com dificuldades em utilizar esses dados para fazer o restante da programação, pois se fosse somente para o usuario digitar as informaçoes seria facil de implementar. Fiz ate agora somente a parte da leitura dos dados, porem nao consigo utiliza-los na implementação no restante do problema.

#include <stdio.h>
#include <stdlib.h>
int main (void){
FILE *file;
file = fopen("dados.txt","r");
if(file==NULL){
printf("nao foi possivel abrir o arquivo\n");
getchar();
exit(0);
}
char turma[20];
while(fgets(turma,20,file)!=NULL){
printf("%s\n",turma);
}
fclose(file);
system("pause");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha fiço um sisteminha parecido ai com o seu que quando o usuário digitar o a opção certa o sistema entra em ação.

Onde o usuário poderá informar o seu texto qualquer e o mesmo será salvo em um arquivo .txt .

E depois se o usuário quiser tanto visualizar no programa só ele escolher a opção do texto e o mesmo aparecerá na tela do programa.

 

 

 

Olha ai como que eu fiz :

 

Obs. Fiço em C/C++

Mais a lógica é que importa :

 

-----------------------------------

 

#include<iostream>
#include<cstdlib>
#include<ostream>
#include <conio.h>
 
using namespace std;
 
//Função Gravação do Texto
 
float opcao1(void){
FILE*arquivo;
char turma[20]; //cria o vetor texto para receber o texto digitado pelo usuario
int i; //para controlar o laco for
 
arquivo=fopen("dados.txt","w"); //especifica o nome do arquivo 
if(!arquivo) //verifica se o arquivo esta escrito corretamente
{
cout<<"Erro na Abertura do Arquivo";    //exibi a mensagem de erro caso encontre algum erro na abertura do arquivo
exit(1);
}
cout<<"Entre com o texto a ser gravada no arquivo:\n"; 
gets(turma); 
 
 
gets(turma);
for(i=0;turma[i];i++){ 
putc(turma[i],arquivo); 
}
fclose(arquivo);
}
 
//Função Leituta de Texto
float opcao2(void){
FILE*arquivo;
char caractere;
arquivo=fopen("dados.txt","r"); //leitura do texto ja salvo
if(!arquivo)
{
cout<<"Erro na Abertura do Arquivo";
 
exit(1);
}
caractere = getc(arquivo);
while(caractere!=EOF){
printf("%c",caractere); 
caractere = getc(arquivo);
}
fclose(arquivo);
cout<<"\n\n\n";
system("pause");
}
 
//funcao principal (main)
 
int main(){
system("color f9"); 
int i,opcao; 
 
cout<<"----------------------------------------\n\n\n";
cout<<"----------------------------------------\n\n\n";
cout<<"Escolha uma das opcoes abaixo\n\n"; 
cout<<"1: Para gravacao de texto\n";
cout<<"2: Para leitura de texto\n";
cout<<"---------------------------------------\n";
cout<<"\nOpcao: ";
 
scanf("%d",&opcao);
 
switch(opcao){ 
case 1:       
opcao1(); 
cout<<"\nTexto salvo !"<<endl;
 
break;
case 2:     
opcao2(); 
break;
 
default :
 
   system("cls"); // limpa a tela 
   main(); // chama a funcao principal
   }        
getch(); 
return 0;
}
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.