1461 lines
46 KiB
C++
1461 lines
46 KiB
C++
#include <graphics.h>
|
||
#include <stdlib.h>
|
||
#include <stdio.h>
|
||
#include <string.h>
|
||
#include <conio.h>
|
||
#include <dos.h>
|
||
#include <time.h>
|
||
#include "a:\gui.h"
|
||
#include "a:\libre.h"
|
||
#include "a:\iconos.h"
|
||
|
||
char titulo[80]={"Programa Gesti¢n del VideoClub Alfa. PROSOFT, Software"};
|
||
char *hora=NULL;
|
||
|
||
int estoy_en=1;// Indica el men£ en el que me encuentro.
|
||
int select_actual=1; // Indica que opci¢n est seleccionada actualmente.
|
||
int n_op_menu=5; // N£mero de opciones del menu. (default menu1=5)
|
||
int refresco=1; // Para el calor... Refresca la pantalla :-).
|
||
int codigo_maxp=0, codigo_maxa=0;
|
||
|
||
int *p_estoy_en=&estoy_en;// -- Punteros a sus respectivas variables. --
|
||
int *p_select_actual=&select_actual;
|
||
int *p_n_op_menu=&n_op_menu;
|
||
int *p_refresco=&refresco;
|
||
FILE *cliente,*clientaux,*fcodigo;
|
||
|
||
// -------- Definici¢n de los patrones o "templates" ---------------------
|
||
struct peliculas {
|
||
char titulo[20], tema[10], director[21], duracion[4];
|
||
int codigo, n_alquileres, alq;
|
||
};
|
||
|
||
struct clientes{
|
||
int codigo;
|
||
char nombre[11], apellidos[21], direccion[21], telefono[11];
|
||
};
|
||
|
||
struct alquileres {
|
||
int lista_pelis[5], socios, codigo;
|
||
float fecha_dev;
|
||
};
|
||
// ---------------- Fin de la definici¢n de los patrones. -----------------
|
||
|
||
struct peliculas pelis; // Declaraci¢n de arrays
|
||
struct clientes socios; // de estructuras.
|
||
struct alquileres presta; // A nivel global.
|
||
|
||
void modo_grafico();
|
||
void menu(int, int);
|
||
void miga(int*, int*);
|
||
void localizacion(int, int, int);
|
||
void reloj(int, int);
|
||
|
||
void altas_clientes();
|
||
void bajas_clientes();
|
||
void modificar_clientes();
|
||
void listar_clientes();
|
||
|
||
void altas_peliculas();
|
||
void bajas_peliculas();
|
||
void modificar_peliculas();
|
||
void listar_peliculas();
|
||
|
||
void altas_alquileres();
|
||
void modificar_alquileres();
|
||
//void listar_alquileres(int);
|
||
|
||
void bajas_alquileres();
|
||
void limpiar3();
|
||
// ***********************************************************************
|
||
// PROGRAMA PRINCIPAL
|
||
// ***********************************************************************
|
||
void main() {
|
||
|
||
modo_grafico();
|
||
//presentacion(); // Me pregunto si llegar‚ a hacerla... ;-). Creo que no.
|
||
menu(estoy_en, select_actual);
|
||
int tecla1, tecla12, sw=1;
|
||
while(sw==1){
|
||
|
||
reloj(423,100);
|
||
//fflush(stdin);
|
||
tecla1=tecla12=9999;
|
||
if (kbhit())
|
||
tecla1=getch();
|
||
|
||
if(tecla1==0) // leemos tecla especial.
|
||
{
|
||
tecla12=getch();
|
||
switch(tecla12) {
|
||
case 72: // Flecha arriba
|
||
if (select_actual<=1)
|
||
select_actual=1;
|
||
else {
|
||
select_actual--;
|
||
menu(estoy_en, select_actual);
|
||
}
|
||
break;
|
||
case 80: // Flecha abajo
|
||
if (select_actual>=n_op_menu)
|
||
select_actual=n_op_menu;
|
||
else{
|
||
select_actual++;
|
||
menu(estoy_en, select_actual);
|
||
}
|
||
break;
|
||
} // fin del switch-case
|
||
}// fin del if
|
||
else
|
||
if (tecla1==13) // MIGA DEL ASUNTO
|
||
{
|
||
miga(p_estoy_en, p_select_actual);
|
||
menu(estoy_en, select_actual);
|
||
}
|
||
else
|
||
if (tecla1==27)
|
||
if (estoy_en==1) // Se acab¢ la funci¢n...
|
||
sw=0;
|
||
else // Navegaci¢n descendente por men£s.
|
||
|
||
{
|
||
*p_estoy_en/=10;
|
||
*p_n_op_menu=5;
|
||
*p_select_actual=1;
|
||
*p_refresco=1;
|
||
menu(estoy_en,select_actual);
|
||
}
|
||
} // fin del while
|
||
|
||
// getch();
|
||
closegraph();
|
||
}
|
||
|
||
// ***********************************************************************
|
||
// --- FUNCIONES DEL PROGRAMA ---
|
||
// ***********************************************************************
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN MIGA (MIGA DEL ASUNTO)
|
||
// (con punteros!, como mola...)
|
||
// ------------------------------------------------------------------------
|
||
void miga(int *p_estoy_en,int *p_select_actual) {
|
||
|
||
*p_refresco=1; // antes de nada tomemos una coca-cola... ;-)
|
||
|
||
switch (*p_estoy_en) // veamos que hay que hacer:
|
||
{
|
||
case 1: // naveguemos por los men£s: ir a menu 1.x
|
||
switch (*p_select_actual)
|
||
{
|
||
case 1:
|
||
*p_estoy_en=11;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=5;
|
||
break;
|
||
case 2:
|
||
*p_estoy_en=12;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=5;
|
||
break;
|
||
case 3:
|
||
*p_estoy_en=13;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=4;
|
||
break;
|
||
case 4:
|
||
*p_estoy_en=14;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=3;
|
||
break;
|
||
case 5:
|
||
exit(1);
|
||
break;
|
||
} // fin del switch-case(select_actual) de navegaci¢n de men£s.
|
||
break;//fin del case 1 general.
|
||
|
||
case 11: // Estamos en las opciones del menu1.
|
||
switch (select_actual) // veamos que hay que hacer.
|
||
{
|
||
case 1: // ALTAS DE CLIENTES.
|
||
altas_clientes();
|
||
break;
|
||
case 2: //BAJAS DE CLIENTES.
|
||
bajas_clientes();
|
||
break;
|
||
case 3: //MODIFICAR CLIENTES.
|
||
modificar_clientes();
|
||
break;
|
||
case 4: // LISTAR CLIENTES.
|
||
//listar_clientes();
|
||
break;
|
||
case 5: // VOLVER AL MENU 1.
|
||
*p_estoy_en=1;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=5;
|
||
break;
|
||
}
|
||
break;
|
||
case 12:
|
||
switch (select_actual) // veamos que hay que hacer.
|
||
{
|
||
case 1: // ALTAS DE PELICULAS.
|
||
//altas_peliculas();
|
||
break;
|
||
case 2: //BAJAS DE PELICULAS.
|
||
//bajas_peliculas();
|
||
break;
|
||
case 3: //MODIFICAR PELICULAS.
|
||
//modificar_peliculas();
|
||
break;
|
||
case 4: // LISTAR PELICULAS.
|
||
//listar_peliculas();
|
||
break;
|
||
case 5: // VOLVER AL MENU 1.
|
||
*p_estoy_en=1;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=5;
|
||
break;
|
||
}
|
||
break;
|
||
case 13:
|
||
switch (select_actual) // veamos que hay que hacer.
|
||
{
|
||
case 1: // ALTAS DE ALQUILERES.
|
||
//altas_alquileres();
|
||
break;
|
||
case 2: //MODIFICAR ALQUILERES.
|
||
//modificar_alquileres(50);
|
||
break;
|
||
case 3: //LISTAR ALQUILERES.
|
||
//listar_alquileres(50);
|
||
break;
|
||
case 4: // VOLVER AL MENU 1.
|
||
*p_estoy_en=1;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=5;
|
||
break;
|
||
}
|
||
break;
|
||
case 14:
|
||
switch (select_actual) // veamos que hay que hacer.
|
||
{
|
||
case 1: // BAJAS DE ALQUILERES.
|
||
//bajas_alquileres(50);
|
||
break;
|
||
case 2: // VOLVER AL MENU 1.
|
||
*p_estoy_en=1;
|
||
*p_select_actual=1;
|
||
*p_n_op_menu=5;
|
||
break;
|
||
}
|
||
break;
|
||
} // fin del switch-case(estoy_en) general (TOCHO).
|
||
} // fin de la funci¢n miga
|
||
|
||
// -----------------------------------------------------------------------
|
||
// FUNCIàN QUE INICIA EL MODO GRµFICO
|
||
// -----------------------------------------------------------------------
|
||
|
||
|
||
void modo_grafico(){
|
||
int gdriver = DETECT, gmode, errorcode;
|
||
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
|
||
errorcode = graphresult();
|
||
if (errorcode != grOk){
|
||
printf("Error al iniciar el modo gr fico: %s\n",
|
||
grapherrormsg(errorcode));
|
||
printf("Pulse cualquier tecla para finalizar...");
|
||
getch();
|
||
exit(1);
|
||
}
|
||
}
|
||
|
||
// -----------------------------------------------------------------------
|
||
// FUNCION MENU
|
||
// -----------------------------------------------------------------------
|
||
void menu(int estoy_en, int select_actual) {
|
||
|
||
//-------------------- CABECERA DE LA PANTALLA -----------------------
|
||
if (*p_refresco) // tomamos otro refresco... (ahora una fanta lim¢n).
|
||
{
|
||
setviewport(0, 0, getmaxx(), getmaxy(), 0);
|
||
settextstyle(2, 0, 5);
|
||
ventana(1, 1, getmaxx(), getmaxy(),titulo,1,9);
|
||
boton(5, 30, getmaxx()-5, 80, 0, "", 9, 3);
|
||
boton (423,100,633,125,0,"",1,7);// para el reloj
|
||
setcolor(8); line(5, 90, getmaxx()-5, 90); // dibujamos una doble
|
||
setcolor(15); line(5, 91, getmaxx()-5, 91); // l¡nea.
|
||
|
||
settextstyle(7,0,6); setcolor (1); // caja central con nuestro
|
||
outtextxy(110,23,"Video Club ALFA"); // logo del videoclub.
|
||
|
||
setcolor(8); line(5, 134, getmaxx()-5, 134); // dibujamos otra doble
|
||
setcolor(15); line(5, 135, getmaxx()-5, 135); // l¡nea.
|
||
|
||
localizacion(estoy_en,125,105); // mostramos en una barra donde estamos
|
||
|
||
*p_refresco=0; // demasiadas burbujas...
|
||
}
|
||
//----------------- fin de la cabecera de la pantalla ------------------
|
||
|
||
setviewport(185, 180, 600, 300, 0); // zona de los botones.
|
||
|
||
switch (estoy_en) // Mostramos un men£ seg£n donde estemos.
|
||
{
|
||
case 1: // ------------- MENU PRINCIPAL ------------------------------
|
||
settextstyle(2,0,6);
|
||
boton(0, 5, 250, 30, 0, "1.- Gesti¢n de Clientes", 16,7);
|
||
boton(0, 45, 250, 70, 0, "2.- Gesti¢n de Pel¡culas", 16,7);
|
||
boton(0, 85, 250, 110, 0, "3.- Alquileres", 16,7);
|
||
boton(0, 125, 250, 150, 0, "4.- Devoluciones", 16,7);
|
||
boton(0, 165, 250, 190, 0, "5.- Salir", 16,7);
|
||
break;
|
||
|
||
case 11: // ---------------- MENU CLIENTES ---------------------------
|
||
settextstyle(2,0,6);
|
||
boton(0, 5, 250, 30, 0, "1.- Altas de Clientes", 16,7);
|
||
boton(0, 45, 250, 70, 0, "2.- Bajas de Clientes", 16,7);
|
||
boton(0, 85, 250, 110, 0, "3.- Modificaciones", 16,7);
|
||
boton(0, 125, 250, 150, 0, "4.- Listado de clientes", 16,7);
|
||
boton(0, 165, 250, 190, 0, "5.- Volver", 16,7);
|
||
break;
|
||
|
||
case 12: // ------------- MENU GESTION DE PEDIDOS ---------------------
|
||
settextstyle(2,0,6);
|
||
boton(0, 5, 250, 30, 0, "1.- Altas de Pel¡culas", 16,7);
|
||
boton(0, 45, 250, 70, 0, "2.- Bajas de Pel¡culas", 16,7);
|
||
boton(0, 85, 250, 110, 0, "3.- Modificaciones", 16,7);
|
||
boton(0, 125, 250, 150, 0, "4.- Listado de datos", 16,7);
|
||
boton(0, 165, 250, 190, 0, "5.- Volver", 16,7);
|
||
break;
|
||
|
||
case 13: //------------------ MENU 3: ALQUILERES --------------------
|
||
settextstyle(2,0,6);
|
||
boton(0, 5, 250, 30, 0, "1.- Altas de Alquiler", 16,7);
|
||
boton(0, 45, 250, 70, 0, "2.- Modificar", 16,7);
|
||
boton(0, 85, 250, 110, 0, "3.- Listar Alquileres", 16,7);
|
||
boton(0, 125, 250, 150, 0, "4.- Volver", 16,7);
|
||
break;
|
||
|
||
case 14:// ------------------- MENU 4: DEVOLUCIONES ------------------
|
||
settextstyle(2,0,6);
|
||
boton(0, 5, 250, 30, 0, "1.- Devoluciones", 16,7);
|
||
boton(0, 45, 250, 70, 0, "2.- Modificaciones", 16,7);
|
||
boton(0, 85, 250, 110, 0, "3.- Volver", 16,7);
|
||
break;
|
||
|
||
} //fin del switch-case(estoy_en).
|
||
setlinestyle(1,0,2);
|
||
switch (select_actual)// Ahora pintamos un recuadro al bot¢n seleccionado.
|
||
{
|
||
case 1:
|
||
rectangle(5,9,245,26);
|
||
setlinestyle(0,0,2);rectangle(0,5,250,30);
|
||
break;
|
||
case 2:
|
||
rectangle(5,49,245,66);
|
||
setlinestyle(0,0,2);rectangle(0,45,250,70);
|
||
break;
|
||
case 3:
|
||
rectangle(5, 89, 245, 106);
|
||
setlinestyle(0,0,2);rectangle(0,85,250,110);
|
||
break;
|
||
case 4:
|
||
rectangle(5, 129, 245, 146);
|
||
setlinestyle(0,0,2);rectangle(0,125,250,150);
|
||
break;
|
||
case 5:
|
||
rectangle(5,169, 245, 186);
|
||
setlinestyle(0,0,2);rectangle(0,165,250,190);
|
||
break;
|
||
|
||
} // fin del switch-case(select_actual).
|
||
setlinestyle(0,0,0); // volvemos a poner el estilo de l¡nea normal.
|
||
} // fin de la funci¢n men£.
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN LOCALIZACIàN
|
||
// ------------------------------------------------------------------------
|
||
void localizacion(int estoy_en, int x, int y) {
|
||
|
||
settextstyle(2,0,5);
|
||
boton(5,100,getmaxx()-225,124,1,"Localizaci¢n:",8,7);
|
||
setcolor(1);
|
||
switch (estoy_en) {
|
||
case 1:
|
||
outtextxy(x,y,"Men£ General");
|
||
break;
|
||
case 11:
|
||
outtextxy(x,y, "Men£ General / Gesti¢n de Clientes");
|
||
break;
|
||
case 12:
|
||
outtextxy(x,y, "Men£ General / Gesti¢n de Pedidos");
|
||
break;
|
||
case 13:
|
||
outtextxy(x,y, "Men£ General / Alquileres");
|
||
break;
|
||
case 14:
|
||
outtextxy(x,y, "Men£ General / Devoluciones");
|
||
break;
|
||
} // fin del switch-case
|
||
} // fin de la funci¢n.
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN RELOJ
|
||
// ------------------------------------------------------------------------
|
||
|
||
void reloj (int x, int y) {
|
||
setviewport(0,0,getmaxx(),getmaxy(),1);
|
||
|
||
time_t t;
|
||
time(&t);
|
||
settextstyle(2,0,5);
|
||
|
||
char *aux=NULL;
|
||
aux=ctime(&t);
|
||
if (strcmp (hora,aux) != 0){
|
||
setcolor(7);
|
||
outtextxy(x+6,y+6,hora);
|
||
strcpy (hora,ctime(&t));
|
||
setcolor(1);
|
||
outtextxy(x+6,y+6,ctime(&t));
|
||
}
|
||
|
||
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN ALTAS DE CLIENTES
|
||
// ------------------------------------------------------------------------
|
||
void altas_clientes() {
|
||
int j=0;
|
||
socios.codigo=0;
|
||
for(int i=0;i<10;i++){
|
||
socios.nombre[i]=NULL;
|
||
socios.telefono[i]=NULL;
|
||
}
|
||
for (i=0;i<20;i++){
|
||
socios.apellidos[i]=NULL;
|
||
socios.direccion[i]=NULL;
|
||
}
|
||
if ((cliente=fopen("k:\\files\\clientes.dat","rb"))==NULL &&
|
||
(cliente=fopen("k:\\files\\clientes.mov","rb"))==NULL){
|
||
j=1;
|
||
fclose(cliente);
|
||
}
|
||
else{
|
||
fclose(cliente);
|
||
clientaux=fopen("k:\\files\\clientes.cdg","a+b");
|
||
fread(&j,2,1,clientaux);
|
||
fclose(clientaux);
|
||
j++;
|
||
}
|
||
|
||
if (j<32000){
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Alta de Clientes",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca los Datos del Cliente:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
setcolor(1); outtextxy(30,70,"Nombre:");
|
||
setcolor(16); boton(120,70,220,90,1,"",0,0);
|
||
setcolor(1); outtextxy(30,100,"Apellidos:");
|
||
setcolor(16); boton(120,100,295,120,1,"",0,0);
|
||
setcolor(1); outtextxy(30,130,"Direcci¢n:");
|
||
setcolor(16); boton(120,130,295,150,1,"",0,0);
|
||
setcolor(1); outtextxy(30,160,"Telefono:");
|
||
setcolor(16); boton(120,160,220,180,1,"",16,0);
|
||
|
||
setcolor(8); outtextxy(30,190,"C¢digo:");
|
||
char aux[11];
|
||
socios.codigo=j;sprintf(aux,"%d",socios.codigo);
|
||
setcolor(16); boton(120,190,220,210,1,"",16,0);
|
||
outtextxy(130,192,aux);
|
||
|
||
icon2(10,73);
|
||
introcad(130,72,socios.nombre,10,16,2,5,7);
|
||
icon8(10,73);icon2(10,103);
|
||
introcad(130,102,socios.apellidos,20,16,2,5,7);
|
||
icon8(10,103);icon2(10,133);
|
||
introcad(130,132,socios.direccion,20,16,2,5,7);
|
||
icon8(10,133);icon2(10,163);
|
||
introcad(130,162,socios.telefono,10,16,2,5,7);
|
||
icon8(10,163);
|
||
ventana(240,160,475,235,"Verificaci¢n de datos",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(270,200,"¨Datos Correctos? (s/n)");
|
||
char respuesta=getch();
|
||
while(respuesta!='n' && respuesta!='s')
|
||
respuesta=getch();
|
||
if (respuesta=='s'){
|
||
cliente=fopen("k:\\files\\clientes.mov","a+b");
|
||
fwrite("A",1,1,cliente);// Tipo de movimiento.
|
||
fwrite(&(socios.codigo),2,1,cliente);
|
||
fwrite(&(socios.nombre),10,1,cliente);
|
||
fwrite(&(socios.apellidos),20,1,cliente);
|
||
fwrite(&(socios.direccion),20,1,cliente);
|
||
fwrite(&(socios.telefono),10,1,cliente);
|
||
fclose(cliente);
|
||
clientaux=fopen("k:\\files\\clientes.cdg","w+b");
|
||
fwrite(&j,2,1,clientaux);
|
||
fclose(clientaux);
|
||
}
|
||
}
|
||
else{
|
||
// imprimir tabla llena
|
||
}
|
||
} // fin de la funci¢n altas_clientes
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN BAJAS DE CLIENTES
|
||
// ------------------------------------------------------------------------
|
||
void bajas_clientes(){
|
||
int sw=1;
|
||
if ((cliente=fopen("k:\\files\\clientes.dat","r+b"))==NULL){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay clientes !!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
char codigo[11]={NULL};
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Bajas de Clientes",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca el C¢digo del Cliente:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
setcolor(8); outtextxy(30,70,"Nombre:");
|
||
setcolor(16); boton(120,70,220,90,1,"",0,0);
|
||
setcolor(8); outtextxy(30,100,"Apellidos:");
|
||
setcolor(16); boton(120,100,295,120,1,"",0,0);
|
||
setcolor(8); outtextxy(30,130,"Direcci¢n:");
|
||
setcolor(16); boton(120,130,295,150,1,"",0,0);
|
||
setcolor(8); outtextxy(30,160,"Telefono:");
|
||
setcolor(16); boton(120,160,220,180,1,"",16,0);
|
||
|
||
setcolor(1); outtextxy(30,190,"C¢digo:");
|
||
setcolor(16); boton(120,190,220,210,1,"",16,0);
|
||
icon2(10,193);
|
||
limpiar3();
|
||
introcad(130,192,codigo,11,0,2,5,7);
|
||
fseek(cliente,0,0);
|
||
while(sw){
|
||
fread(&(socios.codigo),2,1,cliente);
|
||
if (socios.codigo==atoi(codigo))
|
||
sw=0;
|
||
else{
|
||
fseek(cliente,64,1);
|
||
}
|
||
if (feof(cliente))
|
||
break;
|
||
}
|
||
if (sw){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(12,40,"El cliente no es socio nuestro.");
|
||
sound(500);delay(300);nosound();
|
||
getch();
|
||
}
|
||
else{
|
||
icon8(10,193);
|
||
setcolor(0);
|
||
fread(&(socios.nombre),11,1,cliente);
|
||
fread(&(socios.apellidos),21,1,cliente);
|
||
fread(&(socios.direccion),21,1,cliente);
|
||
fread(&(socios.telefono),11,1,cliente);
|
||
fclose(cliente);
|
||
outtextxy(130,72,socios.nombre);
|
||
outtextxy(130,102,socios.apellidos);
|
||
outtextxy(130,132,socios.direccion);
|
||
outtextxy(130,162,socios.telefono);
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Confirmar eliminaci¢n",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(30,40,"¨Est seguro? (s/n)");
|
||
char respuesta=getch();
|
||
while(respuesta!='n' && respuesta!='s')
|
||
respuesta=getch();
|
||
if (respuesta=='s'){
|
||
cliente=fopen("k:\\files\\clientes.mov","a+b");
|
||
fwrite("B",1,1,cliente);// Tipo de movimiento.
|
||
fwrite(&socios,sizeof(socios),1,cliente);
|
||
fclose(cliente);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN MODIFICAR CLIENTES
|
||
// ------------------------------------------------------------------------
|
||
void modificar_clientes(){
|
||
// int j=0;
|
||
if ((cliente=fopen("k:\\files\\clientes.dat","r+b"))==NULL){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay clientes !!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
if ((fcodigo=fopen("k:\\files\\clientes.cdg","r+b"))==NULL){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"Faltan Archivos !!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
char codigo[11]={NULL};
|
||
char codigo_max[11]={NULL};
|
||
fread(codigo_max,2,1,fcodigo);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Modificaci¢n de Clientes",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca el C¢digo del Cliente:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
setcolor(8); outtextxy(30,70,"Nombre:");
|
||
setcolor(16); boton(120,70,220,90,1,"",0,0);
|
||
setcolor(8); outtextxy(30,100,"Apellidos:");
|
||
setcolor(16); boton(120,100,295,120,1,"",0,0);
|
||
setcolor(8); outtextxy(30,130,"Direcci¢n:");
|
||
setcolor(16); boton(120,130,295,150,1,"",0,0);
|
||
setcolor(8); outtextxy(30,160,"Telefono:");
|
||
setcolor(16); boton(120,160,220,180,1,"",16,0);
|
||
|
||
setcolor(1); outtextxy(30,190,"C¢digo:");
|
||
setcolor(16); boton(120,190,220,210,1,"",16,0);
|
||
icon2(10,193);
|
||
introcad(130,192,codigo,11,0,2,5,7);
|
||
while(atoi(codigo)>atoi(codigo_max) || atoi(codigo)<=0
|
||
|| socios.codigo==-1){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(12,40,"El cliente no es socio nuestro.");
|
||
sound(500);delay(300);nosound();
|
||
getch();setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
outtextxy(130,192,codigo);
|
||
introcad(130,192,codigo,12,0,2,5,7);
|
||
}
|
||
icon8(10,193);
|
||
setcolor(0);
|
||
outtextxy(130,72,socios.nombre);
|
||
outtextxy(130,102,socios.apellidos);
|
||
outtextxy(130,132,socios.direccion);
|
||
outtextxy(130,162,socios.telefono);
|
||
setcolor(8); outtextxy(30,190,"C¢digo:");
|
||
setcolor(7);outtextxy(20,30,"Introduzca el C¢digo del Cliente:");
|
||
setcolor(4);outtextxy(20,30,"Elija el Campo a Modificar:");
|
||
setcolor(1); outtextxy(30,70,"Nombre:");
|
||
setcolor(1); outtextxy(30,100,"Apellidos:");
|
||
setcolor(1); outtextxy(30,130,"Direcci¢n:");
|
||
setcolor(1); outtextxy(30,160,"Telefono:");
|
||
|
||
int tecla1, tecla12, sw=1,pos=1,y=73;// pos es el campo (1)
|
||
icon9(10,y,4);
|
||
while(sw==1){
|
||
tecla1=getch();
|
||
|
||
if(tecla1==0) // leemos tecla especial.
|
||
{
|
||
tecla12=getch();
|
||
switch(tecla12) {
|
||
case 72: // Flecha arriba
|
||
if (pos>1){
|
||
pos--;icon9(10,y,7);
|
||
y-=30;
|
||
icon9(10,y,4);
|
||
}
|
||
break;
|
||
case 80: // Flecha abajo
|
||
if (pos<4){
|
||
pos++;icon9(10,y,7);
|
||
y+=30;
|
||
icon9(10,y,4);
|
||
}
|
||
break;
|
||
} // fin del switch-case
|
||
}// fin del if
|
||
else
|
||
if (tecla1==13) // MIGA DEL ASUNTO
|
||
{
|
||
icon9(10,y,2);
|
||
switch(pos){
|
||
case 1:
|
||
setcolor(7);outtextxy(130,72,socios.nombre);
|
||
introcad(130,72,socios.nombre,11,16,2,5,7);
|
||
break;
|
||
case 2:
|
||
setcolor(7);outtextxy(130,102,socios.apellidos);
|
||
introcad(130,102,socios.apellidos,21,16,2,5,7);
|
||
break;
|
||
case 3:
|
||
setcolor(7);outtextxy(130,132,socios.direccion);
|
||
introcad(130,132,socios.direccion,21,16,2,5,7);
|
||
break;
|
||
case 4:
|
||
setcolor(7);outtextxy(130,162,socios.telefono);
|
||
introcad(130,162,socios.telefono,11,16,2,5,7);
|
||
break;
|
||
}
|
||
icon9(10,y,4);
|
||
}
|
||
else
|
||
if (tecla1==27)
|
||
sw=0;
|
||
} // fin del while
|
||
}
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN LISTAR CLIENTES
|
||
// ------------------------------------------------------------------------
|
||
void listar_clientes(){
|
||
int j=0;
|
||
while (j<1 && socios.codigo==0 || socios.codigo==-1) j++;
|
||
if (j==1){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay clientes !!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
setviewport(20,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,600,250,"Listado de Clientes",0,0);
|
||
|
||
setcolor(4);
|
||
outtextxy(10,30,"COD Nombre Apellidos Direcci¢n Tel‚fono");
|
||
setcolor(8); line (10,50,590,50);
|
||
setcolor(15); line (10,51,590,51);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
j=0;int con=0;
|
||
for (int y=60;j<1;j++){
|
||
if(con==12){
|
||
getch();
|
||
con=0;y=60;setcolor(7);setfillstyle(1,7);bar(10,60,590,240);
|
||
setcolor(0);
|
||
}
|
||
if (socios.codigo>0){
|
||
char cod[6];
|
||
sprintf(cod,"%d",socios.codigo);
|
||
outtextxy(10,y,cod);
|
||
outtextxy(58,y,socios.nombre);
|
||
outtextxy(152,y,socios.apellidos);
|
||
outtextxy(332,y,socios.direccion);
|
||
outtextxy(512,y,socios.telefono);
|
||
y+=15;con++;
|
||
}
|
||
}
|
||
getch();
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN ALTAS DE PELICULAS
|
||
// ------------------------------------------------------------------------
|
||
void altas_peliculas(){
|
||
int j=0;
|
||
while (j<1 && pelis.codigo>0) j++;
|
||
if (j<1){
|
||
int sw=0;
|
||
do{
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Alta de Pel¡culas",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca los Datos de la Pel¡cula:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
setcolor(1); outtextxy(30,70,"T¡tulo:");
|
||
setcolor(16); boton(120,70,290,90,1,"",0,0);
|
||
setcolor(1); outtextxy(30,100,"Director:");
|
||
setcolor(16); boton(120,100,290,120,1,"",0,0);
|
||
setcolor(1); outtextxy(30,130,"Duraci¢n:");
|
||
setcolor(16); boton(120,130,220,150,1,"",0,0);
|
||
setcolor(1);outtextxy(160,132,"minutos");
|
||
setcolor(1); outtextxy(30,160,"Tema:");
|
||
setcolor(16); boton(120,160,220,180,1,"",16,0);
|
||
settextstyle(2,0,4);
|
||
setcolor(8); outtextxy(30,195,"N§ alquileres:");
|
||
setcolor(16); boton(120,190,220,210,1,"",16,0);
|
||
settextstyle(2,0,5);
|
||
outtextxy(130,192,"0");
|
||
setcolor(8); outtextxy(30,220,"C¢digo:");
|
||
char aux[11];
|
||
pelis.codigo=j+1;sprintf(aux,"%d",pelis.codigo);
|
||
setcolor(16); boton(120,220,220,240,1,"",16,0);
|
||
outtextxy(130,222,aux);
|
||
|
||
icon2(10,73);
|
||
introcad(130,72,pelis.titulo,20,16,2,5,7);
|
||
icon8(10,73);icon2(10,103);
|
||
introcad(130,102,pelis.director,20,16,2,5,7);
|
||
icon8(10,103);icon2(10,133);
|
||
introcad(130,132,pelis.duracion,4,16,2,5,7);
|
||
icon8(10,133);icon2(10,163);
|
||
introcad(130,162,pelis.tema,11,16,2,5,7);
|
||
icon8(10,163);
|
||
ventana(240,160,475,235,"Verificaci¢n de datos",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(270,200,"¨Datos Correctos? (s/n)");
|
||
char respuesta=getch();
|
||
while(respuesta!='n' && respuesta!='s')
|
||
respuesta=getch();
|
||
if (respuesta=='n')
|
||
sw=1;
|
||
else{
|
||
sw=0;
|
||
codigo_maxp=j+1;
|
||
}
|
||
}while(sw);
|
||
}
|
||
else{
|
||
// imprimir tabla llena
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN BAJAS DE PELICULAS
|
||
// ------------------------------------------------------------------------
|
||
void bajas_peliculas(){
|
||
int j=0;
|
||
while (j<1 && pelis.codigo==0 || pelis.codigo==-1) j++;
|
||
if (j==1){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay pel¡culas !!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
char codigo[11]={NULL};
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Bajas de Pel¡culas",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca el C¢digo de la Pel¡cula:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
setcolor(8); outtextxy(30,70,"T¡tulo:");
|
||
setcolor(16); boton(120,70,290,90,1,"",0,0);
|
||
setcolor(8); outtextxy(30,100,"Director:");
|
||
setcolor(16); boton(120,100,290,120,1,"",0,0);
|
||
setcolor(8); outtextxy(30,130,"Duraci¢n:");
|
||
setcolor(16); boton(120,130,220,150,1,"",0,0);
|
||
setcolor(1);outtextxy(160,132,"minutos");
|
||
setcolor(8); outtextxy(30,160,"Tema:");
|
||
setcolor(16); boton(120,160,220,180,1,"",16,0);
|
||
settextstyle(2,0,4);
|
||
setcolor(8); outtextxy(30,195,"N§ alquileres:");
|
||
setcolor(16); boton(120,190,220,210,1,"",16,0);
|
||
settextstyle(2,0,5);
|
||
|
||
setcolor(1); outtextxy(30,220,"C¢digo:");
|
||
setcolor(16); boton(120,220,220,240,1,"",16,0);
|
||
icon2(10,223);
|
||
introcad(130,222,codigo,11,0,2,5,7);
|
||
while(atoi(codigo)>codigo_maxp){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(12,40,"La pel¡cula no es conocida.");
|
||
sound(500);delay(300);nosound();
|
||
getch();setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
outtextxy(130,222,codigo);
|
||
introcad(130,222,codigo,12,0,2,5,7);
|
||
}
|
||
icon8(10,223);
|
||
setcolor(0);
|
||
outtextxy(130,72,pelis.titulo);
|
||
outtextxy(130,102,pelis.director);
|
||
outtextxy(130,132,pelis.duracion);
|
||
outtextxy(130,162,pelis.tema);
|
||
char na[6]={NULL};
|
||
sprintf(na,"%d",pelis.n_alquileres);
|
||
outtextxy(130,192,na);
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Confirmar eliminaci¢n",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(30,40,"¨Est seguro? (s/n)");
|
||
char respuesta=getch();
|
||
while(respuesta!='n' && respuesta!='s')
|
||
respuesta=getch();
|
||
if (respuesta=='s')
|
||
pelis.codigo=-1;
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN MODIFICAR PELICULAS
|
||
// ------------------------------------------------------------------------
|
||
void modificar_peliculas(){
|
||
int j=0;
|
||
while (j<1 && pelis.codigo==0 || pelis.codigo==-1) j++;
|
||
if (j==1){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay pel¡culas !!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
char codigo[11]={NULL};
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Modificaci¢n de Pel¡culas",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca el C¢digo de la Pel¡cula:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
setcolor(1); outtextxy(30,70,"T¡tulo:");
|
||
setcolor(16); boton(120,70,290,90,1,"",0,0);
|
||
setcolor(1); outtextxy(30,100,"Director:");
|
||
setcolor(16); boton(120,100,290,120,1,"",0,0);
|
||
setcolor(1); outtextxy(30,130,"Duraci¢n:");
|
||
setcolor(16); boton(120,130,220,150,1,"",0,0);
|
||
setcolor(1);outtextxy(160,132,"minutos");
|
||
setcolor(1); outtextxy(30,160,"Tema:");
|
||
setcolor(16); boton(120,160,220,180,1,"",16,0);
|
||
settextstyle(2,0,4);
|
||
setcolor(8); outtextxy(30,195,"N§ alquileres:");
|
||
setcolor(16); boton(120,190,220,210,1,"",16,0);
|
||
settextstyle(2,0,5);
|
||
|
||
setcolor(1); outtextxy(30,220,"C¢digo:");
|
||
setcolor(16); boton(120,220,220,240,1,"",16,0);
|
||
icon2(10,223);
|
||
introcad(130,222,codigo,11,0,2,5,7);
|
||
while(atoi(codigo)>codigo_maxp || atoi(codigo)<=0
|
||
|| pelis.codigo==-1){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(12,40,"La pel¡cula no es conocida.");
|
||
sound(500);delay(300);nosound();
|
||
getch();setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
outtextxy(130,222,codigo);
|
||
introcad(130,222,codigo,12,0,2,5,7);
|
||
}
|
||
icon8(10,223);
|
||
setcolor(0);
|
||
outtextxy(130,72,pelis.titulo);
|
||
outtextxy(130,102,pelis.director);
|
||
outtextxy(130,132,pelis.duracion);
|
||
outtextxy(130,162,pelis.tema);
|
||
char na[6]={NULL};
|
||
sprintf(na,"%d",pelis.n_alquileres);
|
||
outtextxy(130,192,na);
|
||
|
||
setcolor(8); outtextxy(30,220,"C¢digo:");
|
||
setcolor(7);outtextxy(20,30,"Introduzca el C¢digo de la Pel¡cula:");
|
||
setcolor(4);outtextxy(20,30,"Elija el Campo a Modificar:");
|
||
setcolor(1); outtextxy(30,70,"T¡tulo:");
|
||
setcolor(1); outtextxy(30,100,"Director:");
|
||
setcolor(1); outtextxy(30,130,"Duraci¢n:");
|
||
setcolor(1); outtextxy(30,160,"Tema:");
|
||
|
||
int tecla1, tecla12, sw=1,pos=1,y=73;// pos es el campo (1)
|
||
icon9(10,y,4);
|
||
while(sw==1){
|
||
tecla1=getch();
|
||
|
||
if(tecla1==0) // leemos tecla especial.
|
||
{
|
||
tecla12=getch();
|
||
switch(tecla12) {
|
||
case 72: // Flecha arriba
|
||
if (pos>1){
|
||
pos--;icon9(10,y,7);
|
||
y-=30;
|
||
icon9(10,y,4);
|
||
}
|
||
break;
|
||
case 80: // Flecha abajo
|
||
if (pos<4){
|
||
pos++;icon9(10,y,7);
|
||
y+=30;
|
||
icon9(10,y,4);
|
||
}
|
||
break;
|
||
} // fin del switch-case
|
||
}// fin del if
|
||
else
|
||
if (tecla1==13) // MIGA DEL ASUNTO
|
||
{
|
||
icon9(10,y,2);
|
||
switch(pos){
|
||
case 1:
|
||
setcolor(7);outtextxy(130,72,pelis.titulo);
|
||
introcad(130,72,pelis.titulo,20,16,2,5,7);
|
||
break;
|
||
case 2:
|
||
setcolor(7);outtextxy(130,102,pelis.director);
|
||
introcad(130,102,pelis.director,20,16,2,5,7);
|
||
break;
|
||
case 3:
|
||
setcolor(7);outtextxy(130,132,pelis.duracion);
|
||
introcad(130,132,pelis.duracion,4,16,2,5,7);
|
||
break;
|
||
case 4:
|
||
setcolor(7);outtextxy(130,162,pelis.tema);
|
||
introcad(130,162,pelis.tema,11,16,2,5,7);
|
||
break;
|
||
}
|
||
icon9(10,y,4);
|
||
}
|
||
else
|
||
if (tecla1==27)
|
||
sw=0;
|
||
} // fin del while
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN LISTAR PELICULAS
|
||
// ------------------------------------------------------------------------
|
||
void listar_peliculas(){
|
||
int j=0;
|
||
while (j<1 && pelis.codigo==0 || pelis.codigo==-1) j++;
|
||
if (j==1){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay pel¡culas !!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
setviewport(20,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,600,250,"Listado de Pel¡culas",0,0);
|
||
|
||
setcolor(4);
|
||
outtextxy(10,30,"COD T¡tulo Director Min. Alquileres Tema");
|
||
setcolor(8); line (10,50,590,50);
|
||
setcolor(15); line (10,51,590,51);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
j=0;int con=0;
|
||
for (int y=60;j<1;j++){
|
||
if(con==12){
|
||
getch();
|
||
con=0;y=60;setcolor(7);setfillstyle(1,7);bar(10,60,590,240);
|
||
setcolor(0);
|
||
}
|
||
if (pelis.codigo>0){
|
||
char cod[6];
|
||
sprintf(cod,"%d",pelis.codigo);
|
||
outtextxy(10,y,cod);
|
||
outtextxy(58,y,pelis.titulo);
|
||
outtextxy(220,y,pelis.director);
|
||
outtextxy(382,y,pelis.duracion);
|
||
char aux[6];
|
||
sprintf(aux,"%d",pelis.n_alquileres);
|
||
outtextxy(424,y,aux);
|
||
outtextxy(514,y,pelis.tema);
|
||
y+=15;con++;
|
||
}
|
||
}
|
||
getch();
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN ALTAS DE ALQUILERES
|
||
// ------------------------------------------------------------------------
|
||
/*void altas_alquileres(){
|
||
int j=0;
|
||
while (j<1 && presta.codigo>0) j++;
|
||
if (j<1){
|
||
int sw=0;
|
||
do{
|
||
char codigo[6];
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Alta de Alquileres",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca los Datos del Alquiler:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
settextstyle(2,0,4);
|
||
setcolor(1); outtextxy(30,73,"Cod. Cliente:");
|
||
setcolor(16); boton(120,70,220,90,1,"",0,0);
|
||
setcolor(16); boton(230,70,480,90,1,"",0,0);
|
||
setcolor(1); outtextxy(30,103,"Cod. Pel¡cula:");
|
||
setcolor(16); boton(120,100,220,120,1,"",0,0);
|
||
setcolor(16); boton(230,100,400,120,1,"",16,0);
|
||
settextstyle(2,0,5);
|
||
setcolor(8); outtextxy(30,130,"Pel¡culas:");
|
||
setcolor(16); boton(120,130,380,150,1,"",0,0);
|
||
setcolor(8); outtextxy(30,160,"Fecha dev:");
|
||
setcolor(16); boton(120,160,220,180,1,"",0,0);
|
||
setcolor(0);outtextxy(130,162,"48 h.");
|
||
setcolor(8); outtextxy(30,190,"C¢digo:");
|
||
setcolor(16); boton(120,190,220,210,1,"",0,0);
|
||
|
||
char aux[11];
|
||
presta.codigo=j+1;sprintf(aux,"%d",presta.codigo);
|
||
setcolor(0);outtextxy(130,192,aux);
|
||
icon2(10,73);
|
||
introcad(130,72,codigo,6,0,2,5,7);
|
||
char a;int sw2=1;
|
||
while(atoi(codigo)>codigo_max || atoi(codigo)<=0
|
||
|| socios.codigo==-1){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,4);
|
||
outtextxy(30,40,"Cliente no v lido. ¨Repetir? (s/n)");
|
||
sound(500);delay(300);nosound();
|
||
a=getch();
|
||
while (a!='s' && a!='n')
|
||
a=getch();
|
||
if (a=='s'){
|
||
setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
settextstyle(2,0,5);outtextxy(130,72,codigo);
|
||
introcad(130,72,codigo,6,0,2,5,7);
|
||
}
|
||
else{
|
||
sw2=0;
|
||
break;
|
||
}
|
||
}
|
||
presta.socios=socios.codigo;
|
||
if (sw2){
|
||
int con=0,x=130;
|
||
while(con<5){
|
||
icon8(10,73);
|
||
setcolor(0);
|
||
outtextxy(235,72,socios.nombre);
|
||
outtextxy(320,72,socios.apellidos);
|
||
icon2(10,103);
|
||
introcad(130,102,codigo,6,0,2,5,7);
|
||
while(atoi(codigo)>codigo_maxp || atoi(codigo)<=0
|
||
|| pelis.codigo==-1
|
||
|| pelis.alq==1){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,4);
|
||
outtextxy(20,40,"Pelicula no disponible. ¨Repetir? (s/n)");
|
||
sound(500);delay(300);nosound();
|
||
a=getch();
|
||
while (a!='s' && a!='n')
|
||
a=getch();
|
||
if (a=='s'){
|
||
setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
settextstyle(2,0,5);outtextxy(130,102,codigo);
|
||
introcad(130,102,codigo,6,0,2,5,7);
|
||
}
|
||
else{
|
||
sw2=0;
|
||
break;
|
||
}
|
||
}
|
||
if (sw2){
|
||
icon8(10,103);
|
||
setcolor(0);
|
||
outtextxy(240,102,pelis.titulo);
|
||
pelis.alq=1;
|
||
presta.lista_pelis[con]=pelis.codigo;
|
||
(pelis.n_alquileres)++;
|
||
}
|
||
if (con<5){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Pel¡culas",1,0);
|
||
setcolor(0);settextstyle(2,0,4);
|
||
outtextxy(20,40,"¨Quiere introducir m s pel¡culas? (s/n)");
|
||
settextstyle(2,0,5);
|
||
a=getch();
|
||
while (a!='s' && a!='n')
|
||
a=getch();
|
||
if (a=='s'){
|
||
setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
settextstyle(2,0,5);outtextxy(130,102,codigo);
|
||
if (sw2){
|
||
outtextxy(240,102,pelis.titulo);
|
||
setcolor(0);
|
||
outtextxy(x,132,codigo);
|
||
con++;x+=50;
|
||
}
|
||
sw2=1;
|
||
}
|
||
else{
|
||
if (presta.lista_pelis[0]==0)
|
||
presta.codigo=0;
|
||
else{
|
||
codigo_maxa=j+1;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}while(sw);
|
||
}
|
||
else{
|
||
// imprimir tabla llena
|
||
}
|
||
}
|
||
|
||
// ------------------------------------------------------------------------
|
||
// FUNCIàN ALTAS DE ALQUILERES
|
||
// ------------------------------------------------------------------------
|
||
void modificar_alquileres(){
|
||
int j=0;
|
||
while (j<1 && presta.codigo==0 || presta.codigo==-1) j++;
|
||
if (j==1){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay alquileres!!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
char codigo[11]={NULL};
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Modificaci¢n de Alquileres",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca el C¢digo del Alquiler:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
settextstyle(2,0,4);
|
||
setcolor(8); outtextxy(30,73,"Cod. Cliente:");
|
||
setcolor(16); boton(120,70,220,90,1,"",0,0);
|
||
setcolor(16); boton(230,70,480,90,1,"",0,0);
|
||
settextstyle(2,0,5);
|
||
setcolor(8); outtextxy(30,100,"Pel¡cula 1:");
|
||
setcolor(16); boton(120,100,220,120,1,"",0,0);
|
||
setcolor(1); outtextxy(250,100,"C¢digo:");
|
||
setcolor(16); boton(320,100,420,120,1,"",0,0);
|
||
setcolor(8); outtextxy(30,130,"Pel¡cula 2:");
|
||
setcolor(16); boton(120,130,220,150,1,"",0,0);
|
||
setcolor(8); outtextxy(30,160,"Pel¡cula 3:");
|
||
setcolor(16); boton(120,160,220,180,1,"",16,0);
|
||
setcolor(8); outtextxy(30,190,"Pel¡cula 4:");
|
||
setcolor(16); boton(120,190,220,210,1,"",16,0);
|
||
setcolor(8); outtextxy(30,220,"Pel¡cula 5:");
|
||
setcolor(16); boton(120,220,220,240,1,"",16,0);
|
||
icon2(230,103);
|
||
introcad(330,102,codigo,11,0,2,5,7);
|
||
while(atoi(codigo)>codigo_maxa || atoi(codigo)<=0
|
||
|| presta.codigo==-1){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(20,40,"El alquiler no existe.");
|
||
sound(500);delay(300);nosound();
|
||
getch();setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
outtextxy(330,102,codigo);
|
||
introcad(330,102,codigo,12,0,2,5,7);
|
||
}
|
||
icon8(230,103);
|
||
setcolor(8); outtextxy(250,100,"C¢digo:");
|
||
setcolor(1); outtextxy(30,100,"Pel¡cula 1:");
|
||
setcolor(1); outtextxy(30,130,"Pel¡cula 2:");
|
||
setcolor(1); outtextxy(30,160,"Pel¡cula 3:");
|
||
setcolor(1); outtextxy(30,190,"Pel¡cula 4:");
|
||
setcolor(1); outtextxy(30,220,"Pel¡cula 5:");
|
||
char aux[6];
|
||
sprintf(aux,"%d",presta.lista_pelis[0]);
|
||
setcolor(0);outtextxy(130,102,aux);
|
||
sprintf(aux,"%d",presta.lista_pelis[1]);
|
||
outtextxy(130,132,aux);
|
||
sprintf(aux,"%d",presta.lista_pelis[2]);
|
||
outtextxy(130,162,aux);
|
||
sprintf(aux,"%d",presta.lista_pelis[3]);
|
||
outtextxy(130,192,aux);
|
||
sprintf(aux,"%d",presta.lista_pelis[4]);
|
||
outtextxy(130,222,aux);
|
||
sprintf(aux,"%d",presta.socios);
|
||
outtextxy(130,72,aux);
|
||
outtextxy(130,235,socios.nombre);
|
||
outtextxy(130,320,socios.apellidos);
|
||
int tecla1, tecla12, sw=1,pos=1,y=103;// pos es el campo (1)
|
||
icon9(10,y,4);
|
||
while(sw==1){
|
||
tecla1=getch();
|
||
|
||
if(tecla1==0) // leemos tecla especial.
|
||
{
|
||
tecla12=getch();
|
||
switch(tecla12) {
|
||
case 72: // Flecha arriba
|
||
if (pos>1){
|
||
pos--;icon9(10,y,7);
|
||
y-=30;
|
||
icon9(10,y,4);
|
||
}
|
||
break;
|
||
case 80: // Flecha abajo
|
||
if (pos<5){
|
||
pos++;icon9(10,y,7);
|
||
y+=30;
|
||
icon9(10,y,4);
|
||
}
|
||
break;
|
||
} // fin del switch-case
|
||
}// fin del if
|
||
else
|
||
if (tecla1==13) // MIGA DEL ASUNTO
|
||
{
|
||
icon9(10,y,2);
|
||
char aux[6];int sw2=1;
|
||
switch(pos){
|
||
case 1:
|
||
sprintf(aux,"%d",presta.lista_pelis[0]);
|
||
setcolor(7);outtextxy(130,102,aux);
|
||
introcad(130,102,aux,6,16,2,5,7);
|
||
while(atoi(codigo)>codigo_maxp || atoi(codigo)<=0
|
||
|| pelis.codigo==-1
|
||
|| pelis.alq==1){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,4);
|
||
outtextxy(20,40,"Pelicula no disponible. ¨Repetir? (s/n)");
|
||
sound(500);delay(300);nosound();
|
||
int a=getch();
|
||
while (a!='s' && a!='n')
|
||
a=getch();
|
||
if (a=='s'){
|
||
setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
settextstyle(2,0,5);outtextxy(130,102,codigo);
|
||
introcad(130,102,codigo,6,0,2,5,7);
|
||
}
|
||
else{
|
||
sw2=0;
|
||
break;
|
||
}
|
||
}
|
||
if (sw2)
|
||
presta.lista_pelis[0]=atoi(aux);
|
||
else{
|
||
setcolor(0);outtextxy(130,102,aux);
|
||
}
|
||
break;
|
||
case 2:
|
||
sprintf(aux,"%d",presta.lista_pelis[1]);
|
||
setcolor(7);outtextxy(130,132,aux);
|
||
introcad(130,132,aux,6,16,2,5,7);
|
||
presta.lista_pelis[1]=atoi(aux);
|
||
break;
|
||
case 3:
|
||
sprintf(aux,"%d",presta.lista_pelis[2]);
|
||
setcolor(7);outtextxy(130,162,aux);
|
||
introcad(130,162,aux,4,16,2,5,7);
|
||
presta.lista_pelis[2]=atoi(aux);
|
||
break;
|
||
case 4:
|
||
sprintf(aux,"%d",presta.lista_pelis[3]);
|
||
setcolor(7);outtextxy(130,192,aux);
|
||
introcad(130,192,aux,11,16,2,5,7);
|
||
presta.lista_pelis[3]=atoi(aux);
|
||
break;
|
||
}
|
||
icon9(10,y,4);
|
||
}
|
||
else
|
||
if (tecla1==27)
|
||
sw=0;
|
||
} // fin del while
|
||
}
|
||
getch();
|
||
}
|
||
|
||
void bajas_alquileres(){
|
||
int j=0;
|
||
while (j<1 && presta.codigo==0 || presta.codigo==-1) j++;
|
||
if (j==1){
|
||
setviewport(180,220,getmaxx(),getmaxy(),0);
|
||
ventana(20,20,240,100,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,6);
|
||
icon10(30,60);outtextxy(60,60,"No hay alquileres!!");
|
||
sound(500);delay(300);nosound();getch();
|
||
}
|
||
else{
|
||
char codigo[11]={NULL};
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
ventana(0,0,500,250,"Bajas de Alquileres",0,0);
|
||
|
||
setcolor(4); outtextxy(20,30,"Introduzca el C¢digo del Alquiler:");
|
||
setcolor(8); line (20,50,480,50);
|
||
setcolor(15); line (20,51,480,51);
|
||
|
||
settextstyle(2,0,4);
|
||
setcolor(1); outtextxy(30,73,"Cod. Cliente:");
|
||
setcolor(16); boton(120,70,220,90,1,"",0,0);
|
||
setcolor(16); boton(230,70,480,90,1,"",0,0);
|
||
setcolor(1); outtextxy(30,103,"Cod. Pel¡cula:");
|
||
setcolor(16); boton(120,100,220,120,1,"",0,0);
|
||
setcolor(16); boton(230,100,400,120,1,"",16,0);
|
||
settextstyle(2,0,5);
|
||
setcolor(8); outtextxy(30,130,"Pel¡culas:");
|
||
setcolor(16); boton(120,130,380,150,1,"",0,0);
|
||
setcolor(8); outtextxy(30,160,"Fecha dev:");
|
||
setcolor(16); boton(120,160,220,180,1,"",0,0);
|
||
setcolor(0);outtextxy(130,162,"48 h.");
|
||
setcolor(8); outtextxy(30,190,"C¢digo:");
|
||
setcolor(16); boton(120,190,220,210,1,"",0,0);
|
||
|
||
icon2(10,193);
|
||
introcad(130,192,codigo,11,0,2,5,7);
|
||
while(atoi(codigo)>codigo_maxp){
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Error",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(12,40,"El alquiler no exuiste.");
|
||
sound(500);delay(300);nosound();
|
||
getch();setviewport(0,0,getmaxx(),getmaxy(),0);
|
||
setcolor(7);setfillstyle(1,7);bar(305,318,560,400);
|
||
setviewport(70,160,getmaxx(),getmaxy(),0);
|
||
outtextxy(130,192,codigo);
|
||
introcad(130,192,codigo,12,0,2,5,7);
|
||
}
|
||
icon8(10,223);
|
||
setcolor(0);
|
||
char na[6]={NULL};
|
||
sprintf(na,"%d",pelis.n_alquileres);
|
||
outtextxy(130,192,na);
|
||
setviewport(305,318,560,400,1);
|
||
ventana(1,1,250,75,"Confirmar eliminaci¢n",4,0);
|
||
setcolor(0);settextstyle(2,0,5);
|
||
outtextxy(30,40,"¨Est seguro? (s/n)");
|
||
char respuesta=getch();
|
||
while(respuesta!='n' && respuesta!='s')
|
||
respuesta=getch();
|
||
if (respuesta=='s')
|
||
pelis.codigo=-1;
|
||
}
|
||
} */
|
||
void limpiar3(){
|
||
for (int n=0;n<21;n++){
|
||
socios.apellidos[n]=NULL;socios.direccion[n]=NULL;
|
||
}
|
||
for (n=0;n<11;n++){
|
||
socios.nombre[n]=NULL;socios.telefono[n]=NULL;
|
||
}
|
||
socios.codigo=0;
|
||
} |