Guest User

Untitled

a guest
Apr 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.88 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. typedef struct livro{
  5. char[10] nome;
  6. char[20]autor;
  7. char[5]ano;
  8. char[20] descrição;
  9. char[10] palavrachave;
  10. }livro;
  11.  
  12. typedef struct sBiblioteca{
  13. livro l;
  14. struct sBiblioteca *seguinte;
  15. }*Biblioteca, Nodobiblioteca;
  16.  
  17. Biblioteca inserir (Biblioteca b, char *nome,char* ano, char* descricao, char* palavrachave, char*autor){
  18.     Biblioteca novonodo = (Biblioteca) malloc(sizeof(Nodobiblioteca));
  19.     livro novolivro;
  20.     strcpy(novolivro.nome,nome);
  21.     strcpy(novolivro.autor,autor);
  22.     strcpy(novolivro.palavrachave,palavrachave);
  23.     strcpy(novolivro.descricao,descricao);
  24.     strcpy(novolivro.ano,ano);
  25.     novonodo->l = novolivro;
  26.     novonodo->seguinte = b;
  27.     return novonodo;
  28. }
  29.  
  30. Biblioteca remover (Biblioteca b, char *nome){
  31.     Biblioteca x,y;
  32.     if (x){
  33.     if(!strcmp(x->l.nome,nome)){
  34.         y = x;
  35.         free (y);
  36.         return x->seguinte;}
  37.     for(x=b,!x->seguinte,x=x->seguinte){
  38.         if(!strcmp(x->seguinte->l.nome,nome)){
  39.             y = x->seguinte;
  40.             x->seguinte = x->seguinte->seguinte;
  41.             free(y);
  42.             return b;
  43.         }
  44.     }
  45.     printf("ERRO, Livro Não Encontrado\n");
  46.     return b;
  47. }
  48.  
  49. void ListarLivros (Biblioteca b){
  50.     if(!b)
  51.         printf("Não existem livros");
  52.         else
  53.         (while b){
  54.             printf("%s,%s",b->l.nome, b->l.autor);
  55.             b=b->seguinte;
  56.                  }
  57. }
  58.  
  59. void Lista_Livro (Biblioteca b, char *nome){
  60.     if(!b) printf("Erro. Não existe o livro não Encontrado");
  61.         if(!strcmp(b->l.nome, nome)) printf("%s,%s,%s,%s,%s",b->l.nome, b->l.autor, b->l.ano, b->l.descrição, b->l.palavrachave);
  62.      else
  63.          Lista_Livro(b->seguinte, nome);
  64. }
  65.  
  66. Biblioteca altera (Biblioteca b, char *nome){
  67.  if(b)
  68.  {
  69.    if(!strcmp(b->l.nome, nome))
  70.     b->l = alteraLivro(b->l);
  71.    else
  72.     b->seguinte = altera (b->seguinte, nome);
  73.     return b;
  74.  }
  75.     printf("Erro, não existe esse livro\n");
  76.     return NULL;
  77. }
  78.  
  79. Livro alteraLivro (Livro l){
  80.     char[10] nome;
  81.     char[20] autor;
  82.     char[5] ano;
  83.     char[20] descrição;
  84.     char[10] palavrachave;
  85.  
  86. printf("Digite o nome do livro\n");
  87.  scanf("%s",nome);
  88.   strcpy(l.nome,nome);
  89.  printf("Digite o nome do autor\n");
  90.  scanf("%s",autor);
  91.   strcpy(l.autor,autor);
  92.  printf("Digite o ano\n");
  93.  scanf("%s",ano);
  94.   strcpy(l.ano,ano);
  95.  printf("Digite uma descrição\n");
  96.  scanf("%s",descrição);
  97.   strcpy(l.descrição,descrição\n);
  98.  printf("Digite uma palavra-chave")
  99.  scanf("%s",palavrachave);
  100.   strcpy(l.palavrachave,palavrachave\n);
  101. }
  102.  
  103. int main(){
  104.     int x = -1;
  105.     Biblioteca b = NULL;
  106.     Biblioteca x;
  107.     char[10] nome;
  108.     char[20] autor;
  109.     char[5] ano;
  110.     char[20] descrição;
  111.     char[10] palavrachave;
  112.     FILE *ficheiro;
  113.     ficheiro = fopen("biblio.dat", "rw");
  114.    
  115.     if (ficheiro == NULL) {
  116.          printf("Ficheiro não disponivel\n");
  117.          return 0;
  118.          }
  119.  
  120.     while(ficheiro != EOF){
  121.    
  122.     }
  123.  
  124.     while (x!=0){
  125.         printf("Insira a opção:\n1-Inserir\n2-Remover\n3-Alterar\n4-Listar Geral\5-Listar Único\n0-Sair");
  126.         scanf("%d\n",&x);
  127.         switch(x){
  128.             case(1){
  129.                 printf("Nome ?\n")
  130.                 scanf("%s",nome);
  131.                 printf("Autor ?\n")
  132.                 scanf("%s",autor);
  133.                 printf("Ano ?\n")
  134.                 scanf("%s",ano);
  135.                 printf("Descricao ?\n")
  136.                 scanf("%s",descricao);
  137.                 printf("Palavrachave ?\n")
  138.                 scanf("%s",palavrachave);
  139.                 b =  inserir (b,nome,ano,descricao,palavrachave,autor);
  140.                 break;}
  141.             case(2){
  142.                 printf("Nome ?\n")
  143.                 scanf("%s",nome);
  144.                 b = remover(b,nome);
  145.                 break;}
  146.             case(3){
  147.                 printf("Nome ?\n")
  148.                 scanf("%s",nome);
  149.                 b = altera (Biblioteca b,nome)
  150.                 break;}
  151.             case(4){
  152.                 ListarLivros (b);
  153.                 break;}
  154.             case(5){
  155.                 printf("Nome ?\n")
  156.                 scanf("%s",nome);  
  157.                 Lista_Livro (b,nome);
  158.                 break;}
  159.             case(0){
  160.                 for (x=b;!x;x=x->seguinte)
  161.                         fprintf(ficheiro, "%s,%s,%s,%s,%s\n",x->l.nome,x->l.autor,x->l.descricao,x->l.ano,x->l.palavrachave);
  162.                     fclose(ficheiro);
  163.                 break;}
  164.             default{
  165.                 printf("Opção Incorrecta\n");
  166.                 break;}
  167. }
  168. }
Add Comment
Please, Sign In to add comment