ExemploDeInsercaoSimplesTabela
Ir para navegação
Ir para pesquisar
- include <stdio.h>
- include <string.h>
- define TAM_NOME 25
- define TAM_TURMA 20
struct tipo_aluno {
char nome[TAM_NOME];
float nota_final;
};
struct tipo_aluno turma[TAM_TURMA];
/* protótipos de funções */
int inserir_aluno();
int encontrar_aluno (char *nome);
int remover_aluno();
int imprimir_turma();
int salvar_turma_arquivo();
int recuperar_turma_arquivo();
void iniciar_turma();
main()
{
int i;
/* tenta recuperar os dados de arquivo - caso não consiga, iniciar a tabela de alunos */
if (recuperar_turma_arquivo()==0) {
iniciar_turma();
}
imprimir_turma();
for(i=0;i<3;i++)
inserir_aluno();
imprimir_turma();
for(i=0;i<1;i++)
remover_aluno();
imprimir_turma();
for(i=0;i<1;i++)
inserir_aluno();
imprimir_turma();
salvar_turma_arquivo();
}
int inserir_aluno()
{
char aux[TAM_NOME];
int retorno = -1;
int i;
printf("Entre com o nome do aluno a ser inserido na turma\n");
scanf ("%s", aux);
if ( encontrar_aluno (aux) == -1) { /* aluno não existe */
/* encontrar local livre na tabela */
for (i=0;i<TAM_TURMA;i++) {
if (turma[i].nome[0]=='\0')
break;
}
if (i<TAM_TURMA){ /* existe posição livre */
strcpy(turma[i].nome, aux);
printf("Entre com a nota\n");
scanf ("%f", &turma[i].nota_final);
retorno = i;
}
} else
printf("aluno já existe\n");
}
int encontrar_aluno (char *nome)
{
int i;
int retorno = -1;
for (i=0;i<TAM_TURMA;i++) {
if (strcmp(nome, turma[i].nome)==0) {
retorno=i;
break;
}
}
return retorno;
}
int remover_aluno()
{
char aux[TAM_NOME];
int index;
int retorno = -1;
printf ("Entre com aluno a ser removido\n");
scanf ("%s", aux);
index = encontrar_aluno (aux);
if (index!=-1) {
turma[index].nome[0]='\0';
retorno = index;
}
return retorno;
}
int imprimir_turma()
{
int i;
for (i=0;i<TAM_TURMA;i++) {
if (turma[i].nome[0]!='\0')
printf("Nome aluno %s nota %f posicao %d\n", turma[i].nome, turma[i].nota_final, i);
}
}
int salvar_turma_arquivo()
{
}
int recuperar_turma_arquivo()
{
}
void iniciar_turma()
{
int i;
for (i=0;i<TAM_TURMA;i++)
turma[i].nome[0]='\0'; /* null string em todas as entradas */
}
</syntaxhighlight>