Enviado em 30/05/2015 - 19:11h
// Versão 3
#include <stdio.h>
#include <stdlib.h>
#define MAX_ALUNOS 21
struct TipoAluno {
char nome[21];
float media;
// float matricula;
};
// protótipos das funções
float solicitaNota(void);
float calculaMedia(float nota1, float nota2);
void exibeAluno(struct TipoAluno aluno);
void finalizaPrograma(void);
float matricula;
int num;
// programa principal com as chamadas das funções criadas
int main(void)
{
// As variáveis criadas aqui dentro (chamadas de variáveis locais) não são
// visíveis em outras funções. Variáveis declaradas fora de qualquer função
// são chamadas de variáveis globais.
// Se houver necessidade de acessar uma variável dentro de outra função
// deve-se passa-la como argumento como acontece com: calculaMedia e exibeAluno
{
for(; ;)
{
printf("\t\t\t\tCADASTRO DE ALUNOS\n");
printf("1 - Para Inserir dados dos Alunos\n");
printf("2 - Para Mostrar dados dos Alunos\n");
printf("0 - Sair\n");
scanf("%d",&num);
switch(num)
{
case 1: inserir();
break;
case 2: mostrar();
break;
case 0: exit(0);
default: puts("TENTE NOVAMENTE");
}
}
}
getchar();
}
void inserir (void)
{
struct TipoAluno alunos[21];
float nota1, nota2;
int i;
matricula=9999;
for(i=0; i < MAX_ALUNOS; i++) {
// printf("\nMatricula: ");
matricula=matricula+1;
//i=i;
fflush(stdin);
//scanf("%f", &matricula);
printf("\nMatricula: %.0f", matricula);
fflush(stdin);
printf("\nEntre com o nome do aluno: ");
fflush(stdin);
gets(alunos[i].nome);
printf("Entre com a primeira nota (0 a 10): ");
nota1 = solicitaNota();
printf("Entre com a segunda nota (0 a 10): ");
nota2 = solicitaNota();
alunos[i].media = calculaMedia(nota1, nota2);
gets(calculaMedia);
}
printf("\n\nExibicao dos dados:");
for(i=0; i < MAX_ALUNOS; i++)
mostrar(alunos[i]);
finalizaPrograma();
getche();
}
// Funções:
// solicita uma nota exigindo que a mesma esteja na faixa válida: 0 a 10
float solicitaNota(void) {
// a variável nota tem escopo local, ou seja ela só existe dentro desta função
float nota;
do {
scanf("%f", ¬a);
if(nota < 0 || nota > 10) {
printf("Erro, valor deve ser de 0 a 10 \n");
}
}while(nota < 0 || nota > 10);
return nota;
}
// calcula a média a partir de duas notas e pontos extras
// não permitindo que a média ultrapasse de 10
float calculaMedia(float nota1, float nota2) {
// a variável media tem escopo local, ou seja ela só existe dentro desta função
float media = ((nota1*0.4) + (nota2*0.6));
printf("Valor da Media: %.1f", media);
// não permite que o retorno seja maior que 10
if(media >= 6)
printf("\nAprovado \n");
else
printf("\nReprovado \n");;
}
// exibe os dados de uma aluno passado como argumento
void mostrar(struct TipoAluno aluno) {
printf("\n\nAluno: %s", aluno.nome);
printf("\nMedia: %.1f", aluno.media);
}
// função sem retorno, contendo comandos para finalizar o programa
void finalizaPrograma(void) {
printf("\n\n\n");
system("pause");
}
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI