
Enviado em 26/06/2017 - 12:29h
Olá, bom eu estou estudando pra minha prova de estrutura de dados e peguei uma questão pra fazer q diz q: devemos simular o controle de um cliente em um bar. Ao chegar, cada cliente recebe uma comanda e ao consumir um produto, este é anotado na sua comanda. Ao fechar a conta, o valor total é mostrado ao clientee após o pagamento a sua comnanda é descartada (desalocar memória)#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
struct cliente{
char produto[10];
int codigo;
struct cliente *prox;
};typedef struct cliente *lista;
lista inicio = NULL;
bool listavazia(){
if(inicio){
return false;
}else{
return true;
}
}
struct comanda{
float preco;
struct comando *prox;
};typedef struct comanda *lista2;
28-void gerar_codigo{
29- srand((unsigned)time(0));
30- int maior = 100;
31- int menor = 0;
32- int aleatorio = rand()%(maior-menor+1)+menor;
33- cout<<"\nO Codigo do cliente eh: "<<aleatorio;
}
void inserir_inicio(){
lista p=inicio;
p = new cliente;
if(listavazia()){
gerar_codigo();
p->codigo = aleatorio;
p->prox = NULL;
inicio = p;
}else if(!listavazia()){
gerar_codigo();
p->codigo = aleatorio;
p->prox = inicio;
inicio = p;
}
}
void inserir_final(){
lista p=inicio, aux=inicio;
p = new cliente;
if(listavazia()){
gerar_codigo();
p->codigo = aleatorio;
p->prox = NULL;
inicio = p;
}else if(!listavazia()){
gerar_codigo();
p->codigo = aleatorio;
p->prox = NULL;
while(aux->prox!=NULL){
aux = aux->prox;
}
p->prox = NULL;
aux->prox = p;
}
}
void inserir_cliente(){
lista p=inicio;
p = new cliente;
if(listavazia()){
cout<<"\n\nAinda nao ha clientes!";
gerar_codigo();
p->codigo = aleatorio;
p->prox = NULL;
inicio = p;
}else if(!listavazia()){
int op;
do{
switch(op){
case 1: inserir_inicio();
break;
case 2: inserir_final();
break;
}
}while(op!=0);
}
}
void inserir_produto(){
lista p=inicio, lista2 p2;
int codigo_aux;
p2 = new comanda;
if(listavazia()){
cout<<"\n\nA lista esta vazia";
}else if(!listavazia()){
while(p!=NULL){
cout<<"\n\nQual o codigo do cliente? ";
cin>>codigo_aux;
if(codigo_aux == p->codigo){
cout<<"\n\nQual o valor do produto a ser pedido? ";
cin>>p2->preco;
}else if(codigo_aux!=p->codigo){
p = p->prox;
}
}
}
}
void menu(int op){
int op;
do{
cout<<"\t\t----MENU----\n\n";
cout<<"--1--Inserir cliente.\n\n";
cout<<"--2--Inserir produto na comanda.\n\n";
cout<<"--0--Sair.\n\n";
switch(op){
case 1: inserir_cliente();
break;
case 2: inserir_produto();
break;
}
} while(op!=0);
}
int main(){
int op;
menu(op);
}
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (19)
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









