C/Visual C - PROGRAMA DE GESTION DE UN CINE EN C

 
Vista:

PROGRAMA DE GESTION DE UN CINE EN C

Publicado por CHICA (3 intervenciones) el 06/03/2007 22:44:06
Hola!
Me piden hacer el siguiente ejercicio en el lenguaje C:

Queremos llevar la gestión de un cine, de tal manera que podamos comprar
butacas( una o varias de la misma fila)
El tamaño del teatro es de 10 filas y cada fila tiene 20 butacas.
Nos debe indicar el precio final suponiendo que vale 6 euros la entrada de adulto y 4
para los niños.
Debemos realizar un menú que contenga lo siguiente:
1.- Ver todo el teatro , butacas compradas y vacias.
2.- Comprar entradas.
3.- Devolver entradas.
4.- Salir.
Realizar el programa mediante funciones, matrices y estructuras.
Ver el cine de la siguiente manera :
1- Butaca reservada
0- Butaca Vacia.

Asi deberia de aparecer:
Filas ----------------------------------------------------------------------------
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0
7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0

Donde mas ayuda necesito es en lo de comprar y devolver entradas y en como indicar el precio final suponiendo que vale 6 euros la entrada de adulto y 4 para los niños y el q se me reserven las butacas.

Gracias y espero vuestra ayuda, lo mas rapido posible.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROGRAMA DE GESTION DE UN CINE EN C

Publicado por Nelek (816 intervenciones) el 07/03/2007 07:35:38
Para hacer el menú, te recomiendo hacer una cascada de printf, y justo detras te pones un switch para evaluar la opcion introducida, llamando a la funcion necesaria o repeitiendo el menu si no es valida.

Te recomiendo una funcion especifica para presentar las butacas en la pantalla y asi saber cuales quedan libres o no al comprar o comprobar si se ha liberado un asiento despues de una devolucion.

La distribucion de butacas va en una matriz, o un vector de 10 vectores con 20 posiciones (a tu gusto)

Para comprar entradas, preguntas si es ninio o adulto y lo guardas en una variable intermedia que te ayude a diferenciar el precio. Luego preguntas el numero de entradas, sacas la distribucion de las butacas y preguntas donde quieren sentarse. Una vez tienes los datos, recorres la matriz con dos for anidados (si no tienes hecha la matriz por punteros o del tipo [i][j]) y cuando encuentras la posicion indicada... Le metes el 1 de vendido.

Para la devolucion de entradas... lo mismo pero preguntando cuales eran las posiciones del/de los asiento/s a devolver. Y en lugar de decir XXX = 1, pones XXX = 0, donde XXX es el nombre de la variable que guarda si el asiento esta libre o no.

Si quieres algo mas especifico, pregunta algo mas especifico :P
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROGRAMA DE GESTION DE UN CINE EN C

Publicado por CHICA (3 intervenciones) el 07/03/2007 19:54:01
Muchas gracias Nelek por la ayuda.

El menu y q se muestre las butacas (todo a 0, como ninguna comprada) ya lo he hecho.

Lo q sigo sin ver como hacer es lo de devolver entradas y en como indicar el precio final suponiendo que vale 6 euros la entrada de adulto y 4 para los niños.

¿Me podrias ayudar tu o alguien haciendo el codigo de eso?

Besos y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROGRAMA DE GESTION DE UN CINE EN C

Publicado por Nelek (816 intervenciones) el 08/03/2007 07:37:41
Lo dicho,

Si tienes el menu hecho, lo siguiente es, por ejemplo al comprar la entrada:

//Aqui va el menu con sus opciones: venta, devolucion, ver estado... salir

Se elige venta:

void vender_entrada ()
{
int comprador = -1, fila = -1, columna = -1, pagado = -1;
preguntalabel:
printf ("El comprador es adulto (0) o ninio (1)?\n");
scanf ("%d", &comprador);
if ((comprador != 0) && (comprador != 1))
goto preguntalabel;

filalabel:
printf ("Donde quiere sentarse?\nFila?\n");
scanf ("%d", &fila);
if ((fila < 1) && (fila > limite_fila))
goto filalabel;

columnalabel:
printf ("Asiento número (columna)?\n");
scanf ("%d", &columna);
if ((columna < 1) && (columna > limite_columna))
goto columnalabel;

pagadolabel:
if (comprador == 1)
printf ("El precio es: .....\n Pagado? (0 = no pagado, 1 = pagado)");
else if (comprador == 0)
printf ("El precio es: .....\n Pagado? (0 = no pagado, 1 = pagado)");

scanf ("%d",&pagado);
if ((pagado != 0) && (pagado != 1))
goto pagadolabel;
else
matriz_sitios [fila] [columna] = 1;

return;
}

y para la devolucion pues poco cambia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROGRAMA DE GESTION DE UN CINE EN C

Publicado por alberto (3 intervenciones) el 08/03/2007 12:40:56
hola creo que estamos relizando un programa similar con lo de la gstion del cine
si miras en la pregunta de matrices dinamica tienes algo de informacion,
estaria bien si pudieses que colgases el codigo que tuvieses.
gracias
si te falta algun menu o alguna funcion dimelo que tengo mas codigo sin publicar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROGRAMA DE GESTION DE UN CINE EN C

Publicado por CHICA (3 intervenciones) el 20/03/2007 01:16:19
Hola, muchas gracias por la ayuda.
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PROGRAMA DE GESTION DE UN CINE EN C

Publicado por Erick Luna (1 intervención) el 22/11/2019 20:48:17
hola que tal yo tengo el mismo problema. Alguno de ustedes me podria porporcionar el codigo fuente de dicho programa? se los agradeceria mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE GESTION DE UN CINE EN C

Publicado por Israel Luengo Garcia a.k.a Snaked of Polygon (6 intervenciones) el 07/01/2020 22:51:50
hola CHICA y Erick ....supongo que a ti te valdra Erik ya que estoy viendo que el post es del año 2007 y tu de noviembre de 2019 .... me he tomado unos minutos para hacerte el codigo .....no es perfecto pero seguro que se te ocurren ideas para mejorarlo

un Saludo ...

Snaked-.

CODIGO EN C++ Builder 10.3 (Rad Studio modo consola)

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
#pragma hdrstop
#pragma argsused
 
#ifdef _WIN32
#include <tchar.h>
#else
  typedef char _TCHAR;
  #define _tmain main
#endif
 
#include <stdio.h>
#include <conio.h>
 
void PINTA_BUTACAS(void);
 
bool CINE_BUTACAS[10][20];
int BUTACAS_POR_EDADES[10][20];
bool toggle = false;
 
int _tmain(int argc, _TCHAR* argv[])
{
 
  for(;;)
  {
	int opcion=0;
	int butaca_fila = 0;
	int butaca_asiento = 0;
 
	 PINTA_BUTACAS();
	 toggle = false;
 
	 gotoxy(1,14);
	 printf("Introduce opcion\r\n (1) Comprar Entradas (2) Devolver Entradas (3) Ver Por Edades (4) SALIR: ");
	 scanf("%d",&opcion);
 
	 switch(opcion)
	   {
		 case 1:
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("(1) Adulto (2) Niños: ");
				 scanf("%d", &opcion);
 
				 if(opcion == 1)
				  {
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("Introduce Fila (1 a 10): ");
				 scanf("%d", &butaca_fila);
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("Introduce Numero de Asiento (1 a 20): ");
				 scanf("%d", &butaca_asiento);
 
 
					CINE_BUTACAS[butaca_fila-1][butaca_asiento-1] = 1;
 
					BUTACAS_POR_EDADES[butaca_fila-1][butaca_asiento-1] = 1;
				  }
 
			 if(opcion == 2)
			  {
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("Introduce Fila (1 a 10): ");
				 scanf("%d", &butaca_fila);
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("Introduce Numero de Asiento (1 a 20): ");
				 scanf("%d", &butaca_asiento);
 
 
					CINE_BUTACAS[butaca_fila-1][butaca_asiento-1] = 1;
					BUTACAS_POR_EDADES[butaca_fila-1][butaca_asiento-1] = 2;
				   }
			  break;
 
		 case 2:
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("Introduce Fila (1 a 10): ");
				 scanf("%d", &butaca_fila);
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("Introduce Numero de Asiento (1 a 20): ");
				 scanf("%d", &butaca_asiento);
 
					CINE_BUTACAS[butaca_fila-1][butaca_asiento-1] = 0;
					BUTACAS_POR_EDADES[butaca_fila-1][butaca_asiento-1] = 0;
 
				 gotoxy(1,15);
				 printf("%80s", " ");
				 printf("La butaca %d de la fila %d ahora vuelve a estar libre..Pulsa una tecla", butaca_asiento, butaca_fila);
				 getch();
 
 
				  break;
 
		case 3:
				toggle = true;
 
				break;
 
 
		case 4:
				goto Exit;
				break;
	   }
  }
 
Exit:
//End of Cine program....main function exit point
return(0);
}
 
void PINTA_BUTACAS(void)
{
  clrscr();
 
  if(toggle == true)
  {
	 clrscr();
  for(int fila=0; fila <=9; ++fila)
   {
	gotoxy(1, fila+1);
	printf("%d", fila+1);
		gotoxy(4, fila+1);
	for(int butac=0; butac <=19; ++butac)
	 {
	  switch(CINE_BUTACAS[fila][butac])
	   {
		 case 0:
				 printf("%d ", CINE_BUTACAS[fila][butac]);
				 break;
		 case 1:
				 if(BUTACAS_POR_EDADES[fila][butac] == 1)
				  {	textattr(10);
					cprintf("A ", CINE_BUTACAS[fila][butac]);
				  }
 
				  else if(BUTACAS_POR_EDADES[fila][butac] == 2)
				  {	textattr(10);
					cprintf("N ", CINE_BUTACAS[fila][butac]);
				  }
                  break;
 
	   }
 
 
	 }
   }
  }
 
  else if(toggle == false)
  {
   for(int fila=0; fila <=9; ++fila)
	{
	  gotoxy(1, fila+1);
	  printf("%d", fila+1);
		gotoxy(4, fila+1);
		for(int butac=0; butac <=19; ++butac)
	 {
	   if(BUTACAS_POR_EDADES[fila][butac] == 1 || BUTACAS_POR_EDADES[fila][butac] == 2)
	   {
		textattr(10);
		cprintf("%d ", CINE_BUTACAS[fila][butac]);
	   }
	   else { printf("%d ", CINE_BUTACAS[fila][butac]); }
	 }
  }
 }
 
 
}

te dejo un RAR con todos los archivos y el EXE para que veas que funciona....incluso te muestra los Adultos y Niños en las butacas
lo de el precio de venta ya te lo dejo a ti

http://www.stardust-game.org/testing/CINE.rar

revisa el codigo del RAR en concreto esta linea al final que he corregido ahora

1
if(BUTACAS_POR_EDADES[fila][butac] == 1 || BUTACAS_POR_EDADES[fila][butac] == 2)

en el codigo pone:

1
if(BUTACAS_POR_EDADES[fila][butac] == 'A' || BUTACAS_POR_EDADES[fila][butac] == 'N')

pero es erroneo ya que el array es de numeros enteros (1 = adulto - 2 = niño)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar