Ir para conteúdo
Fórum Script Brasil

RobsonSantos

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre RobsonSantos

RobsonSantos's Achievements

0

Reputação

  1. Estou me baseando nesse código, já fiz algumas alterações #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct list { int codcli, codprod, quant; char nome[40]; char endereco[40]; char telefone [11]; char nasc[10]; struct list *anterior; struct list *proximo; }; typedef struct list Lista; //Funçao que insere no final da lista. void inserirFim(Lista **paramLista, int x, char parNome[], char parEndereco[], char parTelefone[], char parNasc[], int y, int z) { Lista *nList;//criando ponteiro nova lista. nList=(Lista*)malloc(sizeof(Lista));//alocando o espaço em memória e usando cast. nList->codcli = x; //atribuindo valor para n nova lista. strcpy(nList->nome,parNome); strcpy(nList->endereco,parEndereco); strcpy(nList->telefone,parTelefone); strcpy(nList->nasc,parNasc); nList->codprod = y; nList->quant = z; nList->anterior = NULL;// apontando para inicio da lista nList->proximo = NULL;// apontando para fim da lista if(*paramLista == NULL) {//verifica se é o final da fila *paramLista = nList;//se for insere a nova lista no final }else { Lista *listaAux; //senao cria uma lista auxiliar listaAux = *paramLista; //coloca a lista atual na lista auxiliar while(listaAux->proximo != NULL){ //e vai percorrendo a lista ate encontrar o final ou seja NULL listaAux = listaAux->proximo; //enquato não acha o final ela fica colocando "as estruturas listas" na lista temporaria }//obviamente uma hora ela vai chegar no final da lista ou seja nesta linha listaAux->proximo = nList;//como ele já esta no final da fila ele so adiciona a nova lista nList->anterior = listaAux;//guarda o endereço da informação anterior } } void recebe(Lista **paramLista) { int codcli, codprod, quant; char nome[40]; char endereco[40]; char telefone [11]; char nasc[10]; fflush(stdin); printf("Codigo do Cliente: "); scanf("%d",&codcli); fflush(stdin); printf("Nome do Cliente: "); gets(nome); printf("Endereco: "); gets(endereco); printf("Telefone: "); gets(telefone); printf("Data de Nascimento: "); gets(nasc); fflush(stdin); printf("Codigo do Produto: "); scanf("%d",&codprod); printf("Quantidade do Produto: "); scanf("%d",&quant); inserirFim(paramLista,codcli,nome,endereco,telefone,nasc,codprod,quant); } //Esta funçao imprime toda a lista /*void imprimirLista(Lista * paramList) { Lista *listaAux; //cria uma lista auxiliar system("cls");//limpa a tela if (paramList == NULL) return; printf("\nImprimindo a Lista - Comecando do inicio\n"); while(paramList != NULL)//enquanto não é o final da lista leia e imprima o conteudo { printf("%d", paramList->dado);//imprimindo o valor listaAux = paramList; //apontando a lista a lista anterior paramList = paramList->proximo; //apontando a lista a proxima lista printf("\n"); } printf("\nImprimindo a Lista - Comecando do fim\n"); paramList = listaAux; while(paramList != NULL)//enquanto não é o final da lista leia e imprima o conteudo { printf("%d", paramList->dado);//imprimindo o valor paramList = paramList->anterior; //apontando a lista a lista anterior printf("\n"); } printf("\n"); } */ void removerCliente(Lista **paramLista){ if(*paramLista == NULL)//verirfica se a lista esta vazia printf("\nLista Vazia!\n\n"); else {//senão tiver ele cria uma lista auxiliar novamente Lista *auxiliar; auxiliar = *paramLista;//coloca a lista atual dentro da auxiliar *paramLista = (*paramLista)->proximo;//pega a lista e converte para *paramLista if (*paramLista !=NULL) (*paramLista)->anterior=auxiliar->anterior; free(*paramLista);// a função free libera a memoria printf("\nCliente Removido com Sucesso!\n"); } } void removerProduto(Lista **paramLista){ if(*paramLista == NULL)//verirfica se a lista esta vazia printf("\nLista Vazia!\n\n"); else {//senão tiver ele cria uma lista auxiliar novamente Lista *auxiliar; auxiliar = *paramLista;//coloca a lista atual dentro da auxiliar *paramLista = (*paramLista)->proximo;//pega a lista e converte para *paramLista if (*paramLista !=NULL) (*paramLista)->anterior=auxiliar->anterior; free(*paramLista);// a função free libera a memoria printf("\nProduto Removido com Sucesso!\n"); } } int cont=0; //inicio do programa main() { int op=0;//controla a opçao escolida pelo usuario Lista *minhaLista;// cria um ponteiro do tipo lista minhaLista = NULL;//Seta ele com o valor NULL while(op!=4) { system("cls"); printf("\nESCOLHA UMA OPCAO\n"); printf("\n1 - Cadastrar Cliente\n2 - Remover Cliente\n3 - Remover produto do Cliente\n4 - Busca pelo nome do Cliente\n5 - Busca pelo código do Cliente\n6 - Busca dos Clientes pelo código do produto\n7 - Saida\n\nOPCAO: "); scanf("%d",&op); // inserir if(op==1) { system("cls"); recebe(&minhaLista); system("pause"); } //remover else if(op==2) { removerCliente(&minhaLista); system("pause"); //imprime a lista } else if(op==3) { system("pause"); } } }
  2. Sistema para a empresa ELETROCARO – Filial 4º Semestre A empresa ELETROCARO – Filial 4º Semestre resolveu informatizar o cadastro de seus clientes. Para que isto aconteça, á empresa solicitou aos alunos da Uninove que desenvolvessem um programa em C. Para desenvolver esse programa, a empresa exigiu certos critérios, como: - O programa deve ocupar pouco espaço na memória; - O programa deve ter uma opção para armazenar os seguintes dados: o código do cliente, nome, endereço, telefone, data de nascimento, código do produto e quantidade de cada produto que o cliente costuma comprar. É importante destacar que não pode haver dois ou mais clientes com o mesmo código e/ou dois ou mais produtos com o mesmo código. - O programa deve ter uma opção para remover um cliente ou remover algum produto do cliente. É importante destacar que não é possível remover um dado inválido ou se não há nada cadastrado. - O programa deve ter opções de busca pelo nome e pelo código do cliente; Caso não seja encontrado o dado, o usuário deve ser informado; - O programa deve ter uma opção que mostre todos os dados dos clientes na tela; - O programa deve ter uma opção que busque todos os dados de todos os clientes que compram um determinado produto, ou seja, buscar todos os clientes pelo código do produto; - O usuário deverá ter a liberdade de escolher as opções do menu quantas vezes ele quiser, ou seja, o programa só será finalizado quando o usuário escolher a opção de saída: Exemplo do menu: 1 - Cadastrar Clientes 2 – Remover Cliente 3 – Remover produto do Cliente 4 – Busca pelo nome do Cliente 5 – Busca pelo código do Cliente 6 – Busca dos Clientes pelo código do produto 7 – Saída. Opção: - O programa deve ser feito em utilizando uma lista duplamente encadeada.
×
×
  • Criar Novo...