Ir ao conteúdo
  • Cadastre-se

Engenharia2020

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

Reputação

5
  1. Sem Problemas! Agradeço pela ajuda vou refazer o codigo aqui e caso tenha ou tra duvida eu volto Obrigado!
  2. Estava tentando acrecentar a parte de ordenação mas não sei no q estou errando, esta dando varios erros. adicionado 24 minutos depois antes de continuar,voltei para dar uma olhada no trabalho q ele passou acredito q 80% ja atende o que o professou pediu mas eu reparei q ele colocou na declaração. struct Banco { int numero_conta; char nome_cliente [30]; float saldo; Banco *prox; Banco *ant; (q parece ser uma dupla mesmo) q agora fiquei em duvida se vai condenar tudo q foi feito até agora estou colocando em anexo o exercício proposto para ver se a estrutura esta certa e qual deve ser modificava Trabalho de Algoritmos e Estrutura de Dados.pdf
  3. Vixi, entendi quase nada o q você falou kkkkk mesmo assim fico muito grato pela ajuda.
  4. beleza! sem problemas ja me ajudou bastante mesmo vou ver a respeito disso Muito Obrigado!
  5. E no caso de duplamente encadeada faz alguma diferença na ordenação?
  6. Entendi! Mas você acha melhor mudar toda a estrutura dele entao?
  7. Cara, nem acredito q você conseguiu me ajudar! Muito Obrigado de verdade!!! Outra duvida! como seria o caso de ordenação? se no caso apos cadastrados os clientes, eu querer selecionar o relatorio e ordenar por saldo de maior p/ o menos. seria direcionado os ponteiros?
  8. Ola! sim esta aqui #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> typedef struct lista{ int numero_conta; char nome_cliente[40]; float saldo; struct lista* prox; }Lista; //Declaração de funções. Lista* inserir_cadastros(Lista* primeiro); void listar_cadastros(Lista* primeiro); Lista* excluir_cadastros(Lista* primeiro); void alterar_cadastros(Lista* primeiro); main() { //Declaração de variáveis Lista *primeiro= NULL; char opcao; //Artifício para repetir o programa. while(opcao!='s') { //Menu de opções printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t CADASTRO DE CLIENTES");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); printf("\t %c----------%c\t\t\t\t ",201,187); printf("\t\t\t | MENU ");printf("|\t\t\t\t \n"); printf(" %c-----------%c----------%c------------%c \n",201,200,188,187); printf(" | <A> Nova Conta |\n"); printf(" |-----------------------------------|\n"); printf(" | <B> Relatorio |\n"); printf(" |-----------------------------------|\n"); printf(" | <C> Excluir cadastro |\n"); printf(" |-----------------------------------|\n"); printf(" | <D> Alterar cadastro |\n"); printf(" |-----------------------------------|\n"); printf(" | <S> Sair |\n"); printf(" %c-----------------------------------%c",200,188); printf("\n\n\n\n"); //Lendo a opcao do menu fflush(stdin); opcao= getch(); //Menu de opções switch(opcao) { case 'A': case 'a': //Inserindo a Conta. fflush(stdin); system("cls"); printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t NOVO CADASTRO ");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); primeiro= inserir_cadastros(primeiro); getch(); system("cls"); break; case 'B': case 'b': //Listando os Cadastros. system ("cls"); printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t CONTAS CADASTRADAS");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); listar_cadastros(primeiro); getch(); system("cls"); break; case 'C': case 'c': //Excluindo contas do cadastro. system ("cls"); printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t EXCLUIR CADASTROS");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); primeiro= excluir_cadastros(primeiro); getch(); system("cls"); break; case 'D': case 'd': //Alterando contas do cadastro. system ("cls"); printf(" %c----------------------------------------------------------------------------%c\n",201,187); printf(" | ");printf("\t\t\t ALTERAR CADASTRADOS");printf("\t\t\t |\n"); printf(" %c----------------------------------------------------------------------------%c\n",200,188); alterar_cadastros(primeiro); getch(); system("cls"); break; case 'S': case 's': //Artifício para sair do programa. opcao='s'; break; default: //Artifício que previne a situação de um usuário qualquer, digitar uma opcão inexistente no menu. system("cls"); break; } } } Lista* inserir_cadastros(Lista* primeiro); Lista cliente; Lista *atual= primeiro; char identificador= 'F'; //Lendo as informações do cliente. printf(" Numero da Conta: ",162); scanf("%u",&cliente.numero_conta);printf ("\n"); printf(" Nome: "); fflush (stdin); fgets(cliente.nome_cliente, 40, stdin); printf ("\n"); printf(" Saldo: ",162); scanf("%u",&cliente.saldo);printf ("\n"); //Verificando se o cadastro já existe. for(atual=primeiro; atual!=NULL; atual=atual->prox){ if(atual->numero_conta==cliente.numero_conta){ identificador= 'V'; break; } } if(identificador!='V' && (strlen(cliente.nome_cliente)!=1 && strlen(cliente.saldo)!=1)){ //Alocando os espaços e guardando as informações do cliente. Lista* NovoCliente=(Lista*) malloc (sizeof(Lista)); strcpy(NovoCliente->nome, cliente.nome_cliente); strcpy(NovoCliente->endereco, cliente.saldo); NovoCliente->numero_conta= cliente.numero_conta; NovoCliente->prox= primeiro; printf(" Cadastro realizado com sucesso."); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return NovoCliente; }else{ printf(" Cadastro invalido.",160); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return primeiro; } } void listar_cadastros(Lista* primeiro){ Lista* atual;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista. //Imprimindo os restaurantes da lista, e suas repectivas informações. for(atual= primeiro ; atual!= NULL; atual= atual->prox){ printf("\n Conta: ",162 ); printf("%u", atual->numero_conta); printf("\n Nome: "); printf("%s", atual->nome_cliente); printf("\n Saldo: ",135); printf("%s", atual->saldo); printf("\n\n"); } if(primeiro==NULL) printf(" Nenhum Cliente Cadastrado."); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); } Lista* excluir_cadastros(Lista* primeiro){ Lista *anterior= NULL;//Ponteiro para saber o elemento anterior ao elemento atual da lista. Lista *atual= primeiro;//Ponteiro para percorrer a lista sem perder o primeiro elemento da lista. int numero_conta=0; //Requisitando e lendo o código do cliente a ser excluído. printf(" Codigo do cliente a ser excluido: ", 162,161); fflush(stdin); scanf("%u",&numero_conta); //Procurando o cliente na lista. while(atual!= NULL && atual->numero_conta!=numero_conta){ anterior= atual; atual= atual->prox; } //Mensagem caso o cliente não seja encontrado. if(atual==NULL){ printf("\n Cliente não encontrado.", 198); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return primeiro; } //Excluindo o primeiro cliente da lista. if(anterior==NULL){ printf("\n Conteudo excluido com sucesso.", 163,161); primeiro= atual->prox; //Excluindo um cliente do meio da lista. }else{ printf("\n Conteudo excluido com sucesso.", 163,161); anterior->prox= atual->prox; } //Desalocando o espaço da memória. free(atual); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return primeiro; } //Função para alterar cadastros. void alterar_cadastros(Lista* primeiro);{ int numero_contasub; char nome_substituto[40], float saldo_sub;; Lista* atual=primeiro; //Requisitando e lendo o código do cliente a ser alterado. printf(" Codigo do cliente a ser alterado: ", 162); fflush(stdin); scanf("%u",&numero_contasub); //Procurando o cliente na lista. while(atual!= NULL && atual->numero_contasub!=numero_contasub){ atual= atual->prox; } //Alterando os dados do cliente. if(atual!=NULL){ printf("\n Novo nome: "); fflush (stdin); fgets(nome_substituto, 40, stdin); strcpy(atual->nome,nome_substituto); printf("\n Novo Saldo: ",135); fflush (stdin); fgets(saldo_sub, 40, stdin); printf ("\n"); strcpy(atual->endereco,saldo_sub); printf(" Dados alterados com sucesso."); }else{ printf("\n Cliente nao encontrado.",198); } printf("\n\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); }
  9. Olá sou novo aqui! Preciso de uma ajuda com um exercicio Tenho dois exercicios de programação em C sobre LISTA ENCADEADA, mas tem um exercicio que não estou conseguindo terminar. agradeço quem puder me ajudar *Exercicio Um banco precisa com frequência inserir, remover, ordenar, exibir e zerar seus clientes de acordo com algum critério. Neste trabalho, você deverá implementar um sistema que permita ao funcionário do banco ordenar os clientes do banco pelo seu saldo (em ordem decrescente) ou pelo número da conta do cliente (por ordem crescente). Os dados dos clientes a serem inseridos devem conter para cada cliente, o seu nome, número da conta (número inteiro positivo de até 5 dígitos) e saldo. deve conter os seguintes menus: - Inserção, - Remoção, - Ordenação, - Exibir Lista, - Zerar Lista struct Banco { int numero_conta; char nome_cliente [30]; float saldo; Banco *prox; Banco *ant; }; typedef struct Banco node;

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!