GURILINO 0 Denunciar post Postado Junho 23, 2007 POR GENTILEZA, ESTOU COM UM PROBLEMAÇO, MEU PROFESSOR DEU UM TRABALHO E VALE 6 PTS NA MÉDIA, NÃO POSSO REPROVAR POIS SOU DO PRO UNI E NÃO POSSO PERDER MINHA BOLSA.... PRECISO TERMINAR ESSA AGENDA, MAS TO SEM CABEÇA PRA ISSO E TENHO QUE ENTRAGAR SEGUNDA À NOITE,QUE PUDER ME AJUDAR, MANDE UM MAIL PARA MIM (odonto@licitamax.com.br ou odontomk@yahoo.com.br) segue problema: ela deverá possibilitar opção de consulta ordenada, busca avançada (só do nome), alocar e liberar a memoria, de acordo com descrição das funções abaixo. Desde já agradeço. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif #include <stdio.h>#include <stdlib.h>#include <conio.h>typedef struct contato{ char nome[40]; char mail[40]; int fone;}CONTATO;void incluir();void excluir();void alterar();void consultar();void pesquisar();void aloca( CONTATO **pContato, int *piEntradas );//void alterando((pContato+1)->nome,iEntradas);void qs_ordena(CONTATO pContato[], int left, int right );void ordena( CONTATO pContato[], int iEntradas );int main(int argc, char *argv[]){ CONTATO *pContato int op=0,iEntradas=0; char x; pContato = (CONTATO *) malloc(sizeof(CONTATO)); if (pContato == NULL) { printf("** Erro: Mem%cria Insuficiente **", 162); exit(1); } do { fflush(stdin); printf("\n\t\t\t@@@@@@@@@@@@@@@@@@@@@@\n\n"); printf("\n\t\t\t@ 1 - Incluir @"); printf("\n\t\t\t@ 2 - Excluir @"); printf("\n\t\t\t@ 3 - Alterar @"); printf("\n\t\t\t@ 4 - Consultar @"); printf("\n\t\t\t@ 5 - Pesquisar @"); printf("\n\t\t\t@ 9 - Sair @\n\n"); printf("\n\t\t\t@@@@@@@@@@@@@@@@@@@@@@"); printf("\n\n ESCOLHA UMA OPCAO: "); scanf("%d", &op); switch (op) { case 1 : incluir(); break; case 2 : excluir(); break; case 3 : alterar(); break; case 4 : consultar(); break; case 5 : pesquisar(); break; case 9 : exit(1); break; default : printf("\n\nOPCAO INVALIDA\n\n"); } system("PAUSE"); }while(1); return 0;}void incluir(){ int op=1, iEntradas=0; do { fflush(stdin); aloca(&pContato, &iEntrada); printf("\n\t*****inclusão*****\n"); printf("\n\nEntre Com Nome: "); gets((pContato+iEntradas]->nome); printf("\nEntre Com E-mail: "); gets(pContato[iEntradas].mail); printf((*(pContato+iEntradas)).mail"\nEntre Com Telefone: "); scanf("%d", &pContato[iEntradas].fone); printf("\n\nCodigo do Contato: %d\n\n", (iEntradas+1)); printf("Deseja incluir mais um nome? S = Sim Nao = qquer tecla : "); scanf("%d", &x); if(x == 's' || x =='S') { iEntradas++; op=1; } else { op=9; } CONTATO = (struct contato *) realloc(CONTATO, (i+2) * sizeof(struct contato)); if (!CONTATO) { printf("** Erro: Memoria Insuficiente **"); exit(1); } }while (op);}void excluir(){}void alterar(){}void consultar(){ int iEntradas; for (iEntradas; = 0; iEntradas <= 2; iEntradas++) { printf("\n\nContato %d", iEntradas+1); printf("\n%s", pContato[iEntradas].nome); /*printf("\n%s", pContato[iEntradas].mail); printf("\n%d\n\n", pContato[iEntradas].fone);*/ }}void pesquisar(){ int iEntrada; char nomebusca[80]; fflush(stdin); printf("Entre com o nome que deseja buscar: "); gets(nomebusca); for (iEntrada = 0; iEntrada <= 2; iEntrada++) { if (!strcmp(nomebusca, pContato[iEntrada].nome)) { printf("\n\n%s", pContato[iEntrada].nome); printf("\n%s", pContato[iEntrada].mail); printf("\n%d\n\n", pContato[iEntrada].fone); } } }void aloca( CONTATO **pContato, int *piEntradas ){ (*pContato) = (CONTATO *)(realloc(*pContato, (*piEntradas+1)*sizeof(CONTATO))); if( *pContato == NULL ) { printf("\nErro de alocacao de memoria"); exit(1); }}void ordena( CONTATO pContato[], int iEntradas ){ qs_ordena(pContato, 0, iEntradas-1 );}void qs_ordena(CONTATO pContato[], int left, int right ){ register int i, j; char * x; CONTATO t; i = left; j = right; x = pContato[(left+right)/2].nome; do { while(strcmp(pContato[i].nome,x)<0 && i<right) i++; while(strcmp(pContato[j].nome,x)>0 && j>left) j --; if( i<=j ) { t = pContato[i]; pContato[i]=pContato[j]; pContato[j]=t; i++; j--; } } while( i<=j ); if( left < j ) qs_ordena(pContato, left, i); if( i<right) qs_ordena(pContato, i, right );}//void ordenar() Compartilhar este post Link para o post Compartilhar em outros sites
Tiago Cardoso 1 Denunciar post Postado Junho 29, 2007 Cara vou te mover para C/C++,, ok? Compartilhar este post Link para o post Compartilhar em outros sites