Marvins
(usa Ubuntu)
Enviado em 19/03/2015 - 10:25h
Bom dia!
Estou com dificuldades em criar um algoritmo que retorna o ultimo cadastro feito pelo usuário do programa.
Estou começando a programar agora na facul e estou tentando resolver esta ultima parte do algoritmo.
Preciso implementar o "case 4", ( cout << "4 - Exibir ultimo cadastrado\n";), preciso de uma luz, sei que o programa vai buscar na biblioteca os cadastros, só não consigo fazer um algoritmo que informe o ultimo cadastro feito.
P.S. Com certeza há erro e algoritmos não tão profissionais rsrsrs... mais estou tentando desenvolver este algoritmo para praticar e estudar, já procurei na net algo parecido mais não encontrei. Até agora desenvolvi com ajuda de trópicos na net e de meus livros.
Desde já agradeço a comunidade!
Segue abaixo o algoritmo.
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <stdio.h>
using namespace std;
struct Livro
{
int Codigo;
char Nome[30];
float Preco;
};
void ExibirLivro(Livro l);
Livro PreencherLivro();
void Menu();
void ExibirTodos(Livro livros[], int ultimo);
bool LivroCadastrado(Livro livros[], int codigo, int ultimo);
void PesquisarCodigo (Livro livros [], int ultimo, int codigo); /// Pesquisar codigo do livro
void aleatorio( int codigo, int ultimo);
void ExibirUltimoCadastro (Livro livros [], int ultimo, int codigo);
int main()
{
Livro biblioteca[10];
int opcao;
int posicao = 0;
do
{
Menu();
cout << "Digite sua opcao: ";
cin >> opcao;
cin.ignore();
switch(opcao)
{
case 1:
if(posicao <=10)
{
Livro livroNovo = PreencherLivro();
if(LivroCadastrado(biblioteca, livroNovo.Codigo, posicao))
{
cout << "Este livro ja foi cadastrado.\n\n";
break;
}
biblioteca[posicao] = livroNovo;
posicao++;
}
else
{
cout << "Biblioteca lotada...\n\n";
}
break;
case 2:
ExibirTodos(biblioteca, posicao);
break;
case 3:
PesquisarCodigo(biblioteca,opcao,posicao);
break;
case 4:
ExibirUltimoCadastro(biblioteca,0, posicao);
break;
case 5:
return 1;
break;
default:
cout << "Opcao invalida.\n\n";
break;
}
}
while(true);
return 1;
}
void Menu()
{
// Bloquear cadastro de codigos repetidos
// Bloquear cadastro apos o vetor estiver completo
system("CLS");
cout << "..:: Biblioteca ::..\n\n";
cout << "1 - Cadastrar\n";
cout << "2 - Exibir Todos\n";
cout << "3 - Pesquisar por codigo\n";
cout << "4 - Exibir ultimo cadastrado\n";
cout << "5 - Sair\n\n";
}
Livro PreencherLivro()
{
Livro livro;
cout << "Digite o Codigo: ";
cin >> livro.Codigo;
cin.ignore();
cout << "Digite o Nome: ";
gets(livro.Nome);
cout << "Digite o Preco: ";
cin >> livro.Preco;
cin.ignore();
return livro;
}
void ExibirLivro(Livro l)
{
cout << "--- Dados do Livro ----\n";
cout << "Codigo: " << l.Codigo << "\n";
cout << "Nome: " << l.Nome << "\n";
cout << "Preco: " << l.Preco << "\n\n";
}
void ExibirTodos(Livro livros[], int ultimo)
{
for(int i = 0 ; i < ultimo ; i++)
{
ExibirLivro(livros[i]);
}
system("PAUSE NULL");
}
bool LivroCadastrado(Livro livros[], int codigo, int ultimo)
{
for(int i = 0 ; i < ultimo ; i++)
{
if(livros[i].Codigo == codigo)
return true;
}
}
void PesquisarCodigo (Livro livros[], int codigo, int ultimo)
{
for(int i = 0 ; i < ultimo ; i++)
{
if(livros[i].Codigo == codigo)
{
ExibirLivro(livros[i]);
system("PAUSE");
return;
}
}
cout<< "Livro nao encontrado";
system("PAUSE");
}
void ExibirUltimoCadastro (Livro livros[], int ultimo)
{
ExibirLivro(livros[u]);
system("PAUSE");
return;
}