Equipe3-2015-1
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
- Comando swith
- Lista encadeada
- Ponteiros
- Alocação Dinâmica de Memória
- 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 |
---|
include <stdio.h>
- include <stdlib.h>
- include <string.h>
/*Estrutura para o arquivo*/ typedef struct TLocalidade localidade;
struct TLocalidade{
int codigo; char nome[40]; float temp; int umidade; localidade *prox;
}*tail;
void Tcadastro(){
localidade *cadastro; cadastro =(localidade *) malloc(sizeof(localidade)); printf("\n Insira o codigo desejado para a cidade\n"); gets(cadastro->codigo); printf("\n Insira o nome da cidade\n"); gets(cadastro->nome[40]); printf("\n Insira a temperatura da cidade\n"); gets(cadastro->temp); printf("\n Insira a umidade\n"); gets(cadastro->umidade); };
void Tremover(){
int cdg; localidade *pa,*pp; pa=tail; pp=tail->prox; scanf("%s", cdg); while(pp!=NULL && strcmp(pp->codigo,cdg)!=0){ pa=pp; pp=pp->prox; } if (pp!=NULL){ pa->prox=pp->prox; free(pp); }
};
void Timprimir(){
localidade *p; for(p=tail;p!=NULL;p=p->prox){ printf("\n %d %s %d %f\n\t",p->codigo, p->nome, p->temp, p->umidade); }
}; void Tlerarquivos(){
};
void main(){
char opcao; do { 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; }
} while(opcao!="FIM"); }