Sei sulla pagina 1di 11

Fall

08
Universidad Abierta Interamericana
Mayo 2009

Primer Trabajo Práctico


Programación Estructurada
Ejercicio Combinado Nro 7.

Alejandro Freccero, DNI 30.667.440, Turno Noche


Primer Trabajo Practico

Codificación C
/*
Programa : TP1.CPP
Programador : Alejandro Freccero
Descripción : Primer Trabajo Práctico
Fecha de Creación : 11 de Mayo 2009
Revisión : Primera

EJERCICIO COMBINADO NÚMERO 7. PAGINA DEL LIBRO NRO. 68

Consignas:

Una cartelera de Cine tiene 5 sucursales, y vende


a un precio de $7 las entradas para sus salas en los
3 turnos, si compran m s de 8 asientos en un solo ticket se le
hará un 10% de descuento.

En este momento se está n exhibiendo las siguientes películas:


1. Belleza americana
2. El informante
3. La hija del general
4. Al filo de la muerte

Cada vez que compran, le dan un ticket donde figura,


1. Numero de sucursal
2. Numero de película
3. Cantidad de asientos comprados
4. Turno

Se desea saber:
a. Cantidad de asientos vendidos en cada turno
b. Películas de mayor recaudación
c. Sucursal que vendió menos en total en pesos
d. Si cada sucursal recibe un 20% de lo recaudado, cuanto gano cada una.
e. Porcentual que representa lo recaudado por película sobre el total.
f. Ticket de menor valor
g. Cantidad de asientos vendidos en la película 2, en
la sucursal 3 y turno tarde
h. Cual fue el promedio de asientos solicitados por cada sucursal.

*/

