Problem with static queue c ++

Hello this is code, but not show list help me please

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define longitud 30

using namespace std;
const float precio = 1.25;

float num1=0, num2=0, cant1=0, cant2=0;

//declarando estructura dinamica

typedef struct colaD{
	int numCliente;
	int filaAtencion;//1 o 2
	int cantidad;
	float total;
	int frente, final;
	char palabra[longitud];
} cola;

//prototipos de la funcion

void agregar(cola *c, char,int,int,int,float);
void mostrar(cola *&);
void mostrarFila1(cola *&);
void mostrarFila2(cola *&);
void atendido(cola *&);
void Display();

void menu(void);


int main(){

cola cl;
cola *front= NULL;
	cl.frente=-1;
	cl.final=-1;
	
	int cant; char let;
int opcion=0;

do{
	cout<<endl;
	cout<<"------------- venta de chrorys---------"<<endl;
	cout<<"sELECCION UNA OPCION" <<endl;
	cout<<"1- Registrar venta"<<endl;
	cout<<"2- Mostrar los clientes en espera"<<endl;
	cout<<"3- Mostrar los clientes de la fila 1"<<endl;
	cout<<"4- Mostrar los clientes de la fila 2"<<endl;
	cout<<"5- Mostrar estadisticas de clientes atendidos"<<endl;
	cout<<"6- salir"<<endl;
	cin>>opcion;
	cout<<endl;
	if(opcion==1){
			cout<<"Registrando la venta"<<endl;
			cin>>let;
	cout<<"Ingrese los siguientes datos: "<<endl;
	cout<<"Numero: ";
	cin>>cl.numCliente;cout<<endl;
	do{
		cout<<"Fila (1 0 2)";
		cin>>cl.filaAtencion;
	}while(!(cl.filaAtencion>=1 && cl.filaAtencion<=2));cout<<endl;
	cout<<"cantidad "; cin>>cl.cantidad;cout<<endl;
	cl.total=cl.cantidad*precio;
	agregar(&cl,let,cl.numCliente,cl.filaAtencion,cl.cantidad,cl.total);
	}
	if(opcion==2){
		//mostrando la cola
		
		Display();
		mostrar(front);
	}
	
	if(opcion==3){
		//mostrando la cola 1 
		mostrarFila1(front);
	}
	
	if(opcion==4){
		//mostrando la cola 2
		mostrarFila2(front);
	}
	
	if(opcion==5){
		//mostrando estadisticas
		atendido(front);
	}
	
	system("Pause");
	system("cls");
}while(opcion!=6);

}


//implementando las funciones
void agregar(cola *c, char letra,int numCliente,int filaAtencion,int cantidad,float total){
	
	if(c->final==(longitud-1)){
		cout<<"La cola esta llena"<<endl;
	}else{
		if(c->frente==-1){
			c->frente=0;
		}else{
			c->final++;
			c->palabra[c->final]=letra;
		
		}
	}

}
void Display() {
	
	cola *c;
   if (c->frente == - 1)
   cout<<"Queue is empty"<<endl;
   else {
      cout<<"Queue elements are : ";
      for (int i = c->frente; i <= c->final; i++)
      cout<<"hola"<<c->palabra<<" ";
         cout<<endl;
   }
}
//mostrando los datos de la cola

void mostrar(cola *&frente){
	cola *ubicarse;//para ir a cada elemento de la cola, puntrro auxiliar
	ubicarse=frente;//apunta al primer elemento de la ccola
	if(ubicarse!=NULL){
		cout<<"Mostrando los clientes en espera"<<endl<<endl;
		while(ubicarse!=NULL){
			cout<<"Numero: "<<ubicarse->numCliente<<"\t";
			cout<<"Fila:"<<ubicarse->filaAtencion<<"\t";
			cout<<"cantidad:"<<ubicarse->cantidad<<"\t";
			cout<<"Total: $ "<<ubicarse->total<<"\t"<<endl;
			cout<<"---------------------------------------------------"<<endl<<endl;
			ubicarse=ubicarse;
		}
	}else{
		cout<<"No hay ventas"<<endl;
	}
}


//mostrar los clientes que estan en fila 1

void 	mostrarFila1(cola *&frente){
	cola *ubicarse;//para ir a cada elemento de la cola, puntrro auxiliar
	ubicarse=frente;//apunta al primer elemento de la ccola
	if(ubicarse!=NULL){
		cout<<"Mostrando los clientes en espera en fila 1"<<endl<<endl;
		while(ubicarse!=NULL){
			if(ubicarse->filaAtencion==1){
				
					cout<<"Numero: "<<ubicarse->numCliente<<"\t";
					cout<<"Fila:"<<ubicarse->filaAtencion<<"\t";
					cout<<"cantidad:"<<ubicarse->cantidad<<"\t";
					cout<<"Total: $ "<<ubicarse->total<<"\t"<<endl;
					cout<<"---------------------------------------------------"<<endl<<endl;
			
			}
			ubicarse=ubicarse;
		}
	}else{
		cout<<"No hay ventas"<<endl;
	}
}


//mostrar los clientes que estan en fila 2

