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");
}
Pergunta
virgiliocf
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
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.