Ir ao conteúdo
  • Cadastre-se

Milena Pereira

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por Milena Pereira

  1. Claro que podemos ajudar... Qual sua duvida?

    Eu recomendo usar estruturas para seu trabalho.

    Olha eu consegui fazer ate essa parte so que a estrutura e so para inserir clientes e telefone. Queria inserir livros, autor, editora.

     

    #include <stdio.h>#include <conio.h>#include<stdlib.h>#include<string.h>typedef struct no_da_lista {               // No da lista é o registrochar nome[30];   //nome do assinanteint telefone;    //telefonestruct no_da_lista* anterior;struct no_da_lista* proximo;}No_da_Lista;struct arv {                            //arv é o indice char info[100]; //chaveNo_da_Lista* local; //endereço do nóstruct arv* esq; struct arv* dir;};typedef struct arv Arv;Arv * raiz;No_da_Lista* lista;No_da_Lista* iniciaLista(void) {return NULL;}No_da_Lista* insereLista(No_da_Lista* lista, char *c, int num) {No_da_Lista* novo_no = (No_da_Lista*)malloc(sizeof(No_da_Lista));strcpy(novo_no->nome, c);novo_no->telefone = num;novo_no->proximo = lista;novo_no->anterior = NULL;if (lista != NULL)lista->anterior = novo_no;return novo_no;}No_da_Lista* buscaLista(No_da_Lista* lista, char *c) {No_da_Lista* p;for (p = lista;p != NULL;p = p->proximo) {if (strcmp(p->nome, c)){printf("%s ", p->nome);return p;}}return NULL;}void retiraLista(No_da_Lista * lista) {// retira o elemento do endereco listalista->anterior->proximo = lista->proximo;if (lista->proximo != NULL)lista->proximo->anterior = lista->anterior;free(lista);}//Verificando se o nó existe ou nãoint vazia(Arv* a){return a == NULL;}//Criando a arvore inicialArv* inicializa(void){return NULL;}// Colocando o nó na árvoreArv* cria(char *c, No_da_Lista* local, Arv* sae, Arv* sad) {Arv* p = (Arv*)malloc(sizeof(Arv));strcpy(p->info, c);p->local = local;p->esq = sae;p->dir = sad;return p;}void imprimeLista(No_da_Lista* lista) {No_da_Lista* aux; /* variavel auxiliar para percorrer a lista */for (aux = lista; aux != NULL; aux = aux->proximo) {printf("Nome: %s \n", aux->nome);printf("Telefone: %d \n", aux->telefone);}}//preordemvoid imprime(Arv* a){if (!vazia(a)) {printf("%s ", a->info); /* mostra raiz */printf("\n");imprime(a->esq); /* mostra sae */imprime(a->dir); /* mostra sad */}}void imprimepo(Arv* a)/* impressao na forma Pos Ordem>*/{if (!vazia(a)) {imprimepo(a->esq); /* mostra sae */imprimepo(a->dir); /* mostra sad */printf("%s ", a->info); /* mostra raiz */}}void imprimeos(Arv* a)/* impressao na forma Ordem simetrica*/{if (!vazia(a)) {imprimeos(a->esq); /* mostra sae */printf("%s ", a->info); /* mostra raiz */imprimeos(a->dir); /* mostra sad */}}//Arv* busca(Arv* a, char *c) {    //Busca Arvoreif (vazia(a))return NULL; /* árvore vazia: não encontrou */elseif (strcmp(a->info, c)<0)return busca(a->dir, c);else{if (strcmp(a->info, c)>0)return busca(a->esq, c);elsereturn a;};}void indexa(Arv* a, char *c, No_da_Lista* registro) {      //Entra com uma chave numa arvore binariaif (strcmp(a->info, c)<0)if (!vazia(a->dir))indexa(a->dir, c, registro);elsea->dir = cria(c, registro, inicializa(), inicializa());elseif (!vazia(a->esq))indexa(a->esq, c, registro);elsea->esq = cria(c, registro, inicializa(), inicializa());return;}void iniciaSist(char *c, int num) {lista = iniciaLista();lista = insereLista(lista, c, num);raiz = cria(c, lista, inicializa(), inicializa());}void inclui(char *c, int num) {if (busca(raiz, c) == NULL){lista = insereLista(lista, c, num);indexa(raiz, c, lista);}else{printf("Nome ja existe");getch();}}Arv* retira(Arv* r, char * v)   //retirando uma folha{if (r == NULL)return NULL;else if (strcmp(r->info, v) > 0)r->esq = retira(r->esq, v);else if (strcmp(r->info, v) < 0)r->dir = retira(r->dir, v);else { /* achou o elemento */if (r->esq == NULL && r->dir == NULL) { /* elemento sem filhos */free(r);r = NULL;}else if (r->esq == NULL) { /* só tem filho à direita */Arv* t = r;r = r->dir;free(t);}else if (r->dir == NULL) { /* só tem filho à esquerda */Arv* t = r;r = r->esq;free(t);}else { /* tem os dois filhos */Arv* pai = r;Arv* f = r->esq;while (f->dir != NULL) {pai = f;f = f->dir;}strcpy(r->info, f->info); /* troca as informações */strcpy(f->info, v);r->esq = retira(r->esq, v);}}return r;}void deleta(Arv* a, char *c) {   //Exclui um nome da fila e da arvoreArv * aux = busca(a, c);No_da_Lista * r;if (aux != NULL) {r = aux->local;retira(raiz, c);retiraLista(r);}}void mostraNo(Arv * a) {if (!vazia(a)){printf("Nome: %s \n", a->local->nome);printf("Telefone: %d \n", a->local->telefone);}else {printf("Nao localizado");}}
    • Curtir 1
  2. Estou fazendo um trabalho de um programa de Cadastro em C. E estou com muita dificuldade o máximo que conseguir foi cadastrar clientes.

    Poderiam me ajudar? 

     

    1. O sistema deve ser capaz de cadastrar, alterar e excluir clientes, com pelo menos nome do cliente e endereço

    2. O sistema deve ser capaz de cadastrar, alterar e excluir pedidos de livros feitos pelos clientes

    3.  O sistema deve fazer cadastro de livros, com nome do autor, nome do livro ou editora do livro

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!