• Matéria: Informática
  • Autor: marcusvinny020901
  • Perguntado 5 anos atrás

Implementar um controle de notas em C utilizando arquivos. O controle deve armazenar até 100 alunos e possuir as seguintes funcionalidades:

1 – Incluir Aluno

2 – Excluir Aluno

3 – Pesquisar Aluno

4 – Lançar Notas do Aluno

5 – Listar Notas do Aluno

6 – Sair

O controle deve armazenar as seguintes informações de cada aluno:

- Matrícula

- Nome

- eMail

- Turma

- Nota1

- Nota2

OBS: Não permitir gravar um aluno sem matrícula e/ou nome. Caso o aluno tenha as 02 notas lançadas, calcular automaticamente a média ao Listar as Notas, como também a situação do aluno (“Aprovado”, “Reprovado”), considerando média 7,0.


marcusvinny020901: thelastmailforall
marcusvinny020901: g mail
marcusvinny020901: '-'
marcusvinny020901: conseguiu n, man?
micknick3: Vou fazer agora pra voce! Até a noite posto aqui.
micknick3: o Código está imenso a pagina aqui não aceita mais de 5000 caracteres na hora de postar a resposta. Vou te mandar completo no seu gmail. Abraço
micknick3: Lhe mandei o codigo completo pelo seu Gmail
marcusvinny020901: aa
marcusvinny020901: entedi
marcusvinny020901: obrigado

Respostas

respondido por: micknick3
1

Resposta:

#include <stdio.h>

#include <stdlib.h>

//declarando a estrutura

typedef struct  

{

float matricula;

char nome[50];

char email[60];

float turma;

float nota1;

float nota2;

float total;

 

}estudante;

//Funcoes

int pesquisa(estudante std[], char id[], int itemCont);

void limpar(estudante std[], int deleteItem);

void mostrar();

//FUncoes para menu

void mostrarMenu()

{

printf("============================================================\n");

printf(" MENU \n");

printf("==================================================\n");

printf(" 1.Adiciona um Estudante ao Arquivo\n");

printf(" 2.Exclui um Estudante do Arquivo\n");

printf(" 3.Atualiza um Estudante no Arquivo\n");

printf(" 4.Visualiza todos os Estudantes do Arquivo\n");

printf(" 5.Calcula a média dos Estudantes\n");

printf(" 6.Mostrar a maior nota\n");

printf(" 7.Mostrar a menor nota\n");

printf(" 8.Pesquisa um Estudante pelo ID\n");

printf(" 9.Ordenação pelo TOTAL\n");

}

void add_estudante(estudante std[], int *itemCont)

{

again:

 

printf("\nEntre com o ID:");

scanf("%s",&std[*itemCont].matricula);

if(search(std,std[*itemCont].matricula,*itemCont)!=-1){

printf("Este ID não existe\n");

 

goto again;

 

printf("Entre com o nome do Estudante:");

scanf("%s",&std[*itemCont].nome);

printf("Entre com o Email:");scanf("%s",&std[*itemCont].email);

printf("Entre com a matricula");scanf("%f",&std[*itemCont].matricula);

printf("Entre com a Turma:");scanf("%f",&std[*itemCont].turma);

printf("Entre com a Nota1:");scanf("%f",&std[*itemCont].nota1);

printf("Entre com a Nota2:");scanf("%f",&std[*itemCont].nota2);

 

++(*itemCont);

}

int pesquisa(estudante std[], char id[], int itemCont){

int localizar =-1,i;

for (i = 0; i < itemCont && localizar==-1; i++)

{

if (strcmp(std[i].matricula,id)==0) localizar=i;

else localizar=-1 ;

}

return localizar;

}

void mostrarTudo(estudante st[], int itemCont){

int i=0;

mostrar();

while(i<itemCont){

if(std[i].nome !=""){

printf("%-5s",std[i].matricula);

printf("%-17s",std[i].nome);

printf("%-5c",std[i].email);

printf("%-6.1f",std[i].nota1);

printf("%-6.1f",std[i].nota2);

printf("%-4.1f",std[i].total);

printf("\n");

}

i=i+1;

}

}

void mostrar(){

printf("ID NOME EMAIL NOTA1 NOTA2  TOTAL \n");

printf("=================================\n");

}

void deletar(estudante std[], int *itemCont){

char id[10];

int index,i;

if (*itemCont > 0)

{

printf("Entre com o ID:");

scanf("%s",id);

index = pesquisar(std, id,*itemCont);

if ((index!=-1) && (*itemCont != 0))

{

if (index == (*itemCont-1)) //delete the last record

{

limpar(std, index);

--(*itemCont);

printf("O registro foi limpo.\n");

}

else //delete the first or middle record

{

for (i = index; i < *itemCont-1; i++)

{

std[i] = std[i + 1];

limpar(std, *itemCont);

--(*itemCont) ;

}

}

}

else printf("O registro não existe.Verifique o ID e tente novamente.\n");

}

else printf("Sem registro para deletar\n");

}

void limpar(estudante std[],int index)

{

//strcpy(std[index].nome,"");

//strcpy(std[index].email,"");

std[index].nota1 = 0;

std[index].nota2 = 0;

std[index].total = 0;

}

Explicação:

Coloquei tudo dentro de um array. Ta ai!


marcusvinny020901: tem alguns errinhos ainda
Perguntas similares