Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda - Código C++


virgiliocf

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...