Equipe3-2015-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Integrantes

DANIEL CABRAL CORREA

PABLO FIDELIS DIAS

PAULO HENRIQUE HORST BIANCHIN


Descrição da atividade principal

Um sistema de aquisição recebe, a cada final do dia, um arquivo de dados contendo informações sobre a temperatura (°C) e a umidade relativa do ar (%) de determinadas localidades do auto Amazonas. Implemente um sistema que importe esses arquivos e atualize os dados de temperatura e umidade de todas as localidades cadastradas. No entanto, é preciso ter um cadastro de localidades com seus respectivos códigos. A cada dia, ou seja, a cada arquivo lido, é preciso apresentar na tela a amplitude térmica da região, indicando temperaturas mínimas, médias e máximas . Portanto é preciso cadastrar novas localidades, remover localidades e imprimir a lista dessas localidades. O sistema deve conter um menu de opções para realizar as atividades, em loop contínuo e com opção para sair.

Descrição da atividade específica

Fazer uso
  1. Comando swith
  2. Lista encadeada
  3. Ponteiros
  4. Alocação Dinâmica de Memória
  5. Funções para tratamento de arquivo


Exemplo da estrutura (encadeada)
struct TLocalidade{
  int codigo;
  char nome[40];
  float temp_media;
  float temp_media;
  struct TLocalidade *prox;
};
Exemplo de arquivo (localidades.dat)
cat localidades.dat
100 XINGU 23.5 80
200 SOLIMOES 24.8 81
300 IAPOQUE 32.0 75
400 MADEIRA 33.9 98
500 BELLOMONTE 40.5 90
Exemplo dos dados coletados (dados1.dat)
cat dados1.dat
100 29.0 89
200 25.3 88
300 35.1 90
400 35.3 100
500 32.0 100
Exemplo dos dados coletados (dodos2.dat)
cat dodos2.dat
100 39.4 100
200 35.3 78
300 26.9 70
400 33.5 71
500 41.2 93

[...]

Atividades

Distribuição

Aula 6, 9, 19, 20, 22;

Desenvolvimento

Cadastro/Remover - Lista ligada (*pTLocalidade) - Malloc()

Média de temperatura - (Temp1+Temp2+....+TempN)/N = Temp média

Organizar lista da temperatura maior p/ menor.

Conclusão

Código fonte

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*Estrutura para o arquivo*/
struct TLocalidade{
  int codigo;
  char nome[40];
  float temp;
  int umidade;
  struct TLocalidade *prox;
}*head,*tail,*aux;

struct Tcadastro (int codigo, char nome[40], float temp);{
  TLocalidade cadastro*();
  int cdg;
  char nme[40];
  cadastro = (TLocalidade*) malloc(sizeof(TLocalidade));
  printf("\n Insira o codigo desejado para a cidade\n");
  scanf("%s",cdg);
  if(strcmp(cdg,TLocalidade.codigo)==0){
  printf("Este codigo ja esta sendo utilizado");
  break;
  }
  else{
  strcpy(cdg,cadastro->codigo);
  }
  printf("\n Insira o nome da cidade\n");
  scanf("%s",nme);
  if(strcmp(nme,TLocalidade.codigo)==0){
  printf("Este nome ja esta sendo utilizado");
  break;
  }
  else{
  strcpy(nme,cadastro->nome);
  }
  printf("\n Insira a temperatura da cidade\n");
  scanf("%s",tmp);
  printf("\n Insira a umidade\n");
  scanf("%s",cadastro->umidade);
  free()
  };
struct Tremover{
  int cdg;
  TLocalidade *pa,*pp;
  pa=tail;
  pp=tail->proximo;
  scanf("%s", cdg);
    
  while(pp!=NULL && strcmp(pp->codigo,cdg)!=0){
  pa=pp;
  pp=pp->proximo;
  }
    
  if (pp!=NULL){
  pa->proximo=pp->proximo;
  free(pp);
  }
};
struct Timprimir{
   TLocalidade *p;
   for(p=tail;p!=NULL;p=p->prox){
   printf("\n %d %s %d %f\n\t",p->código, p->nome, p->temp, p->umidade);
   }
};
struct Tlerarquivos{
   
};

void main(){

  int opcao;
  printf("Entre com uma opção\n 1-Cadastro\n 2-Remover cadastro\n 3-Imprimir\n 4-Ler Arquivos 5-Sair\n");
  scanf ("%d",&opcao);
  switch(opcao) {
  case 1:
          Tcadastro;
          break; 
  case 2:
          Tremover;
          break;
  case 3:
          Timprimir;
          break; 
  case 4: 
          Tlerarquivos;
          break;
  case 5:
          printf("Saindo");
          break;
  default:
          printf("opcao default\n");
          break;    
  }

}



<< Equipe3-2015-1