AP1

De MediaWiki do Campus São José
Revisão de 13h04min de 18 de junho de 2015 por Douglas (discussão | contribs) (Avaliação Prática 1)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Avaliação Prática 1

#include <stdio.h>

struct TEndereco{
	char logradouro[40];
	int numero;
	char cep[10]; // "88100-000'\0'"
};

struct TCadastro_Aluno{
	char matr[7]; // "151XXX'\0'"
	char nome[40];
	struct TEndereco endereco;
	int frequencia; // de 0 a 100.
	float nota[3];
} Aluno[10] = {
		{"151001","Joselito dos Santos",{"Rua das Flores",130,"88123-456"},73,{5.5,6,8}},
		{"151002","Marivalda da Silva",{"Rua dos Peixes",850,"88123-000"},100,{4,7,3}},
		{"151003","Orvalino Souza",{"Av da Floresta",650,"88123-999"},95,{10,6.5,9}},
		{"151004","Amelia Fermino",{"Trav das Cabras",15,"88123-555"},93,{8,7,6}},
		{"151005","Jose Genevaldo",{"Rua das Abelhas",27,"88123-444"},56,{5.5,6,4.5}}, 
		{"151006","Joselito dos Santos",{"Rua das Flores",210,"88123-456"},80,{5.5,9,8}},
		{"151007","Joseane da Silva",{"Rua dos Peixes",50,"88123-000"},100,{4.5,7,3}},
		{"151008","Liamare da Cruz",{"Av da Floresta",67,"88123-999"},75,{10,6.5,9}},
		{"151009","Irdevam Felicio",{"Trav das Cabras",35,"88123-555"},74,{8,7.5,6}},
		{"151010","Genevaldo Jesus",{"Rua das Abelhas",150,"88123-444"},60,{5.5,6,4.5}} };
		

/* retorna a média de um unico aluno cuja a estrutura foi passada por parâmetro */
float media_nota(struct TCadastro_Aluno aux){

	float media;
	media=(aux.nota[0]+aux.nota[1]+aux.nota[2])/3.0;
	return media;
}

/* se media >= 7 e frequencia >= 75 ..
   retorna: 1 para aprovado e 0 para reprovado */
int resultado(struct TCadastro_Aluno aux){

	
	if(media_nota(aux) >= 7 && aux.frequencia >=75)
		return 1;
	else
		return 0;

}

/* Listar todos os alunos com matricula, nome, media, CEP, frequencia e resultado*/
void listar_alunos(){

	int i,tipo;
	char res[2][20]={"Aprovado.","Reprovado."};
	

	printf("\n\nLista geral de alunos:");
	for(i=0;i<10;i++){
	    if(resultado(Aluno[i]))
		tipo=0;
	    else
		tipo=1;
	    printf("\n %s \t %s \t %s \t %0.1f \t %d%% \t %s",
		Aluno[i].matr,
		Aluno[i].nome,
		Aluno[i].endereco.cep,
		media_nota(Aluno[i]),
		Aluno[i].frequencia,
		res[tipo]);
	}
}

/* 
	1) Entrar com um numero de matricula para saber quem é o aluno (nome), a media e a frequencia.
	2) E se o aluno foi Aprovado ou Reprovado.
	3) Listar toda a turma exibindo: matricula, nome, CEP, média, frequência e resultado (Aprovado ou Reprovado). 
*/
void main(){
  while(1){
	int i,freq=0;	
	char matr[7];
	float media=0;

	printf("\n\nDigite o número de matrícula para saber a média e a frequencia: ");
	scanf("%s",matr);
	
	for(i=0;i<10;i++){
       		if(strcmp(matr,Aluno[i].matr)==0){
			media=media_nota(Aluno[i]);
			freq=Aluno[i].frequencia;
			break;
		}
	}
	if(i<10){
		printf("\nNome: %s",Aluno[i].nome);
		printf("\nMédia: %0.1f\tFrequência: %d %%",media,freq);
		if(resultado(Aluno[i]))
			printf("\tAprovado!\n");
		else
			printf("\tReprovado!\n");
	} else
		printf("\nMatrícula não encontrada!\n");
	
	listar_alunos();
  }
}