Prev Up Next
Go backward to Fermat: desenvolvimento de um programa
Go up to Alguns exercícios a exemplos dados nas aulas teóricas
Go forward to Formatação

Estruturas

Relativamente a uma turma de alunos existe informação para cada aluno de: nome, telefone e ano em que nasceu. Implemente um programa que, repetidamente, pergunte o nome e indique o telefone e a idade (caso esse aluno exista).
  // -----------------------------------------------------------------------------
  /* Uma turma de alunos contem informacao para cada aluno de
     Nome, telefone, ano em que nasceu.
     Pede-se um programa que, repetidamente, pergunte o nome e indique 
     o telefone e a idade.
  Decisoes:
     Variaveis globais e locais
     Estrutura em funcoes
     Que fazer quando o nome nao existe? Que deve a funcao retornar?
  */

  #define ALUNOS    3
  #define MAXL      100
  #define END       "q"
  #define NOT_FOUND (-1)

  typedef struct aluno
  { char *nome;
    char *telefone;
    int ano;
  } ALUNO;

  ALUNO turma[ALUNOS]=
  { {"Rui",      "224567890", 1970},
    {"Ana",      "228888888", 1977},
    {"Caramelo", "210000000", 1900}
  };

  int procura(char *);

  main(){
    int i;
    char s[MAXL];
    while(1){
      printf("Nome do aluno ( s para terminar)? ",END);
      scanf(" s",s);
      if(strcmp(s,END)==0)
        break;
      i=procura(s);
      if(i==NOT_FOUND)
        printf("Esse aluno nao existe\n");
      else
         printf("Telefone= %s,   Idade= %d\n",turma[i].telefone, 
                                            2000-turma[i].ano);
    }
  }

  int procura(char *n){
    int i=0;
    for(i=0;i<ALUNOS;i++)
      if(strcmp(n,turma[i].nome)==0)
        return(i);
    return(NOT_FOUND);
  }

  /*  Resultados
      Nome do aluno (q para terminar)? Rui
      Telefone=224567890,   Idade=30
      Nome do aluno (q para terminar)? Ana
      Telefone=228888888,   Idade=23
      Nome do aluno (q para terminar)? Jeremias
      Esse aluno nao existe
      Nome do aluno (q para terminar)? Rui
      Telefone=224567890,   Idade=30
      Nome do aluno (q para terminar)? q
  */


Prev Up Next