Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Fabio Ramalho

Problema ao remover item de lista

Recommended Posts

Olá pessoal!!

 

Preciso de uma ajuda !

Fiz um código para cadastrar produtos e pedidos. Ambos cadastros eu coloco em LISTAS : produto LISTA e pedido LISTA2.

 

Eu fiz uma função para remoção do cadastro em uma posição dada, porém ele não está funcionando, acredito que está retornando 0.

 

Abaixo segue o código. Se alguém puder me dar uma luz ! hehe

 

Abraços!

 

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

typedef struct cadastro

    int cod;
    char nome_agulha[30];
    int serie;
    int qtde;
    float preco;
    int forca_mola;
} agulha;

typedef struct pedido
{
    int cod;
    char nome_pedido[30];
    int qtde;
    float preco_pedido;
}venda;

typedef struct LISTA {
    int quant;
    agulha dados[30];
}LISTA;

typedef struct LISTA2 {
    int quant;
    venda dados[30];
}LISTA2;

void entrada_cadastro(LISTA *temp);
void entrada_pedido(LISTA2 *temp);
//void remove_cadastro(LISTA *temp);
int insereInicioL(LISTA *temp, agulha dado);
int insereInicioL2(LISTA2 *temp, venda dado);
int removePosL(LISTA *temp, agulha *dado, int pos);
int removePosL2(LISTA2 *temp, venda *dado, int pos);


int main()
{
    LISTA finfo;
    LISTA2 linfo;
    venda info2;
    agulha info;
    int pos;

    finfo.quant = 0;

    do
    {
        printf("-----------------SUPRATEC LTDA-----------------\n");
        printf("-----CADASTRO INTERNO DE AGULHAS DE TESTE------\n\n");
        printf("DIGITE: \n");
        printf(" 1)INSERIR CADASTRO \n 2)INSERIR PEDIDO\n 3)REMOVER CADASTRO\n 4)REMOVER PEDIDO 5)VER ENTREGAS\n 6)FECHAR SISTEMA\n");
        switch (_getch())
        {
        case'1': entrada_cadastro(&finfo); break;
        case'2': entrada_pedido(&linfo); break;
        case'3': printf("Posicao: ");
                    rewind(stdin);
                    scanf_s("%d", &pos);
                    if (removePosL(&finfo, &info, pos))
                    printf("Cadastro removido com sucesso!");
                    else
                    printf("Erro ao remover\n");
                    break;
                    default: printf("erro\n");
        case'4': printf("Posicao: ");
            rewind(stdin);
            scanf_s("%d", &pos);
            if (removePosL2(&linfo, &info2, pos))
                printf("Pedido removido com sucesso!");
            else
                printf("Erro ao remover\n");
            break;
        }
        _getch();
        system("cls");
    } while (1);

    system("pause");
    return 0;
}

    

    void entrada_cadastro(LISTA *temp)
    {
        int i = 0;
        agulha info[30];
        int op=0;
        int cont=0;
        LISTA p;
        
        do {
            system("cls");
            printf("Escreva a familia \n");
            rewind(stdin);
            fgets(info.nome_agulha, 30, stdin);
            printf("Digite a serie (100, 75 ou 50) \n");
            scanf_s("%d", &info.serie);
            printf("Digite a quantidade: \n");
            scanf_s("%d", &info.qtde);
            printf("Digite o preco: \n");
            scanf_s("%f", &info.preco);
            cont++;
            cont = info.cod;
            if (insereInicioL(&p, info))
                printf("Cadastro realizado com sucesso!\n");
            else
                printf("Erro ao registrar cadastro!\n\n");
            printf("Deseja cadastrar mais um item(1-SIM 2-NAO)?\n");
            scanf_s("%d", &op);
            system("cls");
        } while (op == 1);
    }
    void entrada_pedido(LISTA2 *temp)
    {
        int i=0;
        venda info[30];
        int op = 0;
        int cont = 0;
        LISTA2 p;
        do 
        {
            system("cls");
            printf("Digite o nome da agulha:\n");
            rewind(stdin);
            fgets(info.nome_pedido, 30, stdin);
            printf("Digite a quantidade:\n");
            scanf_s("%d", &info.qtde);
            printf("Digite o valor:\n");
            scanf_s("%f", &info.preco_pedido);
            cont++;
            cont = info.cod;
            if (insereInicioL2(&p, info))
                printf("Pedido inserido na fila de entrega!\n");
            else
                printf("Erro ao registrar pedido!\n\n");
            printf("Deseja cadastrar mais um pedido? (1) SIM (2) NAO\n");
            scanf_s("%d", &op);
            system("cls");
        }   while (op == 1);
    }
    int vaziaL(LISTA *temp)
    {
        if (temp == NULL)
            return -1;
        if (temp->quant == 0)
            return 1;
        else
            return 0;
    }

    int insereInicioL(LISTA *temp, agulha dado)
    {
        if (temp == NULL)
            return 0;
        int aux;
        for (aux = temp->quant; aux > 0; aux--)
        {
            temp->dados[aux+1] = temp->dados[aux];
            temp->dados[aux] = temp->dados[aux - 1];
        }
        temp->dados[0] = dado;
        temp->quant++;
        return 1;
    }

    int insereInicioL2(LISTA2 *temp, venda dado)
    {
        if (temp == NULL)
            return 0;
        int aux;
        for (aux = temp->quant; aux > 0; aux--)
        {
            temp->dados[aux] = temp->dados[aux - 1];
        }
        temp->dados[0] = dado;
        temp->quant++;
        return 1;

    }

    int removePosL(LISTA *temp, agulha *dado, int pos)
    {
        pos--;
        if (temp == NULL)
            return 0;
        if (vaziaL(temp))
            return 0;
        if (pos < 1 || temp->quant <pos)
            return 0;

        *dado = temp->dados[pos];
        int aux;
        for (aux = pos; aux < temp->quant; aux++)
        {
            temp->dados[aux] = temp->dados[aux + 1];
        }

        temp->quant--;
        return 1;
        
    }

    int removePosL2(LISTA2 *temp, venda *dado, int pos)
    {
        pos--;
        if (temp == NULL)
            return 0;
        if (pos < 1 || temp->quant <pos)
            return 0;

        *dado = temp->dados[pos];
        int aux;
        for (aux = pos; aux < temp->quant; aux++)
        {
            temp->dados[aux] = temp->dados[aux + 1];
        }

        temp->quant--;
        return 1;
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×