#include #include #include #include #include #include #include #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; }