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);
}
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
VMs e Interfaces de Rede desapareceram (12)
Instalação do drive do adaptador wiffi (7)