Exercicio - Lista simplesmente encadeada

1. Exercicio - Lista simplesmente encadeada

Wendel Rios
wendelrios

(usa Ubuntu)

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)
A questão pede para criarmos uma lista simplesmente encadeada para cada cliente e uma lista simplesmente encadeada para o consumo, ai pede para fazermos:

1) Função Inserir cliente: ao chegar o cliente recebe um código e pode ser adicionado no início ou no final da lista.

2)Função Inserir produto na comanda: encontrar o codigo e anotar o valor do produto na comanda.

3)Função pagar conta: buscar o código do cliente, fazer a soma dos valores do produto, apresentar o valor a ser cobrado e apagar o cliente.

Bom eu fiz as duas primeiras funções, só q na primeira compilada do código, a ide apresentou um erro na função "gerar_codigo" q eu n to entendendo bem, até pq usei a função srand p gerar os codigos, no entanto n entendo mt bem dessa função, eu peguei um exemplo de código na internet e adaptei, então n sei se o erro pode estar na criação da função, segue abaixo o código
#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);
}




os erros apresentados são: ||=== Build file: "no target" in "no project" (compiler: unknown) ===|
C:\Users\altyouth\Desktop\pf_eda\questao_1.cpp|28|error: variable or field 'gerar_codigo' declared void|
C:\Users\altyouth\Desktop\pf_eda\questao_1.cpp|28|warning: extended initializer lists only available with -std=c++11 or -std=gnu++11|
C:\Users\altyouth\Desktop\pf_eda\questao_1.cpp|29|error: expected '}' before ';' token|
C:\Users\altyouth\Desktop\pf_eda\questao_1.cpp|33|error: 'cout' does not name a type|
C:\Users\altyouth\Desktop\pf_eda\questao_1.cpp|34|error: expected declaration before '}' token|
||=== Build failed: 4 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts