ProSkater Postado Janeiro 22, 2009 Denunciar Share Postado Janeiro 22, 2009 E ae galera beleza???Sou novo aqui no forum mais to com duvidas na implematação da função struct...se vocês poderem me ajudar agradeço#include <stdio.h>#include <stdlib.h>struct Alunos { char RA[10]; //armazena o RA dos aluno char Nome[255]; //armazena o nome de um aluno int Idade; //armazena a idade de um aluno};struct Lista { int tamMax; //armazena a quantidade de elementos que esta lista pode armazenar int tamUtilizado; //armazena a quantidade de elementos atualmente na lista struct Alunos* Aluno; //Ponteiro para um vetor de Alunos, onde estarao os dados propriamente ditos;};void CriarLista( struct Lista *ListaAlunos, int n ){ printf("Funcao CriarLista() chamada\n"); (*ListaAlunos).tamMax = n; (*ListaAlunos).tamUtilizado = 0; (*ListaAlunos).Aluno = (Alunos *) malloc( n * sizeof( Alunos ) );}void DestroiLista( struct Lista *ListaAlunos ){ printf("Funcao DestroiLista() chamada\n"); (*ListaAlunos).tamMax = 0; (*ListaAlunos).tamUtilizado = 0; free ( (*ListaAlunos).Aluno );}void ExibirLista(){ printf("Funcao ExibirLista() chamada\n"); }void Inserir(struct Lista *ListaAlunos){ printf("Funcao Inserir() chamada\n"); printf("Informe o Nome do Aluno: "); scanf ("%c",&(*ListaAlunos).Aluno[0].Nome);}void Remover(){ printf("Funcao Remover() chamada\n");}void ExibirElemento(){ printf("Funcao ExibirElemento() chamada\n");}void ExibirPosicao(){ printf("Funcao ExibirPosicao() chamada\n");}void Esvaziar(){}void ListaVazia( struct Lista *ListaAlunos ){ printf("Funcao ListaVazia() chamada\n"); if( (*ListaAlunos).tamUtilizado == 0 ){ printf("Lista vazia\n"); } else{ printf("Lista não esta vazia\n"); }}void ListaCheia(){ printf("Funcao ListaCheia() chamada\n");}int ProcessaMenu(){ int opcao=0; printf("\n\n"); printf("-------Editor de Listas-------\n\n"); printf(" 1 - Exibir Lista\n"); printf(" 2 - Inserir na Lista\n"); printf(" 3 - Remover da Lista\n"); printf(" 4 - Exibir Elemento\n"); printf(" 5 - Exibir Posicao\n"); printf(" 6 - Esvaziar\n"); printf(" 7 - Lista Vazia\n"); printf(" 8 - Lista Cheia\n"); printf(" 0 - Sair\n\n"); printf("Digite sua opcao: "); scanf("%d", &opcao); return opcao;}void FinalizaPrograma(){ printf("Finalizando o programa\n");}void ProcessaEntrada( int opcaoMenu, struct Lista *ListaAlunos ){ switch( opcaoMenu ){ case 0: FinalizaPrograma(); break; case 1: ExibirLista(); break; case 2: Inserir(); break; case 3: Remover(); break; case 4: ExibirElemento(); break; case 5: ExibirPosicao(); break; case 6: Esvaziar(); break; case 7: ListaVazia (ListaAlunos); break; default: printf("Opcao Invalida\n"); break; } getchar(); getchar();}void LimpaTela(){ system("cls");}int main( int argc, char* argv[] ){ char opcaoMenu=0; struct Lista ListaAlunos; CriarLista( &ListaAlunos, 10 ); do{ LimpaTela(); opcaoMenu = ProcessaMenu(); printf("Opcao selecionada: %d\n", opcaoMenu); ProcessaEntrada( opcaoMenu, &ListaAlunos ); }while (opcaoMenu != 0); DestroiLista( &ListaAlunos ); return 0;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 OSJunior Postado Janeiro 24, 2009 Denunciar Share Postado Janeiro 24, 2009 Qual a dúvida? ?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Weslley Barboza Postado Janeiro 29, 2009 Denunciar Share Postado Janeiro 29, 2009 Conheço esse programa.......rsBom, manda a dúvida aí, que posso ajudar.Implementação de qual struct e tal. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ProSkater Postado Janeiro 29, 2009 Autor Denunciar Share Postado Janeiro 29, 2009 Então eu to fazendo sem ponteros... e to com duvidas na hora de removerso que tem que remover por o RA informado pelo usuario#include <stdio.h>#include <stdlib.h>#include <iostream>struct Alunos { char RA[10]; //armazena o RA dos aluno char Nome[255]; //armazena o nome de um aluno int Idade; //armazena a idade de um aluno};struct Lista { int tamMax; //armazena a quantidade de elementos que esta lista pode armazenar int tamUtilizado; //armazena a quantidade de elementos atualmente na lista struct Alunos Aluno[10]; //Ponteiro para um vetor de Alunos, onde estarao os dados propriamente ditos;};struct Lista ListaAlunos;void CriarLista(){ ListaAlunos.tamMax = 3; ListaAlunos.tamUtilizado = 0;}void DestroiLista(){ ListaAlunos.tamMax = 0; ListaAlunos.tamUtilizado = 0;}void ExibirLista(){ int x; for (x=0;x<ListaAlunos.tamUtilizado;x++){ printf("RA: %s Nome: %s Idade: %d\n",ListaAlunos.Aluno[x].RA, ListaAlunos.Aluno[x].Nome, ListaAlunos.Aluno[x].Idade);}}void Inserir(){ printf("Funcao Inserir() chamada\n"); if(ListaAlunos.tamUtilizado < ListaAlunos.tamMax){ getchar(); printf("Informe o RA: "); gets(ListaAlunos.Aluno[ListaAlunos.tamUtilizado].RA); printf("Informe o Nome: "); gets(ListaAlunos.Aluno[ListaAlunos.tamUtilizado].Nome); printf("Informe a Idade: "); scanf ("%d", &ListaAlunos.Aluno[ListaAlunos.tamUtilizado].Idade); ListaAlunos.tamUtilizado++; }}void Remover(){void ExibirElemento(){ char busca[10]; int i;getchar(); printf("Informe o RA: "); gets (busca); for (i=0; i < ListaAlunos.tamUtilizado; i++){ if ( strcmp(busca, ListaAlunos.Aluno.RA)==0){ printf("RA: %s\n", ListaAlunos.Aluno.RA); printf("Nome: %s\n", ListaAlunos.Aluno.Nome); printf("Idade: %d", ListaAlunos.Aluno.Idade);} }}void ExibirPosicao(){ int pos; printf("Digite a Posicao: "); scanf("%d", &pos); if (pos <= ListaAlunos.tamUtilizado){ printf("RA: %s\n", ListaAlunos.Aluno[pos-1].RA); printf("Nome: %s\n", ListaAlunos.Aluno[pos-1].Nome); printf("Idade: %d", ListaAlunos.Aluno[pos-1].Idade);}else printf("Posicao inexistente");}void Esvaziar(){ ListaAlunos.tamUtilizado = 0; printf("Lista Vazia");}void ListaVazia(){ printf("Funcao ListaVazia() chamada\n"); if( ListaAlunos.tamUtilizado == -1 ){ printf("Lista vazia\n"); } else{ printf("Lista não esta vazia\n"); }}void ListaCheia(){ if (ListaAlunos.tamUtilizado >= ListaAlunos.tamMax){ printf("A Lista esta Cheia"); } else printf("A Lista não esta Cheia");{ }}int ProcessaMenu(){ int opcao=0; printf("======================MENU=======================\n\n"); printf(" 1 - Exibir Lista\n"); printf(" 2 - Inserir Lista\n"); printf(" 3 - Remover da Lista\n"); printf(" 4 - Exibir Elemento\n"); printf(" 5 - Exibir Posicao\n"); printf(" 6 - Esvaziar Lista\n"); printf(" 7 - Verificar se Lista esta Vazia\n"); printf(" 8 - Verificar se Lista esta Cheia\n"); printf(" 0 - Sair\n\n"); printf("=================================================\n"); printf("Digite sua opcao: "); scanf("%d", &opcao); return opcao;}void FinalizaPrograma(){ printf("Finalizando o programa\n");}void ProcessaEntrada( int opcaoMenu ){ switch( opcaoMenu ){ case 0: FinalizaPrograma(); break; case 1: ExibirLista(); break; case 2: Inserir(); break; case 3: Remover(); break; case 4: ExibirElemento(); break; case 5: ExibirPosicao(); break; case 6: Esvaziar(); break; case 7: ListaVazia(); break; case 8: ListaCheia(); break; default: printf("Opcao Invalida\n"); break; } getchar(); getchar();}void LimpaTela(){ system("cls");}int main( int argc, char* argv[] ){ int opcaoMenu=0; CriarLista(); do{ LimpaTela(); //Limpa a tela antes de processar o menu opcaoMenu = ProcessaMenu(); //Imprime o menu na tela e le a entrada do usuario printf("Opcao selecionada: %d\n", opcaoMenu); //Imprime na tela a opcao selecionada ProcessaEntrada( opcaoMenu ); //Processa a opcao escolhida pelo usuario }while (opcaoMenu != 0); DestroiLista(); return 0;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ProSkater
E ae galera beleza???
Sou novo aqui no forum mais to com duvidas na implematação da função struct...
se vocês poderem me ajudar agradeço
#include <stdio.h>
#include <stdlib.h>
struct Alunos {
char RA[10]; //armazena o RA dos aluno
char Nome[255]; //armazena o nome de um aluno
int Idade; //armazena a idade de um aluno
};
struct Lista {
int tamMax; //armazena a quantidade de elementos que esta lista pode armazenar
int tamUtilizado; //armazena a quantidade de elementos atualmente na lista
struct Alunos* Aluno; //Ponteiro para um vetor de Alunos, onde estarao os dados propriamente ditos;
};
void CriarLista( struct Lista *ListaAlunos, int n ){
printf("Funcao CriarLista() chamada\n");
(*ListaAlunos).tamMax = n;
(*ListaAlunos).tamUtilizado = 0;
(*ListaAlunos).Aluno = (Alunos *) malloc( n * sizeof( Alunos ) );
}
void DestroiLista( struct Lista *ListaAlunos ){
printf("Funcao DestroiLista() chamada\n");
(*ListaAlunos).tamMax = 0;
(*ListaAlunos).tamUtilizado = 0;
free ( (*ListaAlunos).Aluno );
}
void ExibirLista(){
printf("Funcao ExibirLista() chamada\n");
}
void Remover(){
printf("Funcao Remover() chamada\n");
}
void ExibirElemento(){
printf("Funcao ExibirElemento() chamada\n");
}
void ExibirPosicao(){
printf("Funcao ExibirPosicao() chamada\n");
}
void Esvaziar(){
}
void ListaVazia( struct Lista *ListaAlunos ){
printf("Funcao ListaVazia() chamada\n");
if( (*ListaAlunos).tamUtilizado == 0 ){
printf("Lista vazia\n");
}
else{
printf("Lista não esta vazia\n");
}
}
void ListaCheia(){
printf("Funcao ListaCheia() chamada\n");
}
int ProcessaMenu(){
int opcao=0;
printf("\n\n");
printf("-------Editor de Listas-------\n\n");
printf(" 1 - Exibir Lista\n");
printf(" 2 - Inserir na Lista\n");
printf(" 3 - Remover da Lista\n");
printf(" 4 - Exibir Elemento\n");
printf(" 5 - Exibir Posicao\n");
printf(" 6 - Esvaziar\n");
printf(" 7 - Lista Vazia\n");
printf(" 8 - Lista Cheia\n");
printf(" 0 - Sair\n\n");
printf("Digite sua opcao: ");
scanf("%d", &opcao);
return opcao;
}
void FinalizaPrograma(){
printf("Finalizando o programa\n");
}
void ProcessaEntrada( int opcaoMenu, struct Lista *ListaAlunos ){
switch( opcaoMenu ){
case 0:
FinalizaPrograma();
break;
case 1:
ExibirLista();
break;
case 2:
Inserir();
break;
case 3:
Remover();
break;
case 4:
ExibirElemento();
break;
case 5:
ExibirPosicao();
break;
case 6:
Esvaziar();
break;
case 7:
ListaVazia (ListaAlunos);
break;
default:
printf("Opcao Invalida\n");
break;
}
getchar();
getchar();
}
void LimpaTela(){
system("cls");
}
int main( int argc, char* argv[] ){
char opcaoMenu=0;
struct Lista ListaAlunos;
CriarLista( &ListaAlunos, 10 );
do{
LimpaTela();
opcaoMenu = ProcessaMenu();
printf("Opcao selecionada: %d\n", opcaoMenu);
ProcessaEntrada( opcaoMenu, &ListaAlunos );
}while (opcaoMenu != 0);
DestroiLista( &ListaAlunos );
return 0;
}
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.