First commit 16/08/1996
This commit is contained in:
423
PROGRAMA.CPP
Normal file
423
PROGRAMA.CPP
Normal file
@ -0,0 +1,423 @@
|
||||
//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);
|
||||
void orden(int numeros[4],int ordenado[4]);
|
||||
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("<EFBFBD>");
|
||||
}
|
||||
|
||||
}
|
||||
//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',pp='0';
|
||||
int i,n;
|
||||
textbackground(0);
|
||||
textcolor(1);
|
||||
recuadro(3,3,34,12);
|
||||
textbackground(1);
|
||||
textcolor(15);
|
||||
gotoxy(4,4);
|
||||
cprintf("1.-Dar de alta a 4 peliculas");
|
||||
gotoxy(4,6);
|
||||
cprintf("2.-Modificar una pelicula");
|
||||
gotoxy(4,8);
|
||||
cprintf("3.-Precios para las sesiones");
|
||||
gotoxy(4,10);
|
||||
cprintf("4.-Capacidad de las salas");
|
||||
gotoxy(27,24);
|
||||
cprintf("<EFBFBD>Pulse <SPACE> para regresar<61>");
|
||||
o=getch();
|
||||
switch(o)
|
||||
{
|
||||
//Dar de alta a 4 peliculas
|
||||
case '1':
|
||||
clrscr();
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
gotoxy(30,i+12);
|
||||
cprintf("Introduzca Pelicula %i<>:",i+1);
|
||||
gotoxy(53,i+12);
|
||||
gets(peliculas[i]);
|
||||
//gotoxy(53,i+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,i+12);
|
||||
cprintf("Precio de la %i<> Sesi<73>n: ",i+1);
|
||||
gotoxy(54,i+12);
|
||||
scanf("%d",&sesiones[i]);
|
||||
//gotoxy(53,12);
|
||||
//printf(" ");
|
||||
}
|
||||
break;
|
||||
//capacidad de las 4 salas
|
||||
case '4':
|
||||
clrscr();
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
if(i==0)pp='A';
|
||||
if(i==1)pp='B';
|
||||
if(i==2)pp='C';
|
||||
if(i==3)pp='D';
|
||||
gotoxy(30,i+12);
|
||||
cprintf("Capacidad de sala %c:",pp);
|
||||
gotoxy(52,i+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])
|
||||
{
|
||||
char pp;
|
||||
int i,n,ent,sesi;
|
||||
textbackground(2);
|
||||
textcolor(15);
|
||||
|
||||
clrscr();
|
||||
gotoxy(27,24);
|
||||
cprintf("<EFBFBD>Pulse <SPACE> para regresar<61>");
|
||||
printf("\t\t\t SELECCIONE UNA PELICULA");
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
if(i==0)pp='A';
|
||||
if(i==1)pp='B';
|
||||
if(i==2)pp='C';
|
||||
if(i==3)pp='D';
|
||||
gotoxy(10,5+i);
|
||||
cprintf("%i.-%s EN LA SALA %c",i+1,peliculas[i],pp);
|
||||
}
|
||||
gotoxy(13,10);
|
||||
cprintf("Elija pelicula:");
|
||||
scanf("%i",&n);
|
||||
cliente[c[1]][0]=n;
|
||||
if(n==1)pp='A';
|
||||
if(n==2)pp='B';
|
||||
if(n==3)pp='C';
|
||||
if(n==4)pp='D';
|
||||
//clrscr();
|
||||
printf("\t\t\t SELECCIONE UNA SESION");
|
||||
gotoxy(18,13);for(i=0;i<3;i++)
|
||||
{
|
||||
gotoxy(39,15+i);
|
||||
cprintf("%i.-%d",i+1,sesiones[i]);
|
||||
}
|
||||
gotoxy(42,19);
|
||||
cprintf("Elija sesion:");
|
||||
scanf("%i",&n);
|
||||
cliente[c[1]][1]=n;sesi=n;
|
||||
|
||||
//clrscr();
|
||||
printf("\t\t\t SELECCIONE UNA ENTRADA");
|
||||
gotoxy(45,22);
|
||||
cprintf("Numero de entradas:");
|
||||
scanf("%i",&n);ent=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,9);
|
||||
cprintf("PELICULA: %s en sala %c",peliculas[cliente[c[1]][0]],pp);
|
||||
gotoxy(34,11);
|
||||
cprintf("%i entradas para la %i<> sesi<73>n ",ent,sesi);
|
||||
gotoxy(34,13);
|
||||
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},sumax[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");
|
||||
gotoxy(27,24);
|
||||
cprintf("<EFBFBD>Pulse <SPACE> para regresar<61>");
|
||||
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=0;i<4;i++)
|
||||
sumax[i]=suma[i];
|
||||
orden(sumax,suma);
|
||||
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,pp,pa;
|
||||
randomize();
|
||||
|
||||
z=(rand() %14)+1;
|
||||
textcolor(z);
|
||||
for(x=1;x<70;x++)
|
||||
{
|
||||
pp=x*20;
|
||||
gotoxy(x,12);
|
||||
cprintf(" %s",texto);
|
||||
sound(pp);
|
||||
delay(10);
|
||||
nosound();
|
||||
delay(25);
|
||||
}
|
||||
for(x=70;x>34;x--)
|
||||
{
|
||||
pp=x*20;
|
||||
gotoxy(x,12);
|
||||
cprintf("%s ",texto);
|
||||
sound(pp);
|
||||
delay(10);
|
||||
nosound();
|
||||
delay(25);
|
||||
}
|
||||
delay(1000);
|
||||
for(y=13;y!=24;y++)
|
||||
for(x=35;x<45;x=x+2)
|
||||
{
|
||||
pp=y*20;pa=x*100;
|
||||
gotoxy(x,y-1);
|
||||
cprintf(" ");
|
||||
gotoxy(x,y);
|
||||
cprintf("%c",texto[x-35]);
|
||||
sound(pp);
|
||||
delay(10);
|
||||
nosound();
|
||||
gotoxy(x+1,25-y);
|
||||
cprintf(" ");
|
||||
gotoxy(x+1,24-y);
|
||||
cprintf("%c",texto[x-34]);
|
||||
sound(pa);
|
||||
delay(10);
|
||||
nosound();
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
void orden(int numeros[4],int ordenado[4])
|
||||
{
|
||||
//int numeros[4]={1,5,6,4};
|
||||
//int ordenado[4]={0,0,0,0};
|
||||
int a=0,i,ind[4]={-1,-1,-1,-1};
|
||||
clrscr();
|
||||
while(a<4)
|
||||
{
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
if((numeros[i]>ordenado[a])&&(ind[0]!=i)&&(ind[1]!=i)&&(ind[2]!=i))
|
||||
{
|
||||
ordenado[a]=numeros[i];
|
||||
ind[a]=i;
|
||||
}
|
||||
}
|
||||
a++;
|
||||
}
|
||||
|
||||
for(i=0;i<4;i++)
|
||||
{
|
||||
printf("%i",ordenado[i]);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user