Cadastro de aluno
Publicado por Alberto Guimarães Viana 22/08/2006
[ Hits: 15.512 ]
Programa feito para aula de estrutura de dados. Cadastra alunos, organiza-os em ordem alfabética e imprime na tela.
#include<stdio.h> #include<string.h> #define arq_dados "./fdados.dat" #define x 4 struct aluno { char nome[30]; float n1; float n2; float media; char sitreg[10]; }; typedef struct aluno reg; void incluir(reg *sa, FILE *fdados);//chamada da funcao void ordena(reg *sa, FILE *fdados); void aprovados(reg *sa,FILE *fdados); int main (void) { char resp; reg sa[x]; FILE *fdados=NULL;//definindo q o arquivo comeca sendo nulo //fdados=fopen(arq_dados, "r+b"); //abrindo o arquivo para leitura =r + binario=b //if(fdados==NULL) fdados=fopen(arq_dados, "w+b");//abrindo para leitura e escrita //FILE *fdados_ord; /* FILE *fdados_ord=NULL;//cria o arquivo fdados_ord fdados_ord=fopen(arq_dados_ord, "rb"); //abrindo o arquivo para leitura =r + binario=b if(fdados_ord==NULL) fdados_ord=fopen(arq_dados_ord, "w+b"); */ while(resp!='3') { system("cls"); printf("\n|-------Cadasto de Alunos-------|\n"); printf("1- Incluir Aluno \n"); printf("2- Imprime Lista Ordenada\n"); printf("3- Sair \n"); printf("Opcao: "); resp = getch(); switch(resp) { case '1': incluir(sa, fdados); //ordem de execucao a hierarquia do programa break; case '2': ordena(sa,fdados); aprovados(sa,fdados); break; } } } //funcao para incluir alunos void incluir(reg *sa, FILE *fdados) { float media=0; int i; system("cls"); for(i=0; i<x; i++) { system("cls"); printf("\n |----------Cadastro de Aluno----------|\n\n"); printf("\n Digite o nome do Aluno: "); scanf("%s",&sa[i].nome); printf("\n\n Digite a Nota 1: "); scanf("%f",&sa[i].n1); printf("\n Digite a Nota 2: "); scanf("%f",&sa[i].n2); //efetuando o calculo da media media = (sa[i].n1+sa[i].n2)/2; if(media>=6){ sa[i].media=media; strcpy(sa[i].sitreg, "Aprovado"); } else { sa[i].media=media; strcpy(sa[i].sitreg,"Reprovado"); } //fseek(fdados,0,SEEK_END); // posiciona o prompt no final do arquivo fwrite(&sa[i],sizeof(reg),1,fdados);// gravar //sizeof aloca dinamicamente a quantidade necessaria de byte } fclose(fdados); } //funcao de ordenacao dos dados informados void ordena(reg *sa, FILE *fdados) { reg aux;//cria um tipo auxiliar para fazer a ordenacao int i, j; fdados=fopen(arq_dados, "rb"); for(i=0; i<x; i++) { fread(&sa[i], sizeof(reg),1,fdados); } for(i=0;i<(x-1);i++){ for(j=i+1;j<(x); j++){ if(strcmp(sa[i].nome, sa[j].nome)>0)//compara o campo do 1 registro com o campo 1 do segundo registro. { aux=sa[i]; sa[i]=sa[j]; sa[j]=aux; } } } fclose(fdados); fdados=fopen(arq_dados, "w+b"); for(i=0;i<x;i++) { //fseek(fdados_ord,sizeof(sa),SEEK_END);//posiciona no fim do arquivo fwrite(&sa[i], sizeof(reg),1,fdados); //grava no arquivo } fclose(fdados); } //funcao imprime na tela os aprovados void aprovados(reg *sa,FILE *fdados) { int i; system("cls"); //cria o arquivo fdados_ord fdados=fopen(arq_dados, "rb"); printf("\n |----------------Listagem dos Aprovados----------------| \n\n"); for(i=0; i<x; i++) { fread(&sa[i], sizeof(reg),1,fdados); if (strcmp(sa[i].sitreg,"Aprovado")==0)//escreve todos os aprovados { printf("\n Nome: %s ",sa[i].nome); printf("\n Nota 1: %.2f ",sa[i].n1); printf("\n Nota 2: %.2f \n\n",sa[i].n2); printf("\n Media: %.2f \n",sa[i].media); printf("\n Situacao: %s \n\n",sa[i].sitreg); } } getch(); system("cls"); }
função de remoção em uma Arvore
Verificar se o e-mail é válido
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
Quero saber sobre os melhores aplicativos de office para usar em 2024 ... (2)
Queria saber se existe alguma forma de desistalar programa no ubuntu s... (3)
Toda vez que tento atualizar o clamav me deparo com erros ao atualizar... (0)