#include <iostream>
#include<conio.h>
//add: códigos q adicionei;
//sub: códigos q tirei(deixando comentado)
/*
Fazer >>>>>>>>>>>> Equipe de estrutura de Dados
Acrescentar cadastro (string, int)
Acrescentar o Max e Min (int)
Acrescentar = ponteiro,alocação dimanica ,vetores ,algum algoritmo de ordeção
case,funçao recursiva,while,if e else;
*/
using namespace std;
struct farm_estoque
{
string nome;
string tipo;
int codigo;
int saldo;
int quant;
int num; //add
farm_estoque *prox; //add
void insere(string far_nome,string far_tipo, int far_codigo, int far_saldo)
{
nome=far_nome;
tipo=far_tipo;
codigo=far_codigo;
saldo=far_saldo;
saldo=0;
}
void imprimi()
{
cout<< " ||||||||||||||||||||||||||||" <<endl;
cout<< " ||||||||||||||||||||||||||||" <<endl;
cout<< " |||| Gestao de Estoque ||||" <<endl;
cout<< " ||||||||||||||||||||||||||||" <<endl;
cout<< " ||||||||||||||||||||||||||||" <<endl <<endl;
}
void imprimi1()
{
cout << "Medicamento:|"<< nome <<"|"<<"\n";
cout << "Tipo:" <<tipo <<"\n";
cout << "Codigo:" <<codigo <<"\n";
cout << "Quantidade atual:" <<quant<<"\n";
cout << "Quantidade:"<<saldo <<"\n \n";
}
void mudaquant(int mSaldo)
{
quant=mSaldo;
if(quant>saldo){
quant=saldo;
}
if(quant>0){
quant=0;
}
}
};
farm_estoque *inicio = NULL; //add
farm_estoque *fim = NULL; //add
farm_estoque *aux; //add
farm_estoque *anterior; //add
int opcao, numero, achou; //add
int main ()
{
farm_estoque *estoque=new farm_estoque[5];
farm_estoque setor1, setor2, setor3, setor4, setor5,cabecalho;
estoque[0]=setor1; estoque[1]=setor2, estoque[2]=setor3, estoque[3]=setor4, estoque[4]=setor5;
estoque[0].insere("Profenid", "comprimido", 002,100);
estoque[1].insere("Luftal","gotas",003,100);
estoque[2].insere("Flagil","Frasco-Ampola",004,100);
estoque[3].insere("Buscopam","comprimido", 005,100);
estoque[4].insere("Buscopam","ampola", 006,100);
cabecalho.imprimi();
/*for(int i=0; i<5;i++){
estoque[i].imprimi1();
}*/ //sub
do
{
cout<<"\n MENU DE OPÇÕES \n";
cout<<"\n 1 - Inserir na lista";
cout<<"\n 2 - Consultar toda a lista";
cout<<"\n 3 - Remover da lista";
cout<<"\n 4 - Esvaziar a lista";
cout<<"\n 5 - Sair";
cout<<"\n Digite sua opção: ";
cin>> opcao;
if (opcao < 1 || opcao > 5 )
{
cout<<"\n******************"<<endl;
cout<<" Opção Inválida!! "<<endl;
cout<<"******************"<<endl;
}
if (opcao == 1)
{
cout<<"Insira o nome do medicamento: ";
farm_estoque *novo = new farm_estoque();
cin>> novo -> nome;
cout<<"Insira o tipo de remédio: ";
//farm_estoque *novo = new farm_estoque();
cin>> novo -> tipo;
cout<<"Digite o código do produto (somente números): ";//se digitar letras entra em loop infinito
//farm_estoque *novo = new farm_estoque();
cin>> novo -> codigo;
cout<<"Digite a quantidade a ser inserida: ";
cin>> novo -> quant;
if (inicio == NULL)
{
inicio = novo;
fim = novo;
novo -> prox = NULL;
}
else
{
anterior = NULL;
aux = inicio;
while (aux != NULL && novo -> nome > aux -> nome)
{
anterior = aux;
aux = aux -> prox;
}
if (anterior == NULL)
{
novo -> prox = inicio;
inicio = novo;
}
else if (aux == NULL)
{
fim -> prox = novo;
fim = novo;
fim -> prox = NULL;
}
else
{
anterior -> prox = novo;
novo -> prox = aux;
}
}
cout<<"=========================== \n";
cout<<"Dados inseridos na lista!!";
cout<<"\n===========================";
}
if (opcao == 2)
{
if (inicio == NULL)
{
cout<<"Lista vazia!!";
}
else
{
cout<<"\n Consultando a lista ... \n";
aux = inicio;
while (aux != NULL)
{
cout<<"NOME: ";
cout<< aux -> nome <<" ";
cout<<"\nTIPO DE REMÉDIO: ";
cout<< aux -> tipo <<" ";
cout<<"\nCÓDIGO DO PRODUTO: ";
cout<< aux -> codigo <<" ";
cout<<"\nQUANTIDADE DE ITENS: ";
cout<< aux -> quant << " \n";
cout<<"===========================\n";
aux = aux -> prox;
}
}
}
if (opcao == 3)
{
if (inicio == NULL)
cout<<"Lista vazia!!";
else
{
cout<<"\n Digite a código do item a ser removido: ";
cin>> numero;
aux = inicio;
anterior = NULL;
achou = 0;
while (aux != NULL)
{
if (aux -> codigo == numero)
{
achou = achou +1;
if (aux == inicio)
{
inicio = aux -> prox;
delete(aux);
aux = inicio;
}
else if (aux == fim)
{
anterior -> prox = NULL;
fim = anterior;
delete(aux);
aux = NULL;
}
else
{
anterior -> prox = aux -> prox;
delete(aux);
aux = anterior -> prox;
}
}
else
{
anterior = aux;
aux = aux -> prox;
}
}
if (achou == 0)
cout<<"Item não encontrado";
else if (achou >= 1)
cout<<"Item removido " << achou << "vezes";
}
}
if (opcao == 4)
{
if (inicio == NULL)
cout<< "Lista vazia!!";
else
{
aux = inicio;
while (aux != NULL)
{
inicio = inicio -> prox;
delete(aux);
aux = inicio;
}
cout<< "Lista esvaziada";
}
}
getch();
}
while (opcao != 5);
}
//return 0; sub
o código se trata de estoque de medicamentos de uma farmácia ,eu precisaria implementar
algum algoritmo de ordenação,se alguém puder me ajudar por gentileza,estou um pouco perdida onde encaixar algum tipo de algoritmo de ordenação.