void mostrarFila2(cola  *&frente){
	cola *ubicarse;//para ir a cada elemento de la cola, puntrro auxiliar
	ubicarse=frente;//apunta al primer elemento de la ccola
	if(ubicarse!=NULL){
		cout<<"Mostrando los clientes en espera en fila 1"<<endl<<endl;
		while(ubicarse!=NULL){
			if(ubicarse->filaAtencion==2){
				
					cout<<"Numero: "<<ubicarse->numCliente<<"\t";
					cout<<"Fila:"<<ubicarse->filaAtencion<<"\t";
					cout<<"cantidad:"<<ubicarse->cantidad<<"\t";
					cout<<"Total: $ "<<ubicarse->total<<"\t"<<endl;
					cout<<"---------------------------------------------------"<<endl<<endl;
			
			}
			ubicarse=ubicarse;
		}
	}else{
		cout<<"No hay ventas"<<endl;
	}
}


//mostrando estadisticas del dia, de los choris que se vendieron

void atendido(cola *&frente){
	float venta,p1,p2,totalClientes;
	
	if(frente!=NULL){
		cout<<"Mostrando estadistica de venta en el dia"<<endl<<endl;
		
		cola * contenedor=frente;
		int dato=frente->numCliente;
		if(frente->filaAtencion==1){
			num1++;
			cant1=cant1+frente->cantidad;
		}
		if(frente->filaAtencion==2){
			num2++;
				cant2=cant2+frente->cantidad;
		}
		
		frente=frente;
		cout<<"cliente atendido"<<endl<<endl;
		delete contenedor;
		
		venta=cant1+cant2;
		
		totalClientes=num1+num2;
		p1=(num1*100)/totalClientes;
		p2=(num2*100)/totalClientes;
		cout<<"El total de clientes atendidos fueron: "<<totalClientes<<endl;
		cout<<"Porcentajes de clientes atendidos en la fila 1: "<<p1<<endl;
		cout<<"Porcentajes de clientes atendidos en la fila 2: "<<p2<<endl;
		cout<<endl;
		cout<<"--------estadisticas sonre ventas en total y por fila---"<<endl;
		cout<<"Cantidad de chorys vendido: "<<venta<<endl;
		cout<<"Las ventas del dia son: $ "<<(venta*precio)<<endl;
		cout<<"Fila 1: \t"<<"cantidad: "<<cant1<<"\t total: $ "<<cant1*precio<<endl;
		cout<<"Fila 2: \t"<<"cantidad: "<<cant2<<"\t total: $ "<<cant2*precio<<endl;
		
	}else{
		cout<<"No hay ventas"<<endl;
	}
}

/* */


Ejercicio a desarrollar en la tutoria 8

Realice un programa en C/C++ usando cola estatica, que permita registrar la venta de chorys. Se tienen dos filas para vender y los datos a registrar son:

• Numero de cliente, es un correlativo.

• Numero de fila (debe validar que se 1 o 2).

• Cantidad de chorys que lleva y el total a pagar. Para ello debe considerar que el chory vale $1.25, esta se debe definir como una constante.

Se debe realizar lo siguiente:

a) Registrar los clientes en la cola.

b) Mostrar todos los clientes de la cola.

c) Mostrar los clientes que están en la fila 1.

d) Mostrar los clientes que están en la fila 2.

e) Mostrar estadísticas de clientes atendidos, es decir los que ya se despacharon.

Para el literal e) debe mostrar:

Total de clientes atendidos, porcentaje de clientes atendidos en la fila 1, porcentaje de clientes atendidos en la fila 2, la cantidad de chorys que se vendieron, El monto total de las ventas realizadas, mostrar por la fila 1 y la fila 2: cantidad de chorys vendidos y el total en dinero.

Debe realizar un menú para las diferentes opciones.


*/
Last edited on
One obvious problem is that c is uninitialized.
Your compiler should have warned you of this.

1
2
3
4
void Display() {

cola *c;          // uninitialized pointer
if (c->frente == - 1)      


PLEASE ALWAYS USE CODE TAGS (the <> formatting button) when posting code.
It makes it easier to read your code and also easier to respond to your post.
http://www.cplusplus.com/articles/jEywvCM9/
Hint: You can edit your post, highlight your code and press the <> formatting button.
Last edited on
make other method but not show

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void 	mostrarFila1(cola *&frente){
	cola *ubicarse;//para ir a cada elemento de la cola, puntrro auxiliar
	ubicarse=frente;//apunta al primer elemento de la ccola
	if(ubicarse!=NULL){
		cout<<"Mostrando los clientes en espera en fila 1"<<endl<<endl;
		while(ubicarse!=NULL){
			if(ubicarse->filaAtencion==1){
				
					cout<<"Numero: "<<ubicarse->numCliente<<"\t";
					cout<<"Fila:"<<ubicarse->filaAtencion<<"\t";
					cout<<"cantidad:"<<ubicarse->cantidad<<"\t";
					cout<<"Total: $ "<<ubicarse->total<<"\t"<<endl;
					cout<<"---------------------------------------------------"<<endl<<endl;
			
			}
			ubicarse=ubicarse;
		}
	}else{
		cout<<"No hay ventas"<<endl;
	}
}

Line 16: You're assigning a pointer to itself. That does nothing.

Referring to your original code (thanks for adding code tags).
Are you writing C or C++? Your title says C++.
The following headers are all C headers. You should be using the C++ headers.
2
3
4
5
6
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>     // This header is obsolete 


Line 16: typedef is not necessary in C++.
Line 34: (void) void is not necessary in C++ if there are no arguments.
Topic archived. No new replies allowed.