@vangodp
//NOME: FELIPE HOFFMEISTER PEREIRA
using namespace std;
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <fstream>
#include "biblioteca.h"
int memoria(ListaE &lista) {
Produto *aux;
aux = lista.inicio;
char a[200];
ifstream salvar;
salvar.open("arquivo.txt");
if(!salvar.is_open()) {
cout<<"Arquivo.txt nao abriu";
return 0;
}
}
bool imprime(ListaE lista)
{
Produto *aux = new Produto;
aux = lista.inicio;
while(aux != NULL )
{
cout<<"Codigo: "<<aux->Codigo<<endl;
cout<<"Nome: "<<aux->Nome<<endl;
cout<<"Preco: "<<aux->Preco<<endl<<endl;
aux = aux->proximo;
}
}
int armazena(ListaE &lista)
{
Produto *aux;
aux = lista.inicio;
ofstream salvar;
salvar.open("arquivo.txt");
if(!salvar.is_open()) {
cout<<"Arquivo.txt nao abriu";
return 0;
} else
while(aux != NULL)
{
salvar <<aux->Codigo<<" ";
salvar <<aux->Preco<<" ";
salvar <<aux->Nome<<" \n";
aux = aux->proximo;
}
}
int inserir(ListaE &lista, Produto prod)
{
cout<<"\t\tCodigo: ";
cin>>prod.Codigo;
cout<<"\t\tPreco: ";
cin>>prod.Preco;
cout<<"\t\tNome do produto: ";
cin.ignore();
getline(cin,prod.Nome);
adiciona_item(lista,prod);
}
int buscar_lista(ListaE &lista, Produto prod)
{
int codigo;
cout<<"Digite o Codigo para a busca: ";
cin>>codigo;
Produto* produto_buscado = busca(lista.inicio,codigo);
if(produto_buscado != NULL)
{
cout<<"Codigo: "<<produto_buscado->Codigo<<endl;
cout<<"Nome: "<<produto_buscado->Nome<<endl;
cout<<"Preco: "<<produto_buscado->Preco<<endl<<endl;
return 1;
}
else
{
cout << "Nao existe esse produto"<<endl;
return 0;
}
}
int remover_lista(ListaE &lista, Produto prod)
{
int codigo_remover;
cout<<"Digite o Codigo para a remover: ";
cin>>codigo_remover;
if(!remover(lista,codigo_remover))
{
cout<<"Codigo invalido, ou a lista esta vazia"<<endl;
}
else
{
cout<<"Codigo: "<<codigo_remover<<" removido com sucesso"<<endl;
}
}
void menu()
{
system("color 0");
cout<<"\t\tMercado "<<endl<<endl;
cout<<"\t\tPRODUTOS"<<endl<<endl;
cout<<"\t\t1 - Adicionar Produto"<<endl;
cout<<"\t\t2 - Buscar Produto"<<endl;
cout<<"\t\t3 - Remover Produto"<<endl;
cout<<"\t\t0 - Sair"<<endl;
}
int main()
{
ListaE lista;
Produto prod;
int escolha;
inicializa_lista(lista);
memoria(lista);
do
{
system("color f1");
menu();
imprime(lista);
cin>>escolha;
if(escolha == 1)
{
system("cls");
inserir(lista,prod);
system("cls");
}
if(escolha == 2)
{
system("cls");
buscar_lista(lista,prod);
}
if( escolha == 3)
{
system("cls");
remover_lista(lista,prod);
}
if(escolha == 0) {
armazena(lista);
}
}
while (escolha != 0 );
return 0;
}
adicionado 0 minutos depois
#ifndef BIBLIOTECA_H_INCLUDED
#define BIBLIOTECA_H_INCLUDED
#include <iostream>
using namespace std;
//estrutura do produto
struct Produto
{
int Codigo;
float Preco;
string Nome;
Produto *proximo;
};
//estrutura da lista
struct ListaE
{
Produto *inicio;
};
//inicializa lista
bool inicializa_lista (ListaE &lista)
{
lista.inicio = NULL;
}
bool adiciona_item(ListaE &lista,Produto prod)
{
Produto *aux = new Produto;
aux->Codigo = prod.Codigo;
aux->Preco = prod.Preco;
aux->Nome = prod.Nome;
if(lista.inicio == NULL)
{
aux->proximo = NULL;
lista.inicio= aux;
}
else
{
aux->proximo = lista.inicio;
lista.inicio = aux;
}
}
Produto* busca(Produto* aux, int codigo)
{
if( aux == NULL)
{
return NULL;
}
else if(codigo == aux->Codigo)
{
return aux;
}
else {
return busca(aux->proximo,codigo);
}
}
bool remover(ListaE &lista, int remover)
{ Produto *atual;
Produto *anterior;
if(lista.inicio == NULL) {
return 0;
}
else {
atual = lista.inicio;
anterior = atual;
if(lista.inicio->Codigo == remover) {
lista.inicio = lista.inicio->proximo;
delete atual;
return 1;
}
else
while(atual != NULL)
{
if(atual->Codigo == remover) {
anterior->proximo = atual->proximo;
delete atual;
return 1;
}
else {
anterior = atual;
atual = atual->proximo;
}
}
return 0;
}
}
#endif // BIBLIOTECA_H_INCLUDED
@vangodp
adicionado 2 minutos depois
@vangodp eu estou conseguindo inserir no arquivo.txt mas inserir novamente na lista nao estou conseguindo