Ir ao conteúdo
  • Cadastre-se

Lucas Tasca

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. n estou conseguindo gravar os dados binarios na minha estrutura, ela é um sistema de cadastros feita com listas, um maluco me falou para fazer um nova struct mas eu n estou conseguindo alguem me de uma luz #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> typedef struct lista{ char titulo[1000]; char autor[1000]; char subtitulo[1000]; char desc[1000]; char ref[1000]; unsigned long int codigo; struct lista* prox; }Lista; //Declaração de funções. Lista* inserir_livros(Lista* primeiro); void listar_livros(Lista* primeiro); Lista* excluir_livros(Lista* primeiro); void alterar_livros(Lista* primeiro); int main() { Lista *primeiro= NULL; char opcao; //Paranaue para repetir o programa. while(opcao!='0') { //Menu de opções printf(" | ");printf("\t\t\t CADASTRO WIKI");printf("\t\t\t |\n"); printf(" MENU "); printf(" ---------------------------- \n"); printf(" | 1. Novo cadastro |\n"); printf(" | 2. Listar |\n"); printf(" | 3. Excluir cadastro |\n"); printf(" | 4. Alterar cadastro |\n"); printf(" | 0. Sair |\n"); printf(" -------------------------------------"); //Lendo a opcao do menu opcao= getch(); //Menu de opções switch(opcao) { case '1': //Inserindo os livros fflush(stdin); system("cls"); printf(" | ");printf("\t\t\t NOVO CADASTRO ");printf("\t\t\t |\n"); primeiro= inserir_livros(primeiro); getch(); system("cls"); break; case '2': //Listando os livros. system ("cls"); printf(" | ");printf("\t\t\t LIVROS CADASTRADOS");printf("\t\t\t |\n"); listar_livros(primeiro); getch(); system("cls"); break; case '3': //Excluindo livros da lista. system ("cls"); printf(" | ");printf("\t\t\t EXCLUIR CADASTROS");printf("\t\t\t |\n"); primeiro= excluir_livros(primeiro); getch(); system("cls"); break; case '4': //Alterando livros da lista. system ("cls"); printf(" | ");printf("\t\t\t ALTERAR CADASTRADOS");printf("\t\t\t |\n"); alterar_livros(primeiro); getch(); system("cls"); break; case '0': // para sair do programa. opcao='0'; break; default: //Paranaue que previne o usuário de digitar uma opcão que não exista no menu. system€("cls"); break; } } } Lista* inserir_livros (Lista *primeiro){ Lista livro; Lista *atual= primeiro; char identificador= 'F'; //Lendo as informações do livro. printf(" Titulo: "); fwrite(&livro.titulo, sizeof(livro),1000, stdin);fputs(livro.titulo,stdin);fgets(livro.titulo, 1000, stdin); printf ("\n"); printf(" Subititulo: "); fwrite(&livro.subtitulo, sizeof(livro),1000, stdin);fputs(livro.subtitulo,stdin);fgets(livro.subtitulo, 1000, stdin); printf ("\n"); printf(" Autor: "); fwrite(&livro.autor, sizeof(livro),1000, stdin);fputs(livro.autor,stdin); fgets(livro.autor, 1000, stdin); printf ("\n"); printf(" Descricao: "); fwrite(&livro.desc, sizeof(livro),1000, stdin);fputs(livro.desc,stdin);fgets(livro.desc, 1000, stdin); printf ("\n"); printf(" Referencias: "); fwrite(&livro.ref, sizeof(livro),1000, stdin);fputs(livro.ref,stdin);fgets(livro.ref, 1000, stdin); printf ("\n"); printf(" Codigo: "); fscanf(stdin,"%u",&livro.codigo);printf ("\n"); //Verificando se o cadastro já existe. for(atual=primeiro; atual!=NULL; atual=atual->prox){ if(atual->codigo==livro.codigo){ identificador= 'V'; break; } } if(identificador!='V' && (strlen(livro.titulo)!=1 && strlen(livro.autor)!=1)){ //Alocando os espaços e guardando as informações do livro. Lista* Novolivro=(Lista*) malloc (sizeof(Lista)); strcpy(Novolivro->titulo, livro.titulo); strcpy(Novolivro->subtitulo, livro.subtitulo); strcpy(Novolivro->autor, livro.autor); strcpy(Novolivro->desc, livro.desc); strcpy(Novolivro->ref, livro.ref); Novolivro->codigo= livro.codigo; Novolivro->prox= primeiro; printf(" Cadastro realizado com sucesso."); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return Novolivro; }else{ printf(" Cadastro invalido."); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return primeiro; } } void listar_livros (Lista* primeiro){ Lista* atual;//Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista. //Imprimindo os livros da lista, e suas repectivas informações. for(atual= primeiro ; atual!= NULL; atual= atual->prox){ printf("\n Titulo: "); printf("%s", atual->titulo); printf("\n Subtitulo: "); printf("%s", atual->subtitulo); printf("\n Autor : "); printf("%s", atual->autor); printf("\n Descricao: "); printf("%s", atual->desc); printf("\n Referencias: "); printf("%s", atual->ref); printf("\n Codigo: " ); printf("%u", atual->codigo); printf("\n\n"); } if(primeiro==NULL) printf(" Nenhum livro cadastrado."); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); } Lista* excluir_livros(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. unsigned long int codigo=0; //Requisitando e lendo o código do livro a ser excluído. printf(" Codigo do livro a ser excluido: "); fscanf(stdin,"%u",&codigo); //Procurando o livro na lista. while(atual!= NULL && atual->codigo!=codigo){ anterior= atual; atual= atual->prox; } //Mensagem caso o livro não seja encontrado. if(atual==NULL){ printf("\n Livro nao encontrado."); printf("\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); return primeiro; } //Excluindo o primeiro livro da lista. if(anterior==NULL){ printf("\n Conteudo excluido com sucesso."); primeiro= atual->prox; //Excluindo um lvro do meio da lista. }else{ printf("\n Conteudo excluido com sucesso."); 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 lvro. void alterar_livros(Lista* primeiro){ char titulo_substituto[1000]; char autor_substituto[1000]; char subtitulo_substituto[1000]; char ref_substituto[1000]; char desc_substituto[1000]; unsigned long int codigo; Lista* atual=primeiro; //Requisitando e lendo o código do livro a ser alterado. printf(" Codigo do livro a ser alterado: "); fscanf(stdin,"%u",&codigo); //Procurando o livro na lista. while(atual!= NULL && atual->codigo!=codigo){ atual= atual->prox; } //Alterando os dados do livro. if(atual!=NULL){ printf("\n Novo Titulo: "); fwrite(&titulo_substituto, sizeof(titulo_substituto),1000, stdin);fputs(titulo_substituto,stdin);fgets(titulo_substituto, 1000, stdin); strcpy(atual->titulo,titulo_substituto); printf("\n Novo Subtitulo: "); fwrite(&subtitulo_substituto, sizeof(subtitulo_substituto),1000, stdin);fputs(subtitulo_substituto,stdin);fgets(subtitulo_substituto, 1000, stdin); strcpy(atual->subtitulo,subtitulo_substituto); printf("\n Novo Autor: "); fwrite(&autor_substituto, sizeof(autor_substituto),1000, stdin); fputs(autor_substituto,stdin); fgets(autor_substituto, 1000, stdin); printf ("\n"); strcpy(atual->autor,autor_substituto); printf("\n Nova Descricao: "); fwrite(&desc_substituto, sizeof(desc_substituto),1000, stdin);fputs(desc_substituto,stdin);fgets(desc_substituto, 1000, stdin); strcpy(atual->desc,desc_substituto); printf("\n Novas Referencias: "); fwrite(&ref_substituto, sizeof(ref_substituto),1000, stdin);fputs(ref_substituto,stdin);fgets(ref_substituto, 1000, stdin); strcpy(atual->ref,ref_substituto); printf(" Dados alterados com sucesso."); }else{ printf("\n livro nao encontrado."); } printf("\n\n\n PRESSIONE QUALQUER TECLA PARA VOLTAR AO MENU PRINCIPAL."); }

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!