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);
}
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Software livre - será que eu estou tão errado assim? (14)
Boot do PosRog so funciona em notebook (1)