Mudanças entre as edições de "Equipe3-2015-1"
Linha 120: | Linha 120: | ||
}; | }; | ||
struct Tremover{ | 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{ | struct Timprimir{ | ||
Linha 139: | Linha 143: | ||
} | } | ||
}; | }; | ||
− | struct | + | struct Tlerarquivos{ |
+ | |||
}; | }; | ||
Linha 145: | Linha 150: | ||
int opcao; | int opcao; | ||
− | printf("Entre com uma opção\n 1-Cadastro\n 2-Remover cadastro\n 3-Imprimir\n 4-Ler | + | 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); | scanf ("%d",&opcao); | ||
switch(opcao) { | switch(opcao) { | ||
Linha 157: | Linha 162: | ||
Timprimir; | Timprimir; | ||
break; | break; | ||
− | case 4: | + | case 4: |
− | + | Tlerarquivos; | |
break; | break; | ||
case 5: | case 5: |
Edição das 22h53min 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 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 |
---|