Jump to content
Fórum Script Brasil
  • 0

Ajuda - Código C++


virgiliocf
 Share

Question

Queria que alguém me ajudasse, estou fazendo um sistema de gerenciamento de biblioteca e quando realizo o cadastro dos livros todos estão ficando com o mesmo nome, código e autor.

#include<iostream>
#include<cstring>
using namespace std;
struct dados
{
    char nome[20],autor[20],cod[20];
    
};
dados d;
char   esc;
int cont = 0, aux=0, salto = 0, saltorRemocao=0, i=0, nao=0,aux1=0;
bool valueFound=false;
void cadastro();
void listar();
void pesquisar();
void alterar();
void excluir();
int main()
{
    int op;
     
    
        do
    {
        do
        {
            system("cls");    
            system("color f0");
            cout<<"\t\t|-----------------------------------------------|"<<endl;
            cout<<"\t\t|                                               |"<<endl;
            cout<<"\t\t|              SEJAM BEM VINDOS!                |"<<endl;
            cout<<"\t\t|                                               |"<<endl;      
            cout<<"\t\t|     SIGBI - GERENCIAMENTO DE BIBLIOTECA       |"<<endl;
            cout<<"\t\t|                                               |"<<endl;
            cout<<"\t\t|---------------------Menu--------------------- |"<<endl;
            cout<<"\t\t|                                               |"<<endl;
            cout<<"\t\t|          1 - Cadastrar Livro(s)               |"<<endl;
            cout<<"\t\t|          2 - Listar Acervo                    |"<<endl;
            cout<<"\t\t|          3 - Pesquisar Livro(s)               |"<<endl; 
            cout<<"\t\t|          4 - Alterar Dados do Livro           |"<<endl;       
            cout<<"\t\t|          5 - Emprestimo(s)                    |"<<endl;            
            cout<<"\t\t|          6 - Sair                             |"<<endl;
            cout<<"\t\t|                                               |"<<endl;
            cout<<"\t\t|-----------------------------------------------|"<<endl;
            cout<<endl;
            cout<<"\t\t               Opcao Escolhida: "; cin>>op;
        
        }while(op<1 || op>6);
        
        
        
        
        
            switch(op)
            {
                case 1: cadastro();
                        break;
                        
                case 2: listar();
                        break;
                
                
                case 3: pesquisar();
                        break;
                        
                case 4: alterar();
                        break;
                            
                case 5: excluir();
                        break;  
                                 
                case 6: system("exit");
                        break;
            }// fim switch
            nao=0;
        }while(op!=6);
    }

