Mudanças entre as edições de "Equipe3-2015-1"
Linha 88: | Linha 88: | ||
int umidade; | int umidade; | ||
struct TLocalidade *prox; | struct TLocalidade *prox; | ||
− | }; | + | }*head,*tail,*aux; |
struct Tcadastro(int codigo, char nome[40], float temp){ | struct Tcadastro(int codigo, char nome[40], float temp){ | ||
Linha 124: | Linha 124: | ||
printf("\n Entre com o codigo da cidade que deseja remover\n"); | printf("\n Entre com o codigo da cidade que deseja remover\n"); | ||
scanf("%d", p); | scanf("%d", p); | ||
− | struct | + | struct TLocalidade *aux, *apaga; |
aux=head; | aux=head; | ||
− | while(aux-> | + | while(aux->prox->codigo != p) |
− | aux = aux-> | + | aux = aux->prox; |
− | apaga = aux-> | + | apaga = aux->prox; |
− | aux-> | + | aux->prox = apaga->prox; |
free(apaga); | free(apaga); | ||
} | } | ||
}; | }; | ||
struct Timprimir{ | 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 | + | struct Tlerarquivo{ |
}; | }; | ||
Edição das 22h40min de 21 de junho de 2015
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 p;
printf("\n Entre com o codigo da cidade que deseja remover\n");
scanf("%d", p);
struct TLocalidade *aux, *apaga;
aux=head;
while(aux->prox->codigo != p)
aux = aux->prox;
apaga = aux->prox;
aux->prox = apaga->prox;
free(apaga);
}
};
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 Tlerarquivo{
};
void main(){
int opcao;
printf("Entre com uma opção\n 1-Cadastro\n 2-Remover cadastro\n 3-Imprimir\n 4-Ler Arquivo\n 5-Sair\n");
scanf ("%d",&opcao);
switch(opcao) {
case 1:
Tcadastro;
break;
case 2:
Tremover;
break;
case 3:
Timprimir;
break;
case 4:
Tlerarquivo;
break;
case 5:
printf("Saindo");
break;
default:
printf("opcao default\n");
break;
}
}
<< | Equipe3-2015-1 |
---|