OSCAR/COLE1.CPP
2021-09-12 19:50:38 +02:00

358 lines
6.8 KiB
C++

//bibliotecas empleadas
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>
//declaracion de funciones
void inicio();
void recuadro(int x,int y,int x1,int y1);
void principal(void);
char menu(char o);
char menu1(char peliculas[4][15],int sesiones[3],int salas[4]);
char menu2(char peliculas[4][15],int sesiones[3],int cliente[100][3],
int importe[50],int c[1]);
char menu3(int cliente[100][3],int importe[50],int c[1]);
void error(void);
void final(void);
//funcion principal
void main(void)
{
clrscr();
principal();
}
//funcion que llama a todas las funciones
void principal()
{
char o=' ';
char peliculas[4][15]={"0","0","0","0"};
int sesiones[3]={0,0,0};
int salas[4]={0,0,0,0};
int cliente[100][3];
int importe[50];
int i,i1;
int c[1]={0};
//inicializa cliente
for(i=0;i<3;i++)
for(i1=0;i1<100;i1++)
cliente[i1][i]=0;
//inicializa importe
for(i=0;i<50;i++)
importe[i]=0;
inicio();
while(o!='4')
{
o=menu(o);
switch(o)
{
case '1':
o=menu1(peliculas,sesiones,salas);
break;
case '2':
o=menu2(peliculas,sesiones,cliente,importe,c);
break;
case '3':
o=menu3(cliente,importe,c);
break;
case '4':
final();
break;
default :
error();
}
}
}
//funcion crea un recuadro en la coordenadas indicadas
void recuadro(int x,int y,int x1,int y1)
{
int a,b;
for(a=x;a!=x1+1;a++)
for(b=y;b!=y1+1;b++)
{
gotoxy(a,b);
cprintf("Û");
}
}
//funcion para el menu principal
char menu(char o)
{
textbackground(0);
clrscr();
textcolor(4);
recuadro(26,8,56,18);
textbackground(4);
textcolor(15);
gotoxy(28,10);
cprintf("1.-Peliculas en proyeccion");
gotoxy(28,12);
cprintf("2.-Ventas");
gotoxy(28,14);
cprintf("3.-Resultados");
gotoxy(28,16);
cprintf("4.-Finalizar el programa");
if(o==' ')o=getch();
return o;
}
//menu primero
char menu1(char peliculas[4][15],int sesiones[3],int salas[4])
{
char o='0';
int i,n;
textbackground(0);
textcolor(1);
recuadro(1,1,31,10);
textbackground(1);
textcolor(15);
gotoxy(2,2);
cprintf("1.-Dar de alta a 4 peliculas");
gotoxy(2,4);
cprintf("2.-Modificar una pelicula");
gotoxy(2,6);
cprintf("3.-Precios para las sesiones");
gotoxy(2,8);
cprintf("4.-Capacidad de las salas");
o=getch();
switch(o)
{
//Dar de alta a 4 peliculas
case '1':
clrscr();
for(i=0;i<4;i++)
{
gotoxy(30,12);
cprintf("Introduzca Pelicula %i¦:",i+1);
gotoxy(53,12);
gets(peliculas[i]);
gotoxy(53,12);
printf(" ");
}
break;
//modificar una pelicula
case '2':
clrscr();
for(i=0;i<4;i++)
{
gotoxy(30,12+i);
cprintf("%i.-%s",i+1,peliculas[i]);
}
gotoxy(25,18);
cprintf("Introduzca pelicula a cambiar:");
scanf("%d",&n);
//se pone getchar porque sino no sale
getchar();
gotoxy(25,20);
cprintf("Introduzca nuevo nombre:");
gets(peliculas[n-1]);
break;
//poner los precios de las 3 sesiones
case '3':
clrscr();
for(i=0;i<3;i++)
{
gotoxy(30,12);
cprintf("Precios de Sesiones %i¦:",i+1);
gotoxy(53,12);
scanf("%d",&sesiones[i]);
gotoxy(53,12);
printf(" ");
}
break;
//capacidad de las 4 salas
case '4':
clrscr();
for(i=0;i<4;i++)
{
gotoxy(30,12);
cprintf("Capacidad de sala %i¦:",i+1);
gotoxy(51,12);
scanf("%i",&salas[i]);
gotoxy(51,12);
printf(" ");
}
break;
default :
if(o!=' ') error();
}
if(o==' ') return ' ';
else return '1';
}
//menu segundo
char menu2(char peliculas[4][15],int sesiones[3],int cliente[100][3],int importe[50],int c[1])
{
int i,n;
textbackground(2);
textcolor(15);
clrscr();
printf("\t\t\t\tSELECCION DE PELICULA");
for(i=0;i<4;i++)
{
gotoxy(39,12+i);
cprintf("%i.-%s",i+1,peliculas[i]);
}
gotoxy(34,22);
cprintf("Elija pelicula:");
scanf("%i",&n);
cliente[c[1]][0]=n;
clrscr();
printf("\t\t\t\tSELECCION DE LA SESION");
gotoxy(28,14);for(i=0;i<3;i++)
{
gotoxy(39,12+i);
cprintf("%i.-%d",i+1,sesiones[i]);
}
gotoxy(34,22);
cprintf("Elija sesion:");
scanf("%i",&n);
cliente[c[1]][1]=n;
clrscr();
printf("\t\t\t\tSELECCION DE ENTRADAS");
gotoxy(34,12);
cprintf("Numero de entradas:");
scanf("%i",&n);
cliente[c[1]][2]=n;
clrscr();
//calculo del importe
importe[c[1]]=(cliente[c[1]][2])*(sesiones[cliente[c[1]][1]-1]);
gotoxy(34,12);
cprintf("IMPORTE TOTAL:%i",importe[c[1]]);
c[1]++;
getch();
return ' ';
}
//menu tercero
char menu3(int cliente[100][3],int importe[50],int c[1])
{
char o='0';
int i;
int suma[4]={0,0,0,0};
textbackground(0);
textcolor(3);
recuadro(49,14,80,24);
textbackground(3);
textcolor(15);
gotoxy(52,16);
cprintf("1.-Localidades por sala");
gotoxy(52,19);
cprintf("2.-Importe total de ventas");
gotoxy(52,22);
cprintf("3.-Localidades por sesion");
o=getch();
switch(o)
{
case '1':
clrscr();
for(i=0;i<c[1]+1;i++)
{
if(cliente[i][0]==1) suma[0]=suma[0]+cliente[i][2];
if(cliente[i][0]==2) suma[1]=suma[1]+cliente[i][2];
if(cliente[i][0]==3) suma[2]=suma[2]+cliente[i][2];
if(cliente[i][0]==4) suma[3]=suma[3]+cliente[i][2];
}
for(i=1;i<5;i++)
{
gotoxy(30,12+i);
cprintf("Localidades de sala %i¦:%i",i,suma[i-1]);
}
getch();
break;
case '2':
clrscr();
for(i=0;i<c[1];i++)
{
suma[0]=suma[0]+importe[i];
}
gotoxy(35,10);
cprintf("Importe total:%i",suma[0]);
getch();
break;
case '3':
clrscr();
for(i=0;i<c[1]+1;i++)
{
if(cliente[i][1]==1) suma[0]=suma[0]+cliente[i][2];
if(cliente[i][1]==2) suma[1]=suma[1]+cliente[i][2];
if(cliente[i][1]==3) suma[2]=suma[2]+cliente[i][2];
}
for(i=1;i<4;i++)
{
gotoxy(30,12+i);
cprintf("Localidades de sesion %i¦:%i",i,suma[i-1]);
}
getch();
break;
default :
if(o!=' ') error();
}
if(o==' ') return ' ';
else return '3';
}
//error
void error()
{
textcolor(10);
gotoxy(32,2);
cprintf("Eleccion incorrecta");
getch();
printf(" ");
}
//pantalla de presentacion
void inicio()
{
char texto[12]={"BIENVENIDO"};
int x,y,z;
randomize();
z=(rand() %14)+1;
textcolor(z);
for(x=1;x<70;x++)
{
gotoxy(x,12);
cprintf(" %s",texto);
delay(25);
}
for(x=70;x>34;x--)
{
gotoxy(x,12);
cprintf("%s ",texto);
delay(25);
}
delay(1000);
for(y=13;y!=24;y++)
for(x=35;x<45;x=x+2)
{
gotoxy(x,y-1);
cprintf(" ");
gotoxy(x,y);
cprintf("%c",texto[x-35]);
gotoxy(x+1,25-y);
cprintf(" ");
gotoxy(x+1,24-y);
cprintf("%c",texto[x-34]);
delay(50);
}
}
//final del programa
void final()
{
int x,y;
textbackground(0);
for(y=8;y<19;y++)
{
for(x=26;x<57;x++)
{
gotoxy(x,y);
cprintf(" ");
delay(10);
}
}
}