lol_tun
Becerro
- Desde
- 23 Dic 2008
- Mensajes
- 41
- Tema Autor
- #1
Estoy realizano un programa de algoritmos en C utilizando estruturas y apuntadores para hacer un programa de Administrar un video club utlizando las siguientes condiciones :
4) Consulta general de todas las rentas ordenadas por nombre de cliente.
Sin utlizar variables globales.
El problema que cuando quiero hacer la consulta se cicla y no encuentro mi error.
Aqui les dejo el codigo si alguien encuentra mi error hagamelo saber ya que esta tarea tengo que entregar mañana a la 1:00pm
CODIGO
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<string.h>
struct video{ //estructura de una pelicula
char titulo[50]; //nombre de la pelicula
int clasif; //numero de clasificacion
time_t fecha; //fecha
};
struct cliente{ //estructura del cliente
int id,c,ocu; //identificacion (posicion+100), contador de peliculas rentadas, y ocupado o no.
char nombre[50]; //nombre del cliente.
struct video pelicula[3]; //nombre de peliculas rentadas
};
void capchar(char cad[],int x,int y,int t){ //funcion validacion de captura de caracteres
char tecla;
int pos,b=0;
cad[0]='\x0';
do{
gotoxy(x,y);textcolor(11);
cprintf("%s",cad);
tecla=getch();
switch(tecla){
case '\x0': tecla=getch();b=1;
break;
default: b=0;
}
if((isalnum(tecla)||isspace(tecla)||ispunct(tecla))&&strlen(cad)<t&&b==0){
pos=strlen(cad);
cad[pos]=tecla;
cad[pos+1]='\x0';
}
if(tecla=='\x8'){
gotoxy(x,y);
textcolor(1);
cprintf("%s",cad);
pos=strlen(cad);
cad[pos-1]='\x0';
}
}while(tecla!='\xD');
}
int capturint(int x, int y,float min,float max){ //funcion de validacion de numeros enteros
char tecla, cad[6];
int num=min,pos;
cad[0]='\x0';
if(min<-32768){
cprintf("El rango es muy pequeno");
}
if(max>32767){
cprintf("El rango es muy grande");
}
do{
gotoxy(x,y);
textcolor(11);
cprintf("%s",cad);
tecla=getch();
if(tecla=='-'&&strlen(cad)==0){
pos=strlen(cad);
cad[pos]=tecla;
cad[pos+1]='\x0';
}
if(isdigit(tecla)&&strlen(cad)<5){
pos=strlen(cad);
cad[pos]=tecla;
cad[pos+1]='\x0';
}
if(tecla=='\x8'){
gotoxy(x,y);
textcolor(1);
cprintf("%s",cad);
pos=strlen(cad);
cad[pos-1]='\x0';
}
if(cad[0]!='\x0')
num=atoi(cad);
}while(tecla!='\xD'||cad[0]=='\x0');
if(num>=min&&num<=max){
return num;
}else{
gotoxy(10,40);
cprintf("El rango del numero es %.0f a %.0f",min,max);
delay(1000);
gotoxy(10,40);
textcolor(1);
cprintf("El rango del numero es %.0f a %.0f",min,max);
gotoxy(x,y);
textcolor(1);
cprintf("%s",cad);
num=capturint(x,y,min,max);
textcolor(11);
return num;
}
}
void reiniciar(struct cliente clientes[]){ //reinicia las estructuras, eliminando los datos.
int i,j,k,l;
for(i=0;i<50;i++){
clientes.id=0;
clientes.ocu=0;
clientes.c=0;
for (k=0;k<3;k++)
{ clientes.pelicula[k].clasif=0;
clientes.pelicula[k].titulo[0]='\x0';
}
clientes.nombre[0]='\x0';
}
}
void registra(struct cliente clientes[]){ //registro de un cliente.
int i,pos=0,b=0,j;
char persona[50]; //cadena auxiliar para capturar el nombre del cleinte
for(i=0;i<50;i++)persona=NULL; //vacia cadena.
gotoxy(10,20);cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(10,21);cprintf("³ Registro de Cliente ³");
gotoxy(10,22);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(10,23);cprintf("³ ³");
gotoxy(10,24);cprintf("³ Nombre del cliente: ³");
gotoxy(10,25);cprintf("³ ³");
gotoxy(10,26);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(10,27);cprintf("³ ³");
gotoxy(10,28);cprintf("³ Su numero de identificacion como cliente es: ³");
gotoxy(10,29);cprintf("³ ³");
gotoxy(10,30);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
for(i=0;i<50;i++){
if(clientes.ocu==1)pos=i+1; //verifica en que posicion de clientes va;
}
capchar(persona,13,25,50); //lo guarda en una variable de mientras
if(persona[0]!='\xD'){
for(i=0;i<50;i++){ //compara si ya esta registrado.
if(pos==i); //no se compara consigo mismo.
else{
if(strcmp(persona,clientes.nombre)==0){
b=1; //bandera de ocupado
j=i;
}
}
}
if(b==1){
gotoxy(19,29);cprintf("Usted ya esta registrado con el id=%d",clientes[j].id);
clientes[pos].ocu=0; //desocupa lo desocupado
clientes[pos].id=0;
}else{
strcpy(clientes[pos].nombre,persona);
clientes[pos].ocu=1; //ocupa el lugar 'pos'
clientes[pos].id=pos+100; //registra la id.
gotoxy(57,28);cprintf("%d",clientes[pos].id);
}
getch();
}else{
gotoxy(15,40);cprintf("Error: Vuelva a escribir");
getch();
}
}
void renta(struct cliente clientes[]){ //funcion de renta de peliculas.
int i,j,pos=0,b=0;
char persona[50];
for(i=0;i<50;i++)persona=NULL; //vacia cadena.
gotoxy(5,20);cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,21);cprintf("³ Renta de pelicula ³");
gotoxy(5,22);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,23);cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,24);cprintf("³ ³ ³");
gotoxy(5,25);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,26);cprintf("³ Nombre de la pelicula: ³");
gotoxy(5,27);cprintf("³ ³");
gotoxy(5,28);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,29);cprintf("³ Clasificacion: [1] Estrenos ³");
gotoxy(5,30);cprintf("³ [2] Terror ³");
gotoxy(5,31);cprintf("³ [3] Comedia ³");
gotoxy(5,32);cprintf("³ [4] Mexicanas ³");
gotoxy(5,33);cprintf("³ [5] X X X ³");
gotoxy(5,34);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,35);cprintf("³ Fecha: ³");
gotoxy(5,36);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
for(i=0;i<50;i++){
if(clientes.ocu==1){
pos=i+1; //verifica en que posicion de clientes va; pos=posicion final
}
}
capchar(persona,8,24,50); //lo guarda en una variable de mientras
if(persona[0]!='\xD'){
for(i=0;i<50;i++){ //compara si ya esta registrado.
if(pos==i); //no se compara consigo mismo.
else{
if(strcmp(persona,clientes.nombre)==0){
b=1; //bandera de ocupado
j=i; //j=posicion ocupada.
}
}
}
if(b==1){ //para clientes existentes.
gotoxy(62,24);cprintf("Registrado=%d",clientes[j].id);
if(clientes[j].c<=2){ //verifica el contador de peliculas
capchar(clientes[j].pelicula[clientes[j].c].titulo,8,27,50); //captura titulo
clientes[j].pelicula[clientes[j].c].clasif=capturint(22,29,1,5); //captura clasificacion
clientes[j].pelicula[clientes[j].c].fecha=time(NULL); //guarda la fecha.
gotoxy(19,35);cprintf(ctime(&clientes[j].pelicula[clientes[j].c].fecha));
clientes[j].c++; //incrementa el numero de peliculas
}else{
gotoxy(13,27);cprintf("Usted a Llegado al limite de peliculas rentadas");
gotoxy(30,40);cprintf("Presione una tecla para volver al menu principal");
}
}else{
strcpy(clientes[pos].nombre,persona);
clientes[pos].ocu=1; //ocupa el lugar pos
clientes[pos].id=pos+100; //registra la id.
gotoxy(68,24);cprintf("%d",pos+100); //imprime el id
capchar(clientes[pos].pelicula[clientes[pos].c].titulo,8,27,50); //captura el titulo de la pelicula.
clientes[pos].pelicula[clientes[pos].c].clasif=capturint(22,29,1,5); //asigna la clasificacion
clientes[pos].pelicula[clientes[pos].c].fecha=time(NULL);
gotoxy(19,35);cprintf(ctime(&clientes[pos].pelicula[clientes[pos].c].fecha)); //imprime fecha.
clientes[pos].c++;
}
getch();
}else{
gotoxy(15,40);cprintf("Error: Vuelva a escribir");
getch();
}
}
void devolucion(struct cliente clientes[]){ //funcion que elimina una pelicula.
int i,pos,opc=0,popc;
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El blokboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,7); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,8); cprintf("³ Devolucion ³");
gotoxy(5,9); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,10); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,11); cprintf("³ Listado de Clientes ³");
gotoxy(5,12); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
for(i=0;i<50;i++){
if(clientes.ocu==1){
gotoxy(5,13+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,14+i*4);cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,15+i*4);cprintf("³ ³ ³");
gotoxy(5,16+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,15+i*4);cprintf("[%d] %s",i+1,clientes.nombre);
gotoxy(68,15+i*4);cprintf("%d",clientes.id);
pos=i+1; //verifica en que posicion de clientes va;
}
}if(pos>0){ //para cuando existen clientes. En caso de que no, no puede haber devoluciones
gotoxy(5,(17+(pos-1)*4));cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,(18+(pos-1)*4));cprintf("³ Escriba el id del cliente: ³");
gotoxy(5,(19+(pos-1)*4));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
opc=capturint(35,(18+(pos-1)*4),100,pos-1+100); //captura elnumero de cliente.
if(clientes[opc-100].c>0){
clrscr();
i=0;
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,7); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,8); cprintf("³ Devolucion ³");
gotoxy(5,9); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,10); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,11); cprintf("³ Listado de Rentas ³");
gotoxy(5,12); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,13+i*10); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,14+i*10); cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,15+i*10); cprintf("³ ³ ³");
gotoxy(5,16+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,15+i*10);cprintf("%s",clientes[opc-100].nombre);
gotoxy(68,15+i*10);cprintf("%d",clientes[opc-100].id);
gotoxy(5,17+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,18+i*10);cprintf("³ Peliculas Rentadas: ³");
gotoxy(5,19+i*10);cprintf("³ ³");
gotoxy(5,20+i*10);cprintf("³ ³");
gotoxy(5,21+i*10);cprintf("³ ³");
gotoxy(5,22+i*10);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(9,(19+i*10));cprintf("[1] %s",clientes[opc-100].pelicula[0].titulo);
gotoxy(9,(20+i*10));cprintf("[2] %s",clientes[opc-100].pelicula[1].titulo);
gotoxy(9,(21+i*10));cprintf("[3] %s",clientes[opc-100].pelicula[2].titulo);
gotoxy(5,(24+i*10));cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,(25+i*10));cprintf("³ Introduzca el numero de pelicula que desea devolver: ³");
gotoxy(5,(26+i*10));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
popc=capturint(60,(25+i*10),1,3); //captura el numero de pelicula
clientes[opc-100].pelicula[popc-1].clasif=0; //borra la clasificacion
clientes[opc-100].pelicula[popc-1].fecha='\x0'; //borra la fecha
clientes[opc-100].c--; //decrementa el contador del cliente.
for(i=0;i<50;i++){
clientes[opc-100].pelicula[popc-1].titulo=NULL; //borra el nombre de la pelicula
}
gotoxy(10,40);cprintf("Pelicula Devuelta, presione una tecla para volver al menu");
getch();
}else{
gotoxy(10,40);cprintf("Este cliente no ha rentado ninguna pelicula");
gotoxy(10,41);cprintf("Presione una tecla para volver al menu");
getch();
}
}else{
gotoxy(10,40);cprintf("No existe ningun cliente registrado");
gotoxy(10,41);cprintf("Presione una tecla para volver al menu");
getch();
}
}
void Lclientes(struct cliente clientes[]){ //lista de clientes.
int i,pos;
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,10); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,11); cprintf("³ Listado de Clientes ³");
gotoxy(5,12); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ´");
for(i=0;i<50;i++){
if(clientes.ocu==1){
gotoxy(5,13+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,14+i*4);cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,15+i*4);cprintf("³ ³ ³");
gotoxy(5,16+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,15+i*4);cprintf("%s",clientes.nombre);
gotoxy(68,15+i*4);cprintf("%d",clientes.id);
pos=i+1; //cuenta los clientes
}
else ;
}
gotoxy(5,(12+pos*4));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÙ");
getch();
}
void rentas(struct cliente clientes[]){ //lista de rentas ordenadas por # de cliente o # id
int i,k,pos,a=0;
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,4); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,5); cprintf("³ Listado de Rentas ³");
gotoxy(5,6); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
for(i=0;i<50;i++){
if(clientes.ocu==1){
gotoxy(5,7+i*10); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,8+i*10); cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,9+i*10); cprintf("³ ³ ³");
gotoxy(5,10+i*10); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,9+i*10);cprintf("%s",clientes.nombre);
gotoxy(68,9+i*10);cprintf("%d",clientes.id);
gotoxy(5,11+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,12+i*10);cprintf("³ Peliculas Rentadas: ³");
gotoxy(5,13+i*10);cprintf("³ ³");
gotoxy(5,14+i*10);cprintf("³ ³");
gotoxy(5,15+i*10);cprintf("³ ³");
gotoxy(5,16+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(9,(13+i*10));cprintf("[1] %s",clientes.pelicula[0].titulo);
gotoxy(9,(14+i*10));cprintf("[2] %s",clientes.pelicula[1].titulo);
gotoxy(9,(15+i*10));cprintf("[3] %s",clientes.pelicula[2].titulo);
a++;
}
gotoxy(5,(16+(a-1)*10));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
}
getch();
}
void menugraf(){
textbackground(1);
textcolor(11);
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(15,5); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(15,6); cprintf("³ VIDEOCINE ''El Bloqboster ³");
gotoxy(15,7); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ");
gotoxy(15,8); cprintf("³ ³");
gotoxy(15,9); cprintf("³ [1] Registrar cliente ³");
gotoxy(15,10);cprintf("³ [2] Renta ³");
gotoxy(15,11);cprintf("³ [3] Devolucion ³");
gotoxy(15,12);cprintf("³ [4] Listado por cliente ³");
gotoxy(15,13);cprintf("³ [5] Consulta de peliculas rentadas ³");
gotoxy(15,14);cprintf("³ [6] Salir ³");
gotoxy(15,15);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(15,16);cprintf("Selecciona una opcion=");
}
void menu(){
int i=0;
struct cliente clientes[50];
reiniciar(clientes);
do{
menugraf(); //menu grafico (el cuadrito solamente)
i=capturint(37,16,1,6); //captura la opcion del menu.
switch(i){
case 1: registra(clientes);
break;
case 2: renta(clientes);
break;
case 3: devolucion(clientes);
break;
case 4: Lclientes(clientes);
break;
case 5: rentas(clientes);
break;
case 6: break;
}
}while(i!=6);
}
void main(){
menu();
}
Utilizando
vectores de estructuras implemente el control de rentas de un videoclub.
Por cada renta se consideran los siguientes datos:
Por cada renta se consideran los siguientes datos:
•
Nombre del cliente
•
Título rentado
•
Clasificación (Estreno, Catálogo, Adultos, etc.)
•
Fecha de Renta
Se requiere que el sistema cuente con los siguientes módulos:
1) Renta. Máximo 3 películas por cliente. La fecha de renta se obtendrá del sistema.
2) Devolución. (Por nombre de cliente)
3) Consulta individual por nombre de cliente.
Se requiere que el sistema cuente con los siguientes módulos:
1) Renta. Máximo 3 películas por cliente. La fecha de renta se obtendrá del sistema.
2) Devolución. (Por nombre de cliente)
3) Consulta individual por nombre de cliente.
4) Consulta general de todas las rentas ordenadas por nombre de cliente.
Sin utlizar variables globales.
El problema que cuando quiero hacer la consulta se cicla y no encuentro mi error.
Aqui les dejo el codigo si alguien encuentra mi error hagamelo saber ya que esta tarea tengo que entregar mañana a la 1:00pm
CODIGO
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<string.h>
struct video{ //estructura de una pelicula
char titulo[50]; //nombre de la pelicula
int clasif; //numero de clasificacion
time_t fecha; //fecha
};
struct cliente{ //estructura del cliente
int id,c,ocu; //identificacion (posicion+100), contador de peliculas rentadas, y ocupado o no.
char nombre[50]; //nombre del cliente.
struct video pelicula[3]; //nombre de peliculas rentadas
};
void capchar(char cad[],int x,int y,int t){ //funcion validacion de captura de caracteres
char tecla;
int pos,b=0;
cad[0]='\x0';
do{
gotoxy(x,y);textcolor(11);
cprintf("%s",cad);
tecla=getch();
switch(tecla){
case '\x0': tecla=getch();b=1;
break;
default: b=0;
}
if((isalnum(tecla)||isspace(tecla)||ispunct(tecla))&&strlen(cad)<t&&b==0){
pos=strlen(cad);
cad[pos]=tecla;
cad[pos+1]='\x0';
}
if(tecla=='\x8'){
gotoxy(x,y);
textcolor(1);
cprintf("%s",cad);
pos=strlen(cad);
cad[pos-1]='\x0';
}
}while(tecla!='\xD');
}
int capturint(int x, int y,float min,float max){ //funcion de validacion de numeros enteros
char tecla, cad[6];
int num=min,pos;
cad[0]='\x0';
if(min<-32768){
cprintf("El rango es muy pequeno");
}
if(max>32767){
cprintf("El rango es muy grande");
}
do{
gotoxy(x,y);
textcolor(11);
cprintf("%s",cad);
tecla=getch();
if(tecla=='-'&&strlen(cad)==0){
pos=strlen(cad);
cad[pos]=tecla;
cad[pos+1]='\x0';
}
if(isdigit(tecla)&&strlen(cad)<5){
pos=strlen(cad);
cad[pos]=tecla;
cad[pos+1]='\x0';
}
if(tecla=='\x8'){
gotoxy(x,y);
textcolor(1);
cprintf("%s",cad);
pos=strlen(cad);
cad[pos-1]='\x0';
}
if(cad[0]!='\x0')
num=atoi(cad);
}while(tecla!='\xD'||cad[0]=='\x0');
if(num>=min&&num<=max){
return num;
}else{
gotoxy(10,40);
cprintf("El rango del numero es %.0f a %.0f",min,max);
delay(1000);
gotoxy(10,40);
textcolor(1);
cprintf("El rango del numero es %.0f a %.0f",min,max);
gotoxy(x,y);
textcolor(1);
cprintf("%s",cad);
num=capturint(x,y,min,max);
textcolor(11);
return num;
}
}
void reiniciar(struct cliente clientes[]){ //reinicia las estructuras, eliminando los datos.
int i,j,k,l;
for(i=0;i<50;i++){
clientes.id=0;
clientes.ocu=0;
clientes.c=0;
for (k=0;k<3;k++)
{ clientes.pelicula[k].clasif=0;
clientes.pelicula[k].titulo[0]='\x0';
}
clientes.nombre[0]='\x0';
}
}
void registra(struct cliente clientes[]){ //registro de un cliente.
int i,pos=0,b=0,j;
char persona[50]; //cadena auxiliar para capturar el nombre del cleinte
for(i=0;i<50;i++)persona=NULL; //vacia cadena.
gotoxy(10,20);cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(10,21);cprintf("³ Registro de Cliente ³");
gotoxy(10,22);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(10,23);cprintf("³ ³");
gotoxy(10,24);cprintf("³ Nombre del cliente: ³");
gotoxy(10,25);cprintf("³ ³");
gotoxy(10,26);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(10,27);cprintf("³ ³");
gotoxy(10,28);cprintf("³ Su numero de identificacion como cliente es: ³");
gotoxy(10,29);cprintf("³ ³");
gotoxy(10,30);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
for(i=0;i<50;i++){
if(clientes.ocu==1)pos=i+1; //verifica en que posicion de clientes va;
}
capchar(persona,13,25,50); //lo guarda en una variable de mientras
if(persona[0]!='\xD'){
for(i=0;i<50;i++){ //compara si ya esta registrado.
if(pos==i); //no se compara consigo mismo.
else{
if(strcmp(persona,clientes.nombre)==0){
b=1; //bandera de ocupado
j=i;
}
}
}
if(b==1){
gotoxy(19,29);cprintf("Usted ya esta registrado con el id=%d",clientes[j].id);
clientes[pos].ocu=0; //desocupa lo desocupado
clientes[pos].id=0;
}else{
strcpy(clientes[pos].nombre,persona);
clientes[pos].ocu=1; //ocupa el lugar 'pos'
clientes[pos].id=pos+100; //registra la id.
gotoxy(57,28);cprintf("%d",clientes[pos].id);
}
getch();
}else{
gotoxy(15,40);cprintf("Error: Vuelva a escribir");
getch();
}
}
void renta(struct cliente clientes[]){ //funcion de renta de peliculas.
int i,j,pos=0,b=0;
char persona[50];
for(i=0;i<50;i++)persona=NULL; //vacia cadena.
gotoxy(5,20);cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,21);cprintf("³ Renta de pelicula ³");
gotoxy(5,22);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,23);cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,24);cprintf("³ ³ ³");
gotoxy(5,25);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,26);cprintf("³ Nombre de la pelicula: ³");
gotoxy(5,27);cprintf("³ ³");
gotoxy(5,28);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,29);cprintf("³ Clasificacion: [1] Estrenos ³");
gotoxy(5,30);cprintf("³ [2] Terror ³");
gotoxy(5,31);cprintf("³ [3] Comedia ³");
gotoxy(5,32);cprintf("³ [4] Mexicanas ³");
gotoxy(5,33);cprintf("³ [5] X X X ³");
gotoxy(5,34);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,35);cprintf("³ Fecha: ³");
gotoxy(5,36);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
for(i=0;i<50;i++){
if(clientes.ocu==1){
pos=i+1; //verifica en que posicion de clientes va; pos=posicion final
}
}
capchar(persona,8,24,50); //lo guarda en una variable de mientras
if(persona[0]!='\xD'){
for(i=0;i<50;i++){ //compara si ya esta registrado.
if(pos==i); //no se compara consigo mismo.
else{
if(strcmp(persona,clientes.nombre)==0){
b=1; //bandera de ocupado
j=i; //j=posicion ocupada.
}
}
}
if(b==1){ //para clientes existentes.
gotoxy(62,24);cprintf("Registrado=%d",clientes[j].id);
if(clientes[j].c<=2){ //verifica el contador de peliculas
capchar(clientes[j].pelicula[clientes[j].c].titulo,8,27,50); //captura titulo
clientes[j].pelicula[clientes[j].c].clasif=capturint(22,29,1,5); //captura clasificacion
clientes[j].pelicula[clientes[j].c].fecha=time(NULL); //guarda la fecha.
gotoxy(19,35);cprintf(ctime(&clientes[j].pelicula[clientes[j].c].fecha));
clientes[j].c++; //incrementa el numero de peliculas
}else{
gotoxy(13,27);cprintf("Usted a Llegado al limite de peliculas rentadas");
gotoxy(30,40);cprintf("Presione una tecla para volver al menu principal");
}
}else{
strcpy(clientes[pos].nombre,persona);
clientes[pos].ocu=1; //ocupa el lugar pos
clientes[pos].id=pos+100; //registra la id.
gotoxy(68,24);cprintf("%d",pos+100); //imprime el id
capchar(clientes[pos].pelicula[clientes[pos].c].titulo,8,27,50); //captura el titulo de la pelicula.
clientes[pos].pelicula[clientes[pos].c].clasif=capturint(22,29,1,5); //asigna la clasificacion
clientes[pos].pelicula[clientes[pos].c].fecha=time(NULL);
gotoxy(19,35);cprintf(ctime(&clientes[pos].pelicula[clientes[pos].c].fecha)); //imprime fecha.
clientes[pos].c++;
}
getch();
}else{
gotoxy(15,40);cprintf("Error: Vuelva a escribir");
getch();
}
}
void devolucion(struct cliente clientes[]){ //funcion que elimina una pelicula.
int i,pos,opc=0,popc;
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El blokboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,7); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,8); cprintf("³ Devolucion ³");
gotoxy(5,9); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,10); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,11); cprintf("³ Listado de Clientes ³");
gotoxy(5,12); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
for(i=0;i<50;i++){
if(clientes.ocu==1){
gotoxy(5,13+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,14+i*4);cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,15+i*4);cprintf("³ ³ ³");
gotoxy(5,16+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,15+i*4);cprintf("[%d] %s",i+1,clientes.nombre);
gotoxy(68,15+i*4);cprintf("%d",clientes.id);
pos=i+1; //verifica en que posicion de clientes va;
}
}if(pos>0){ //para cuando existen clientes. En caso de que no, no puede haber devoluciones
gotoxy(5,(17+(pos-1)*4));cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,(18+(pos-1)*4));cprintf("³ Escriba el id del cliente: ³");
gotoxy(5,(19+(pos-1)*4));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
opc=capturint(35,(18+(pos-1)*4),100,pos-1+100); //captura elnumero de cliente.
if(clientes[opc-100].c>0){
clrscr();
i=0;
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,7); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,8); cprintf("³ Devolucion ³");
gotoxy(5,9); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,10); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,11); cprintf("³ Listado de Rentas ³");
gotoxy(5,12); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,13+i*10); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,14+i*10); cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,15+i*10); cprintf("³ ³ ³");
gotoxy(5,16+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,15+i*10);cprintf("%s",clientes[opc-100].nombre);
gotoxy(68,15+i*10);cprintf("%d",clientes[opc-100].id);
gotoxy(5,17+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,18+i*10);cprintf("³ Peliculas Rentadas: ³");
gotoxy(5,19+i*10);cprintf("³ ³");
gotoxy(5,20+i*10);cprintf("³ ³");
gotoxy(5,21+i*10);cprintf("³ ³");
gotoxy(5,22+i*10);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(9,(19+i*10));cprintf("[1] %s",clientes[opc-100].pelicula[0].titulo);
gotoxy(9,(20+i*10));cprintf("[2] %s",clientes[opc-100].pelicula[1].titulo);
gotoxy(9,(21+i*10));cprintf("[3] %s",clientes[opc-100].pelicula[2].titulo);
gotoxy(5,(24+i*10));cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,(25+i*10));cprintf("³ Introduzca el numero de pelicula que desea devolver: ³");
gotoxy(5,(26+i*10));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
popc=capturint(60,(25+i*10),1,3); //captura el numero de pelicula
clientes[opc-100].pelicula[popc-1].clasif=0; //borra la clasificacion
clientes[opc-100].pelicula[popc-1].fecha='\x0'; //borra la fecha
clientes[opc-100].c--; //decrementa el contador del cliente.
for(i=0;i<50;i++){
clientes[opc-100].pelicula[popc-1].titulo=NULL; //borra el nombre de la pelicula
}
gotoxy(10,40);cprintf("Pelicula Devuelta, presione una tecla para volver al menu");
getch();
}else{
gotoxy(10,40);cprintf("Este cliente no ha rentado ninguna pelicula");
gotoxy(10,41);cprintf("Presione una tecla para volver al menu");
getch();
}
}else{
gotoxy(10,40);cprintf("No existe ningun cliente registrado");
gotoxy(10,41);cprintf("Presione una tecla para volver al menu");
getch();
}
}
void Lclientes(struct cliente clientes[]){ //lista de clientes.
int i,pos;
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,10); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,11); cprintf("³ Listado de Clientes ³");
gotoxy(5,12); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ´");
for(i=0;i<50;i++){
if(clientes.ocu==1){
gotoxy(5,13+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,14+i*4);cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,15+i*4);cprintf("³ ³ ³");
gotoxy(5,16+i*4);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,15+i*4);cprintf("%s",clientes.nombre);
gotoxy(68,15+i*4);cprintf("%d",clientes.id);
pos=i+1; //cuenta los clientes
}
else ;
}
gotoxy(5,(12+pos*4));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÙ");
getch();
}
void rentas(struct cliente clientes[]){ //lista de rentas ordenadas por # de cliente o # id
int i,k,pos,a=0;
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(5,4); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(5,5); cprintf("³ Listado de Rentas ³");
gotoxy(5,6); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
for(i=0;i<50;i++){
if(clientes.ocu==1){
gotoxy(5,7+i*10); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,8+i*10); cprintf("³ Nombre del cliente: ³ id: ³");
gotoxy(5,9+i*10); cprintf("³ ³ ³");
gotoxy(5,10+i*10); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(8,9+i*10);cprintf("%s",clientes.nombre);
gotoxy(68,9+i*10);cprintf("%d",clientes.id);
gotoxy(5,11+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(5,12+i*10);cprintf("³ Peliculas Rentadas: ³");
gotoxy(5,13+i*10);cprintf("³ ³");
gotoxy(5,14+i*10);cprintf("³ ³");
gotoxy(5,15+i*10);cprintf("³ ³");
gotoxy(5,16+i*10);cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´");
gotoxy(9,(13+i*10));cprintf("[1] %s",clientes.pelicula[0].titulo);
gotoxy(9,(14+i*10));cprintf("[2] %s",clientes.pelicula[1].titulo);
gotoxy(9,(15+i*10));cprintf("[3] %s",clientes.pelicula[2].titulo);
a++;
}
gotoxy(5,(16+(a-1)*10));cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
}
getch();
}
void menugraf(){
textbackground(1);
textcolor(11);
clrscr();
gotoxy(0,1);cprintf("³ Sistema bien chakas para el videocine 'El Bloqboster' ³ _ ³ Ú¿ ³ X ³");
gotoxy(0,2);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(15,5); cprintf("ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gotoxy(15,6); cprintf("³ VIDEOCINE ''El Bloqboster ³");
gotoxy(15,7); cprintf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ");
gotoxy(15,8); cprintf("³ ³");
gotoxy(15,9); cprintf("³ [1] Registrar cliente ³");
gotoxy(15,10);cprintf("³ [2] Renta ³");
gotoxy(15,11);cprintf("³ [3] Devolucion ³");
gotoxy(15,12);cprintf("³ [4] Listado por cliente ³");
gotoxy(15,13);cprintf("³ [5] Consulta de peliculas rentadas ³");
gotoxy(15,14);cprintf("³ [6] Salir ³");
gotoxy(15,15);cprintf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");
gotoxy(15,16);cprintf("Selecciona una opcion=");
}
void menu(){
int i=0;
struct cliente clientes[50];
reiniciar(clientes);
do{
menugraf(); //menu grafico (el cuadrito solamente)
i=capturint(37,16,1,6); //captura la opcion del menu.
switch(i){
case 1: registra(clientes);
break;
case 2: renta(clientes);
break;
case 3: devolucion(clientes);
break;
case 4: Lclientes(clientes);
break;
case 5: rentas(clientes);
break;
case 6: break;
}
}while(i!=6);
}
void main(){
menu();
}