Ir ao conteúdo
  • Cadastre-se

notas de alunos


o.aprendiz

Posts recomendados

Olá pessoal.

Criei um programa em C que lê o nome e nota de um aluno, no final mostra se ele foi aprovado ou reprovado, depois passa para outro aluno. Mas só consigo lêr o nome do primeiro aluno. Os próximos ele só lê a nota e e frequência.

Como faço para lêr outro nome de aluno. Segue a baixo o programa. estou utilizando o codebloks para fazer o programa.



#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void resultadofinal();
void informações();
void opções();

float nota1, nota2, media, frequencia;
int presenca, aulas;
char nome[100];
char sair[2];
int x=0;


void main()
{

while(x!=1)
{
informações(); // chamada da função "informações()".

media=((float)nota1+nota2)/2; // calculo da média das notas.

frequencia=((float)presenca*100)/aulas; // calculo da frequência do aluno

resultadofinal(); // chamada da função que apresenta o resultado final.

opções();

system("cls");
}
}

void resultadofinal() // Função que apresenta o resultado final.
{
printf("\n\n\t\tA MEDIA FINAL DO ALUNO E: %.2f", media);
printf("\n\n\t\tA FREQUENCIA DE %s FOI DE: %.2f%%", nome, frequencia);

if(media>=6&&frequencia>=75)
{
printf("\n\n\t\tO ALUNO %s APROVADO\n\n\n\n\n\n\n\n", nome);
}
else
{
printf("\n\n\t\tO ALUNO %s REPROVADO\n\n\n\n\n\n\n\n", nome);
}
}

void informações() // função que lê as informações para calculos.
{
printf("\n\n\t\tENTRE COM O NOME DO ALUNO: ");
gets(nome); // Lê nome.

printf("\n\n\t\tPRIMEIRA NOTA: ");
scanf("%f", &nota1);
printf("\n\n\t\tSEGUNDA NOTA: ");
scanf("%f", &nota2);

printf("\n\n\t\tQUANTIDADE DE AULAS MINISTRADAS: ");
scanf("%d", &aulas);

printf("\n\n\t\tPRESENCA DO ALUNO: ");
scanf("%d", &presenca);
Sleep(1000); // deley de 1 segundo.
system("cls"); // limpa a tela.
}

void opções()
{
while(1) // LOOP INFINITO.
{
printf("\n\n\n\t\t- PARA CONTINUAR NO PROGRAMA PRECIONE ENTER.\n\n\t\t- PARA SAIR DO PROGRAMA PRECIONE ESC.");

sair[0]=getche(); // ATRIBUINDO A LEITURA DE UMA TECLA A VARIÁVEL "sair[0]".
system("cls"); // LIMPA A TELA.

if(sair[0]==13) // SE A TECLA LIDA FOR ENTER (TECLA "13" EM DECIMAL DA TABELA ASCII)
{ // SALTA PARA FORA DAS CONDIÇÕES E CONTINUA RODANDO O RPOGRAMA.
break;
}
else if(sair[0]==27) // SE A TECLA LIDA FOR ESC (TECLA 27 EM DECIMAL DA TABELA ASCII),
{ // ATRIBUI 1 A X E SAI DO PROGRAMA.
int y;
for(y=3; y>=1; y--)
{
printf("\n\n\n\n\n\n\n\n\t%d seg para sair...\n\n\n\n\n\n\n", y);
Sleep(1000); // DELAY DE 1 SEGUNDOS.
system("cls"); // LIMPA A TELA.
}
x=1;
system("cls"); // LIMAPA A TELA.
break;
}
else // SE FOR PRECIONADO OUTRA TECLA DIFERENTE DE ENTER OU ESC,
{ // NÃO FAZ NADA. AGUARDA SER PRECIONADO ENTER OU ESC.
continue;
}
}
}

Agradesço desde já pela ajuda.

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!