Correia Facul

1. Correia Facul

paulo jorge
paulojorge

(usa Ubuntu)

Enviado em 02/12/2011 - 11:12h

Minha professora passou este trabalho em C
http://homepages.dcc.ufmg.br/~chaimo/cursos/AEDSII/TP1.pdf
Alguém conhece alguém que já implementou isso por q eu não to conseguindo
o que fiz ate agora foi:
dei um print pra ver os endereços que estão alguns dados.....
se alguém poder me ajudar quem sabe role até uma grana!


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

// string nome
typedef char string[30];

typedef struct no{
int idAmigos;
struct no *prox;
}ListaAmigos;

typedef struct nodo{

int idUsuario;
string nome;
ListaAmigos idDaAmizade;
struct nodo *proxO;

}TipoOrkut;




//Cria a lista do tipo Orkut
TipoOrkut* criaListaOrkut()
{
return NULL;
}
//Cria a lista do tipo Amigo
ListaAmigos* criaListaAmigos()
{
return NULL;
}
// Insere no inicio da lista
TipoOrkut* insereNoInicioOrkut( TipoOrkut* lista, int id )
{
// ponteiro para alocar
TipoOrkut* p;
// string de nome
string nomeUser;
printf("Endereco da lista eh %p\n", p );

p = (TipoOrkut*)malloc(sizeof(TipoOrkut)); // alocando memoria p/um novo no

printf("O dado que ira entrar sera alocado no endereco %p\n", p );
// verificando se existe memoria para alocar
if( p == NULL )
{
puts("Desculpe estamos sem memoria");
getchar();
exit(0);
}

// ponteiro aponta para a memoria que iremos guardar o id que recebemos
p->idUsuario = id;
// ponteiro aponta para a memoria que iremos guardar a string que recebemos
printf("Digite seu Nome ");
gets(nomeUser);
strcpy( p->nome, nomeUser );
// ponteiro anda para o vizinho
p->proxO = lista;

return p;
}

// cria relação entre usuarios
int pesqNomes( TipoOrkut* lista, int tipo )
{
TipoOrkut* p;
p = lista;
string pesNome;
char vt[][31]={"Digite o nome do solicitante: ","Digite o nome do amigo: "};


printf("%s",vt[tipo]); gets( pesNome );



while( p!= NULL )
{
if( strcmp( p->nome, pesNome ) == 0 )
return p->idUsuario;

p = p->proxO;
}

return -1;
}

ListaAmigos* criaRelacao( TipoOrkut* listaO, ListaAmigos* listaA, int id1, int id2 )
{
TipoOrkut* p;
ListaAmigos* a;

p = listaO;
a = listaA;

while( p!= NULL )
{
if( p->idUsuario == id1 )
{
a = (ListaAmigos*)malloc(sizeof(ListaAmigos));
if( a == NULL )
{
puts("Desculpe estamos sem memoria");
getchar();
exit(0);
}
p->idDaAmizade.idAmigos = id2;
printf("%s eh amigo de %d\n", p->nome, p->idDaAmizade.idAmigos );
a->prox = listaA;
return a;
}

p = p->proxO;
}

}

// exibe lista
void exibeLista( TipoOrkut* lo, ListaAmigos* la )
{
TipoOrkut* p;
p = lo;


while( p!= NULL ){
printf("\n cod %d - user - %s ",p->idUsuario, p->nome);
p = p->proxO;
}
}


main()
{
TipoOrkut* listaDoOrkut;
ListaAmigos* listaDeAmigos;

listaDoOrkut = criaListaOrkut(); // criando a lista vazia
listaDeAmigos = criaListaAmigos();// criando a lista vazia
int sair = 1, op, id = 0; // id dos usuarios do orkut
int idDoSolicitado, idDoSolicitante;


do{
printf("\n\n1- cadastrar 2 - pedido de amizade 3 - listar 0 - sair ");
scanf("%d", &op );
fflush(stdin);
switch( op )
{

case 1 : listaDoOrkut = insereNoInicioOrkut( listaDoOrkut, id++ ); break;
case 2 :
idDoSolicitante = pesqNomes( listaDoOrkut, 0);

if( idDoSolicitante < 0 )
printf("\n\nNome do solicitado nao encontrado\n\n");
else{
idDoSolicitado = pesqNomes( listaDoOrkut, 1 );
if( idDoSolicitado < 0 )
printf("\n\nNome do amigo nao encontrado\n\n");
else{
listaDeAmigos = criaRelacao( listaDoOrkut, listaDeAmigos, idDoSolicitante,idDoSolicitado );
listaDeAmigos = criaRelacao( listaDoOrkut, listaDeAmigos, idDoSolicitado,idDoSolicitante );

}



}
break;
case 3 :
printf("\n\n");
exibeLista( listaDoOrkut,listaDeAmigos );
printf("\n\n");
break;
case 4 :
//listaAmizades( listaDoOrkut,listaDeAmigos );
break;

case 0 : sair = 0;
}







}while( sair );



}


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts