C/Visual C - funcion con char en modo grafico C

 
Vista:

funcion con char en modo grafico C

Publicado por btc97 (7 intervenciones) el 02/08/2008 04:47:38
Hola,

Primero que todo gracias a m0skit0 y Armando que me ayudaron bastante en un par de consultas que hice hace algunos dias.
Ahora tengo otra.
Tengo que hacer un programa en C para el proyecto final de mi clase de programacion; el cual consiste en una sala de cine que requiere llevar el control de pagos a cada una de sus funciones.
Aki les copio lo que llevo hasta ahora.
Mi pregunta es: como 'envio' la informacion de tipo char a una funcion en modo grafico y como lo recibe?
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

void main ()
{
/* variables modo grafico */
int gdriver = DETECT, gmode;

/* variables programa princ */
char *letras= " ", tecla;
int i=0;

/* inicializa modo grafico */
initgraph(&gdriver, &gmode, "c:\tc\bgi");

/* fondo pantalla pricipal y titulo */
setbkcolor (LIGHTGRAY);
cleardevice();
setfillstyle (1, YELLOW);
bar (1, 1, 635, 40);
setcolor (RED);
settextstyle (TRIPLEX_FONT, HORIZ_DIR, 3);
outtextxy (120, 5, "SALA DE CINE *EL SETIMO ARTE*");

/* cuadro de funciones y su detalle */
bar (5, 45, 100, 60);
settextstyle (DEFAULT_FONT, 0, 1);
outtextxy (10, 50, "FUNCIONES:");
outtextxy (5, 70, "De Lunes a Viernes: 3:30 pm - 6:00 pm - 8:30 pm");
outtextxy (5, 85, "Sabados y Domingos: 1:00 pm - 4:00 pm - 7:00 pm - 9:30");

/* cuadro de precios y tipos de boletos */
bar (5, 100, 155, 115);
outtextxy (10, 105, "PRECIO DE BOLETOS:");
outtextxy (5, 125, "Semana Estreno y Segunda: Normal 2500 / Especial 2000");
outtextxy (5, 140, "Semana 3 y 4: Normal 2000 / Especial 1500");
outtextxy (5, 155, "Semana 5 y 6: Normal 1500 / Especial 1000");

/* seleccion del dia */
bar (5, 170, 260, 190);
outtextxy (10, 176, "Elija el dia:");
do
{
if ((tecla=getch ())!=13)
letras [i++]=tecla;
letras [i]= '';
outtextxy (150, 176, letras);
} while (tecla !=13);
bar (5, 190, 260, 210);
outtextxy (10, 196, "Elija la hora de tanda:");
i=0;
do
{
if ((tecla=getch ())!=13)
letras[i++]=tecla;
letras [i]= '';
outtextxy (200, 196, letras);
} while (tecla!=13);
getch ();
closegraph ();
}

Para ser mas especifica, quisiera hacer funciones que vayan de acuerdo al dia que se eligio y la hora de la funcion (o tanda); para de esa forma entonces poder desplegar el 'mapa' de asientos y preguntar si el pago es en efectivo o tarjeta; etc.
Si pudieran darme un solo ejemplo y luego yo continuo con el resto.
Gracias!!!
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:funcion con char en modo grafico C

Publicado por m0skit0 (15 intervenciones) el 02/08/2008 16:19:47
Primero comentarte que resulta más legible el código y más fácilmente modificable si agrupas las tareas comunes en funciones. Por ejemplo, la inicialización del dispositivo gráfico podría ir en una función aparte.

Bueno, veo que utilizas outtextxy(int, int, *char). Para poder escribir un char con esta función tendrías que crearte un *char (un string, vamos). Por ejemplo:

char *char_a_string(char c)
{
char aux[2];

aux = (char *) malloc(sizeof(aux));
aux[0] = c;
aux[1] = 0

return aux;
}

No olvides llamar a free() para liberar la memoria reservada con malloc(). Salu2
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:funcion con char en modo grafico C

Publicado por igor (22 intervenciones) el 02/08/2008 18:40:20
Un poco rebuscado no m0skit0??

La función utiliza un const *char asi que no veo el problema de hacer:

outtextxy(1,1,"C");

Aunque sinceramente no se si esta era la pregunta.
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:funcion con char en modo grafico C

Publicado por btc97 (7 intervenciones) el 03/08/2008 21:37:40
Gracias m0skit0 e igor por sus ideas.
En realidad creo que no me supe explicar.
Lo que quisiera hacer es por ejemplo donde se le pregunta al usuario que digite el dia de la semana, y se escribe 'lunes' como 'envio' eso para la funcion que me desplegaria el mapa de asientos disponibles? Y de que forma la nueva funcion 'recibe' 'lunes' para ser leido o aceptado para correr la funcion?.
Con un *char?
Espero me sepa explicar...

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:funcion con char en modo grafico C

Publicado por igor (22 intervenciones) el 03/08/2008 23:13:18
Pues no. Cuando dices Función quieres decir Película o Bloque de Código.

Creo que estás mezclando lo que quieres conseguir (lógica del programa) con el código que necesitas para conseguirlo (código C).

Sobre lo que quieres conseguir, gestionar un cine con sus sesiones, butacas, etc. mejor no entres en detalles.

Mejor nos dices cual es la duda sobre el lenguaje C.
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:funcion con char en modo grafico C

Publicado por gerardo (1 intervención) el 10/03/2009 11:57:49
para que sirbe un char
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