Ir ao conteúdo
  • Cadastre-se

Biblioteca em C++


Kennedy Portela

Posts recomendados

Boa tarde, estou tentando praticar C++ pra não perder tudo o que eu aprendi na minha faculdade no semestre passado, e já estou com um pouco de dificuldade com algumas coisas. Meu professor de Logica era bom, porém perdia a concentração com qualquer coisa, o que fez eu não entender muita coisa, e agora no segundo semestre estar apanhando pra qualquer coisinha básica =/
 
Bom, meu código por enquanto é esse:

#include <stdio.h>

#include <conio.h>
#include <iostream>
 
struct DadosBiblioteca
{
       int Cod,x,y;
       char Nome[50], Autor[50], Editora[50], Genero[50];
       int Ano, Qtd;
       double Prateleira;
       
       };
       
  void CadastrarLivro (void) 
       {
            FILE *CadLivro; 
            struct DadosBiblioteca RegLivro; 
            char Confirma;
            
            
            CadLivro=fopen ("CadLiv.dat" , "ab"); 
    
           do{
                std::cout << "Digite o Codigo do livro: ";
                std::cin >> RegLivro.Cod;  
                if(RegLivro.Cod<1 || RegLivro.Cod>3000)
                    std::cout << "Codigo Invalido!\n";            
            }while(RegLivro.Cod>3000 || RegLivro.Cod<1);
                      
   fflush(stdin);
           
            std::cout << "Digite o Nome do livro: ";
            std::cin.getline (RegLivro.Nome, 50);
                   
            std::cout << "Digite o Autor do Livro: ";
            std::cin.getline (RegLivro.Autor, 50);
            
            std::cout << "Digite a Editora do Livro: ";
            std::cin.getline (RegLivro.Editora, 50);
           
   do{
                std::cout << "Digite o Ano do livro: ";
                std::cin >> RegLivro.Ano;  
                if(RegLivro.Ano<1300|| RegLivro.Ano>2014)
                    std::cout << "Ano Invalido!\n";            
            }while(RegLivro.Ano>2014 || RegLivro.Ano<1300);
            
            std::cout << "Digite o Genero do Livro: ";
            std::cin.getline (RegLivro.Genero, 30);
            
            std::cout << "Digite a quantidade de Livros: ";
            std::cin >> RegLivro.Qtd;
            
            do{
                std::cout << "Digite a prateleira que o Livro vai ficar:  ";
                std::cin >> RegLivro.Prateleira;  
                if(RegLivro.Prateleira<1.0 || RegLivro.Prateleira>15)
                    std::cout << "Prateleira Invalida!\n";            
            }while(RegLivro.Prateleira>15 || RegLivro.Prateleira<1.0);
            
            std::cout << "\n\nConfirma a inclusao do livro? (S/N)";
            Confirma=getche();
            
            if (Confirma=='s' || Confirma=='S') 
              
               fwrite(&RegLivro,
               sizeof(struct DadosBiblioteca),
               1,
               CadLivro);
              
               
               fclose(CadLivro);
       }
       
     
  void PesquisarLivro (void) 
         {
              
              FILE *CadLivro;
              
              struct DadosBiblioteca RegLivro;
              char Nome, Autor, Genero;
               int opc2;            
              
           
            CadLivro=fopen("CadLiv.dat", "rb");
            do
    {
        std::cout << "\n\nComo você quer pesquisar?\n\n";
        std::cout << "\n1-Por Nome do Livro";
        std::cout << "\n2-Por Autor";
        std::cout << "\n3-Por Genero";
        std::cout << "\n4-Fechar Programa";
        std::cout << "\n\nDigite a Opcao: ";
        std::cin >> opc2;
        
          
             if (opc2==1);
             {
             
std::cout << "\n\nDigite o Nome do Livro: ";
            std::cin.getline (Nome,50);
            
            
            while (fread(&RegLivro, 
                    sizeof(struct DadosBiblioteca),   
                    1,
                    CadLivro) >0) 
              {  
              std::cout << "\n\nCodigo.................: " << RegLivro.Cod;
              std::cout << "\n\nAutor............: " << RegLivro.Autor;
              std::cout << "\n\nEditora...........: " << RegLivro.Editora;
              std::cout << "\n\nAno...........: " << RegLivro.Ano;
              std::cout << "\n\nGenero...........: " << RegLivro.Genero;
              std::cout << "\n\nQuantidade...........: " << RegLivro.Qtd;
              std::cout << "\n\nPrateleira..........: " << RegLivro.Prateleira;
              }
              
          }  
           if (feof(CadLivro))
           { 
              std::cout << "\n\nLivro nao cadastrado\n\n";
              
              }
             
              else
 if (opc2==2);
              {
             
std::cout << "\n\nDigite o Autor do Livro: ";
            std::cin.getline (Autor,50);
            
            
            while (fread(&RegLivro, 
                    sizeof(struct DadosBiblioteca),  
                    1, 
                    CadLivro) >0) 
(Autor==RegLivro.Autor);
              {  
              std::cout << "\n\nCodigo.................: " << RegLivro.Cod;
              std::cout << "\n\nNome............: " << RegLivro.Nome;
              std::cout << "\n\nEditora...........: " << RegLivro.Editora;
              std::cout << "\n\nAno...........: " << RegLivro.Ano;
              std::cout << "\n\nGenero...........: " << RegLivro.Genero;
              std::cout << "\n\nQuantidade...........: " << RegLivro.Qtd;
              std::cout << "\n\nPrateleira..........: " << RegLivro.Prateleira;
              
              }
          }  
           if (feof(CadLivro)) 
           { 
              std::cout << "\n\nLivro nao cadastrado\n\n";
              
              }
              else
              if (opc2==3);
              {
             
std::cout << "\n\nDigite o Genero do Livro: ";
            std::cin.getline (Genero,50);
            
            
            while (fread(&RegLivro, 
                    sizeof(struct DadosBiblioteca),   
                    1, 
                    CadLivro) >0) 
 (Genero==RegLivro.Genero);
              {  
              std::cout << "\n\nNome.................:" << RegLivro.Nome;
              std::cout << "\n\nCodigo.................: " << RegLivro.Cod;
              std::cout << "\n\nAutor............: " << RegLivro.Autor;
              std::cout << "\n\nEditora...........: " << RegLivro.Editora;
              std::cout << "\n\nAno...........: " << RegLivro.Ano;
              std::cout << "\n\nQuantidade...........: " << RegLivro.Qtd;
              std::cout << "\n\nPrateleira..........: " << RegLivro.Prateleira;
              
              }
          }   
           if (feof(CadLivro)) 
           { 
              std::cout << "\n\nLivro nao cadastrado\n\n";
              
              }
              else
              if (opc2==4);
              break;
        }while (opc2 >0 && opc2 <4);
        return(PesquisarLivro);
    }
           