#include <stdio.h>
#include <conio.h>
void main(void)
{
int suc,peli,tur,cant,prec,
recpel1=0,pel1cont=0,recpel2=0,pel2cont=0,
recpel3=0,pel3cont=0,recpel4=0,pel4cont=0,
assuc2tt=0,cantur1=0,cantur2=0,cantur3=0,
suc1tot=0,suc1asien=0,suc2tot=0,suc2asien=0,suc3tot=0,suc3asien=0,
suc4tot=0,suc4asien=0,suc5tot=0,suc5asien=0,
precmin,band1=0,recpelmax,recsucmin,band2=0,band3=0,
recpeltot,sucasien;
float recsuc1,recsuc2,recsuc3,recsuc4,recsuc5,
promsuc1,promsuc2,promsuc3,promsuc4,promsuc5,
prompel1,prompel2,prompel3,prompel4
;

Alejandro Freccero
Paá gina 2
Primer Trabajo Practico

clrscr();
printf("Ingrese el Numero de Sucursal: ");
scanf("%d",&suc);

// Valido la Entrada
while (suc>5)
{
printf("\nCodigo Ingresado Incorrecto, vuelva a intentar\n");
printf("Ingrese Codigo Correcto: ");
scanf("%d",&suc);
}

while (suc != 0)
{
printf("\nCodificacion de Peliculas");
printf("\nPelicula 1: Belleza Americana");
printf("\nPelicula 2: El Informante");
printf("\nPelicula 3: La Hija del General");
printf("\nPelicula 4: Al Filo de la Muerte");
printf("\n------");
printf("\nIngrese el Numero de Pelicula: ");
scanf("%d",&peli);
// Valido la Entrada
while (peli>4)
{
printf("\nCodigo Ingresado Incorrecto, vuelva a intentar\n");
printf("Ingrese Codigo Correcto: ");
scanf("%d",&peli);
}

printf("\nCodificacion de Turnos \n");


printf("Turno Manana: 1\n");
printf("Turno Tarde: 2\n");
printf("Turno Noche: 3\n");
printf("\n------");
printf("\nIngrese el Numero de Turno: ");
scanf("%d",&tur);
// Valido la Entrada
while (tur>4)
{
printf("\nCodigo Ingresado Incorrecto, vuelva a intentar\n");
printf("Ingrese Codigo Correcto: ");
scanf("%d",&tur);
}

printf("\nIngrese Cantidad de Asientos: ");


scanf("%d",&cant);

// Calculo el Precio (Definido en el Enunciado)


if (cant>8)
{
prec=(cant*7)-(cant*7*0.1);
}
else
{
prec=(cant*7);
}

//// Case de Peliculas para los contadores x Pelicula


// Cantidad de Asientos relXcont x Pelicula

Alejandro Freccero
Paá gina 3
Primer Trabajo Practico

// Recaudacion por Pelicula recpelX y Recaudacion Max (Punto B)


switch(peli)
{
case 1:
recpel1=recpel1+prec;
pel1cont=pel1cont+cant;
if ((recpel1>recpelmax)||(band3==0))
{
band3=1;
recpelmax=peli;
}
break;
case 2:
recpel2=recpel2+prec;
pel2cont=pel2cont+cant;
// Asientos de la Peli 2,Suc 3, Turn Tard. (Punto G)
if ((suc==3) && (tur==2))
{
assuc2tt=assuc2tt+cant;
}
if ((recpel2>recpelmax)||(band3==0))
{
band3=1;
recpelmax=peli;
}
break;
case 3:
recpel3=recpel3+prec;
pel3cont=pel3cont+cant;
if ((recpel3>recpelmax)||(band3==0))
{
band3=1;
recpelmax=peli;
}
break;
case 4:
recpel4=recpel4+prec;
pel4cont=pel4cont+cant;
if ((recpel4>recpelmax)||(band3==0))
{
band3=1;
recpelmax=peli;
}
break;
}

//// Case de Turnos para los Calculos de los Turnos...


// Cantidad de Asientos por Turno (Punto A)
switch(tur)
{
case 1:
cantur1=cantur1+cant;
break;
case 2:
cantur2=cantur2+cant;
break;
case 3:
cantur3=cantur3+cant;
break;
}

Alejandro Freccero
Paá gina 4
Primer Trabajo Practico

//// Case de Suc para los Calculos por cada Sucursal, tambien los Min.
// Recaudacion por Sucursal sucXtot, Asientos por Suc sucXasient
// Recaudacion Minima (recsucmin) x Sucursal (Punto C)
switch(suc)
{
case 1:
suc1tot=suc1tot+prec;
suc1asien=suc1asien+cant;
if ((suc1tot<recsucmin)||(band2==0))
{
recsucmin=suc;
band2=1;
}
break;
case 2:
suc2tot=suc2tot+prec;
suc2asien=suc2asien+cant;
if ((suc2tot<recsucmin)||(band2==0))
{
recsucmin=suc;
band2=1;
}
break;
case 3:
suc3tot=suc3tot+prec;
suc3asien=suc3asien+cant;
if ((suc3tot<recsucmin)||(band2==0))
{
recsucmin=suc;
band2=1;
}
break;
case 4:
suc4tot=suc4tot+prec;
suc4asien=suc4asien+cant;
if ((suc4tot<recsucmin)||(band2==0))
{
recsucmin=suc;
band2=1;
}
break;
case 5:
suc5tot=suc5tot+prec;
suc5asien=suc5asien+cant;
if ((suc5tot<recsucmin)||(band2==0))
{
recsucmin=suc;
band2=1;
}
break;
}

//// Inicio de Calculos y Estadisticas


// Calculo el Ticket Menor Valor (Punto F)
if ((prec<precmin)||(band1==0))
{
band1=1;
precmin=prec;
}

Alejandro Freccero
Paá gina 5
Primer Trabajo Practico

// Ganancia Real Por Sucursal (Punto D)


recsuc1= (float)suc1tot*0.20;
recsuc2=(float)suc2tot*0.20;
recsuc3=(float)suc3tot*0.20;
recsuc4=(float)suc4tot*0.20;
recsuc5=(float)suc5tot*0.20;

// Porcentual de ganancia x Pelicula Sobre Total


recpeltot=recpel1+recpel2+recpel3+recpel4;
prompel1=((float)recpel1*100)/(float)recpeltot;
prompel2=((float)recpel2*100)/(float)recpeltot;
prompel3=((float)recpel3*100)/(float)recpeltot;
prompel4=((float)recpel4*100)/(float)recpeltot;

// Porcentual de Asientos solicitados por cada Suc (Punto H)


sucasien=suc1asien+suc2asien+suc3asien+suc4asien+suc5asien;
promsuc1=((float)suc1asien*100)/(float)sucasien;
promsuc2=((float)suc2asien*100)/(float)sucasien;
promsuc3=((float)suc3asien*100)/(float)sucasien;
promsuc4=((float)suc4asien*100)/(float)sucasien;
promsuc5=((float)suc5asien*100)/(float)sucasien;

// Impresion del Ticket por cada Compra


clrscr();
printf("----------------------------------------------");
printf("\n\nTICKET DE COMPRA\n\n");
switch (peli)
{
case 1: printf("Pelicula: Belleza Americana\n"); break;
case 2: printf("Pelicula: El Informante\n"); break;
case 3: printf("Pelicula: La hija del General\n"); break;
case 4: printf("Pelicula: Al filo de la Muerte\n"); break;
}
switch (tur)
{
case 1: printf("Turno Manana\n"); break;
case 2: printf("Turno Tarde\n"); break;
case 3: printf("Turno Noche\n"); break;
}
printf("Sucursal Numero: %d",suc);
printf("\nPrecio por %d asientos: $%d",cant,prec);
printf("\n----------------------------------------------");
printf("\n\nPresione una tecla para Continuar");
getch();
clrscr();

printf("\n\nIngrese el Numero de Sucursal: ");


scanf("%d",&suc);
}

// Al finalizar la entrada con una Sucursal 0, sale del ciclo y muestra las
// estadisticas calculadas dentro del ciclo anterior

clrscr();
printf("------------------------------------------\n\n");
printf("\n\nESTADISTICAS DE LA JORNADA\n\n");
printf("------------------------------------------\n\n");
printf("Cantidad de Asientos en cada Turno:\n");
printf("Turno Tarde: %d, Turno Manana: %d, Turno Noche %d",cantur1,cantur2,

Alejandro Freccero
Paá gina 6
Primer Trabajo Practico

cantur3);
printf("\nCodigo de Pelicula de Mayor Recaudacion: %d",recpelmax);
printf("\nCodigo de Sucursal que vendio Menos: %d",recsucmin);
printf("\n\nGanancias por Sucursal\n");
printf("Sucursal 1: $%f, Sucursal 2: $%f, Sucursal 3: $%f\n",recsuc1,recsuc2,
recsuc3);
printf("Sucursal 4: $%f, Sucursal 5: $%f \n",recsuc4,recsuc5);
printf("\nPorcentual de Recaudacion por Pelicula\n");
printf("Pelicula 1: %f, Pelicula 2: %f, Pelicula 3: %f, Pelicula 4: %f %\n"
,prompel1,prompel2,prompel3,prompel4);
printf("\nTicket de Menor Valor: $ %d \n", precmin);
printf("\nCantidad de Asientos Vendidos para la Pelicula 2,");
printf("\nen el turno tarde, en la sucursal 3: %d \n",assuc2tt);
printf("\nPromedio de asientos pedidos por sucursal\n");
printf("Sucursal 1: %f, Sucursal 2: %f, Sucursal 3: %f\n",promsuc1,promsuc2,
promsuc3);
printf("Sucursal 4: %f, Sucursal 5: %f \n",promsuc4,promsuc5);
printf("------------------------------------------\n");

getch();
}

Alejandro Freccero
Paá gina 7
Primer Trabajo Practico

Diagrama de Jackson

Alejandro Freccero
Paá gina 8
Primer Trabajo Practico

Alejandro Freccero
Paá gina 9
Primer Trabajo Practico

Alejandro Freccero
Paá gina 10
Primer Trabajo Practico

Alejandro Freccero
Paá gina 11

Potrebbero piacerti anche