void alterar()
{
     
     system("cls");   
     cout<<endl<<endl;
     cout<<"\tALTERACAO DE LIVROS"<<endl<<endl;
     char codigo[20];
     cin.ignore();
     cout << "Entre com o codigo do livro a ser pesquisado:";
     cin.getline(codigo,20);
     for( i=0;i<cont;i++)
     {
            salto = sizeof(d)*i + sizeof(cont);
            if(strcmp(codigo,d.cod)==0) 
            {
                                        system("cls");          
                                        cout<<endl;
                                        cin.ignore(); 
                                        cout<<"Novo nome do livro:"; cin.getline(d.nome,20);
                                        cout<<"Novo autor do livro:";  cin.getline(d.autor,20);
                                        cout<<"Novo codigo do livro:";  cin.getline(d.cod,20);
                                        nao=1;
            }
            salto = sizeof(d)*i + sizeof(cont);
     }
     if(nao==0)
     {
                 cout<<"Livro nao encontrado"<<endl;
                 system("PAUSE");
     }
}
void excluir()
{
     system("cls");          
     cout<<endl;
     char codigo[20];
     cin.ignore();
     cout<<"\EMPRESTIMO DE LIVROS"<<endl<<endl;
     cout << "Entre com o codigo do livro a ser emprestado:";
     cin.getline(codigo,20);
     dados carro1; 
     valueFound = false;
     for( i=0;i<cont;i++)
     {
            salto = sizeof(d)*i + sizeof(cont);
            if(strcmp(codigo,d.cod)==0)
            {
                                     valueFound =true;
                                     aux =i;
                                     nao=1;
            }
     }
     if ((aux== (cont-1)& valueFound)){
     cont = cont - 1;                
     }else if (valueFound)
     {
             for( i=aux;i<cont-1;i++)
             {
                salto = sizeof(d)*i + sizeof(cont);
                salto = sizeof(d)*(i+1) + sizeof(cont);
                strcpy(d.cod, carro1.cod);
                strcpy(d.nome, carro1.nome);
                strcpy(d.autor, carro1.autor);
                salto = sizeof(d)*i + sizeof(cont);
                aux1=i+1;
             }
                        cont=aux1;
     }
        if(nao==0)
     {
                cout<<endl<<"Emprestimo nao efetuado, codigo nao encontrado. "<<endl<<endl;
                system("PAUSE");
     }else
     {
            cout<<endl<<endl<<"Emprestado com sucesso!"<<endl<<endl;
            system("PAUSE");
     }
     
}
void pesquisar()
{
     system("cls");          
     cout<<endl;
     cout<<"\tPESQUISA DE LIVROS"<<endl<<endl;
     char codigo[20];
     cin.ignore();
     cout << "Entre com o codigo do livro a ser pesquisado:";
     cin.getline(codigo,20);
     for( i=0;i<cont;i++)
     {
            salto = sizeof(d)*i + sizeof(cont);
            if(strcmp(codigo,d.cod)==0) 
            {
                                        cout<<endl<<"Nome do livro: "<< d.nome<<endl;
                                        cout<<"Autor do livro: " <<d.autor<<endl;
                                        cout<<"Codigo do livro: " << d.cod<<endl<<endl;  
                                        nao=1;
            }
     }
     if(nao==0)
     {
                 cout<<endl<<endl<<"Livro nao encontrado!"<<endl<<endl;
     }
     system("PAUSE");
                         
}
     
void cadastro()
{
     do
     {
                                     system("cls");          
                                     cout<<endl;
                                     cout<<"\tCADASTRO DE LIVROS"<<endl<<endl;
                                     cin.ignore();
                                     cout<<"Nome do livro:";  
                                     cin.getline(d.nome,20);
                                     cout<<"Autor:";  
                                     cin.getline(d.autor,20);
                                     cout<<"Codigo do Livro:";  
                                     cin.getline(d.cod,20);
                                     salto = sizeof(d)*cont+sizeof(cont);
                                     cont++;
                                     do
                                     {
                                                                    cout<<"Deseja cadastrar outro Livro (S/N)?: "; cin>>esc;
                                     }while ((toupper(esc)!='N')&&(toupper(esc)!='S'));
     }while(toupper(esc)!='N');
}
void listar()
{
     system("cls");          
     cout<<endl;
     cout<<"\tACERVO"<<endl<<endl;
     for( i=0; i<cont; i++) 
     {
            salto = sizeof(d)*i + sizeof(cont);
            cout<<endl<<"Nome do livro: "<< d.nome<<endl;
            cout<<"Autor do livro: " <<d.autor<<endl;
            cout<<"Codigo do livro: " << d.cod<<endl<<endl<<endl;  
     }
     if(cont!=0)
     {
                cout << endl << endl << "Total de livros " << i<<endl; 
     }
     system ("PAUSE");               
}

 

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

É que tal como você esta fazendo é normal. você esta guardando todos os livros em "dados d", para guardar varios livros você precisa de um array de estructs como minimo. Algo como:

Dados Livro[100];

Então com isso você tem 100 estruturas, para mudar o nome do primeiro livro você tem que fazer livro[0].nome = "nome do primeiro livro";

Com um loop for você pode ler todos os dados dos 100 livros, tipo:

for (int i = 0; i <100; i++){
   cout << "nome do livro numero " << i << ": " << endl;
   cin >> livro[i].nome;
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...