Logo Hardware.com.br
Leo_david
Leo_david Novo Membro Registrado
1 Mensagem 0 Curtidas

Algoritmo em C++

#1 Por Leo_david 28/11/2015 - 13:19
Galera, tava aqui estudando programação (sou novo no assunto smile.png ). Aí fiz um código para cadastros de livros numa livraria (Código simples mesmo). Só tem um problema: Quando eu coloco para pesquisar os livros por preço, aparecem todos os livros. Gostaria que aparecesse os livros na faixa de preço indicada, por exemplo, livro menor ou igual a R$20,00...
Segue abaixo o código em C++ feito no Codeblocks. Agradeço quem conseguir me ajudar ^^
#include <iostream>
#include<string>
#include <cstdlib>
#include <cmath>

using namespace std;

struct Cadastro{
string titulo = "";
double preco = 0;
string editora = "";
int ano_lancamento = 0;

};

Cadastro livros[500];
int i = 0;

void DadosCadastrais(){
string lixo;
Cadastro livro;
cout << "\n**********\n" << endl;
cout << "Titulo: ";
getline(cin, lixo);
getline(cin, livro.titulo);
cout << "Preco: ";
cin >> livro.preco;
cout << "Editora: ";
getline(cin, lixo);
getline(cin,livro.editora);
cout << "Ano de lancamento: ";
cin >> livro.ano_lancamento;
livros = livro;
i++;

}

void ImprimirDados(){
for(int x = 0; x < i; x++){
cout << x << "\n";
cout << "Titulo: " << livros[x].titulo << endl;
cout << "Preco: " << livros[x].preco << endl;
cout << "Editora: " << livros[x].editora << endl;
cout << "Ano de lancamendo: " << livros[x].ano_lancamento << endl;

}
}

void Pesquisa_por_preco(){
int i;
while(i <= livros.preco){
cout << "\n";
cout << "Titulo: " << livros.titulo << endl;
cout << "Preco: " << livros.preco << endl;
cout << "Editora: " << livros.editora << endl;
cout << "Ano de lancamento: " << livros.ano_lancamento << endl;
}
}


int main()
{
int comando = 0;
int valor = 0;
while(true){
cout << "----LIVRARIA----" << endl;
cout << "MENU: " << endl;

cout << "\t1 (Adicionar livro)" << endl;
cout << "\t2 (ver todos os livros)" << endl;
cout << "\t3 (sair)" << endl;
cout << "\t4 (pesquisar por preco)" << endl;

cin >> comando;
if(comando == 1){
DadosCadastrais();
system("cls&quot;
}
if(comando == 2){
ImprimirDados();
}
if(comando == 3){
break;
}
if(comando == 4){
cout << "Digite o valor desejado: ";
cin >> valor;
Pesquisa_por_preco();
}

}
return 0;
}
Entre-Trópicos
Entre-Trópic... Zumbi Registrado
4.5K Mensagens 912 Curtidas
#2 Por Entre-Trópic...
28/11/2015 - 14:48
Primeira coisa, coloque seu código dentro da TAG code, veja o botão de mais na caixa de mensagem.

Dentro da função Pesquisa_por_preco tem a variável int i que começa por 0, se o seu compilador for bonzinho
com você, ou vai ter um valor 'sujo'(arbitrário), e isso não é bom. Sempre inicie suas variáveis.
A função começa a procurar a partir daí, por isso sempre mostra todos.

Mas você quer passar o valor que foi digitado pelo usuário:
Pesquisa_por_preco(int _preco)
{


}


Preços tem a vírgula portanto deveria ser float.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal