Ir para conteúdo
Fórum Script Brasil
  • 0

Duvidas na hora de Remover um nome da Lista


ProSkater

Pergunta

Olá galera...

eu estou com duvidas na hora de implementar a função void remover ()... eu não estou conseguindo remover com a base no RA que o usuario informa para o programa... Meu professor comentou que tem que usar a mesma função de buscar um elemento... mas n estou conseguindo remover

se vocês podrem me ajugar agradeço desde já

#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(){

char remover[10];

int i;

int x;

getchar();

printf("Remover RA: ");

gets (remover);

for (i=0; i < ListaAlunos.tamUtilizado; i++){

if ( strcmp(remover, 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 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\n", 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;

}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...