//void MenuPesquisa (void) - // Criar um Menu para a Pesquisar Livros!!!
 
FILE *CadLivro;
int main (void)
{
    int opc;
    
    do
    {
        std::cout << "\n\nBiblioteca\n\n";
        std::cout << "\n1-Cadastrar Livro";
        std::cout << "\n2-Pesquisar Livro(s)";
        std::cout << "\n3-Fechar Programa";
        std::cout << "\n\nDigite a Opcao: ";
        std::cin >> opc;
        
          if (opc==1)
           CadastrarLivro ();
           else 
           if(opc==2)
           PesquisarLivro ();
           else
           if(opc==3)
           break;
           
           }while (opc >0 && opc < 3);
           return (0);
}
 
 
Ele basicamente Cadastra livros e Pesquisa os livros (Porém a pesquisa pode ser feita por [Nome, Autor ou Gênero] depende do usuário escolher. Mas ainda não consegui criar esse Menu de escolhas de como pesquisar, por que não sei se vai ser igual o primeiro menu pra escolher se vai Cadastrar ou Pesquisar) 
Queria saber se podem me ajudar com ele, está dando uns erros que nem sei como arrumar, e com a parte de criar menu para pesquisa dos livros.
Por enquanto é isso, podem ser sinceros a ponto de dizer que meu programa está horrível, vou aguentar kkk

Link pra download do .cpp se for mais fácil ( https://www.dropbox.com/s/lj7fyjhg76sjxnf/Biblioteca.cpp?dl=0 )
* Como é chato criar tópico aqui hein =/
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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