[C con Clase] codigo de c++ calculo de mora
Sebastian Oldani
sebastianoldani en gmail.com
Vie Jun 13 12:06:45 CEST 2014
La verdad que yo tampoco se.
Nos vemos.
El 12/06/14 22:22, jose valladares escribió:
> no se como estructura el codigo del calculo de mora de un prestamo donde tengo que agarar la fecha de prestamo y la de entrega y no se como aser esa funcion me serbiria mucho su gran ayuda y gracias por su atencion...
>
>
> y agregarlo a este codigo
>
> #include <stdio.h>
> #include <conio.h>
> #include <string.h>
> #include <time.h>
> #include <stdlib.h>
> #include <iostream.h>
> #include <dos.h>
> #include <windows.h>
>
> void AltEnter()
> {
> keybd_event(VK_MENU,
> 0x38,
> 0,
> 0);
> keybd_event(VK_RETURN,
> 0x1c,
> 0,
> 0);
> keybd_event(VK_RETURN,
> 0x1c,
> KEYEVENTF_KEYUP,
> 0);
> keybd_event(VK_MENU,
> 0x38,
> KEYEVENTF_KEYUP,
> 0);
> return;
> }
>
>
>
>
> //DEFINICION DE LA ESTRUCTURA DE REGISTRO PARA UN LIBRO
> typedef struct {
> char titulo[225];
> char barcode[7];
> char autor[240];
> char editorial[240];
> char edicion[100];
> int estado;
> }Libro;
>
> //DEFINICION DE LA ESTRUCTURA DE REGISTRO PARA UN USUARIO
> typedef struct {
> char dpi_completo[91];
> char dpi[14];
> char nombre[16];
> char apellido[16];
> char fecha_nac[7];
> char fecha_venc[7];
> char sexo[2];
> int estado;
> }Persona;
>
>
> //DEFINICION DE LA ESTRUCTURA DE REGISTRO PARA UN USUARIO
> typedef struct {
> char barcode[7];
> char dpi_completo[91];
> char fecha_prestamo[7];
> char fecha_devolucion[7];
> int estado;
> }Prestamo;
>
>
> /*Nombre del Archivo a guardar*/
> char nombre_fichero_libro[] = "libro.dat";
> char nombre_fichero[] = "persona.dat";
> char nombre_fichero_prestamo[]="prestamo.dat";
>
> //-----------------------------------INICIO OPERACIONES CON LIBROS------------
> /*************************************************
> Funcion que Carga el Archivo y regresa un apuntador con que se va ha manejar el Archivo
> Recibe: El nombre del Archivo , Y el método con que se va abrir el Archivo
> Un Apuntador tipo Archivo, 0 - Solo Lectura , 1 - Para crearlo de nuevo desde cero,
> 2 - Anadir Informacion, 3 - para Lectura y Escritura.
> Regresa: El apuntador de Tipo FILE, con el cual se abrio*/
> FILE *abrir_fichero_b(char cadena[], int metodo){
> FILE *x;
> switch(metodo){
> case 0:
> x = fopen(cadena,"rb");
> break;
> case 1:
> x = fopen(cadena,"wb");
> break;
> case 2:
> x = fopen(cadena,"ab");
> break;
> case 3:
> x = fopen(cadena,"r+b");
> break;
> }
> return x;
> }
>
>
> // FUNCION PARA CREAR UN ARCHIVO
> /*****************************************************************
> Funcion que sirve para borrar todo el Contenido del Archivo Binario*/
> void CrearLibro(){
> FILE *fp;
>
> fp = abrir_fichero_b(nombre_fichero_libro,0);
> if(fp)
> {
> printf("\n Error de apertura del archivo persona.dat\n");
> fclose(fp);
> }
> }
>
>
> /*Funcion que sirve para cargar menu de bienvenida*/
> void loading (int n)
> {
> textcolor(BLUE);system("cls");gotoxy(35,11);cprintf("CARGANDO");
> for(int h=1;h<4;h++)
> {
> for(int i=5; i<67;i++)
> {
> gotoxy(i,24);cout<<"۲˛±±°°";
> Sleep(n);
> }
> for(int j=66;j>4;j--)
> {
> gotoxy(j,24);cout<<"°°±±˛˛Ű";
> Sleep(n);
> }
> }
> textcolor(RED);gotoxy(35,11);cprintf(" ENTER ");
> gotoxy(22,24);cprintf("***BIENVENIDO BIBLIOTECA VIRTUAL...\n");
> getch();
> }
>
>
> /********************************************************
> Funcion que sirve para imprimir todos los un registros del Archivo Binario*/
> void ListarLibro(){
> FILE *fp;
> int i=1;
> Libro aux;
>
> fp = abrir_fichero_b(nombre_fichero_libro,0);
> if(!(fp))
> printf("\n Error de apertura del archivo persona.dat\n");
> else{
> textcolor(LIGHTGREEN);
> cprintf("\n L I B R O S R E G I S T R A D O S\n");
> normvideo();
> printf("---------------------------------------------------------------\n");
> while ((fread(&aux, sizeof(aux), 1, fp))!=0){
> textcolor(10);
> printf("=> Datos del Libro %d\n",i);
> printf("Codigo del Libro (Barcode): %s\n",aux.barcode);
> printf("Titulo: %s | Autor: %s | Editorial: %s | Edicion: %s | Estado: %d\n",aux.titulo,aux.autor,aux.editorial,aux.edicion,aux.estado);
> printf("---------------------------------------------------------------\n");
> i++;
> }
> // printf("---------------------------------------------------------------\n");
> fclose(fp);
> }
> }
>
>
> int BuscarLibro(char *codigo){
> FILE *fp;
> Libro aux;
> int n;
> int resultado;
> // char codigo[9];
>
> fp=abrir_fichero_b(nombre_fichero_libro,0);
> if(!(fp))
> printf("\n Error de apertura del archivo libro.dat\n");
> else
> {
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.barcode,codigo)!=0);
> if (n==0)
> {
> //printf("No existe el Libro : %s ",cadena);
> resultado = 0;
> }
> else
> {
> //printf("\n Libro encontrado....!!!\n");
> resultado = 1;
> }
> }
> fclose(fp);
> return resultado;
> }
>
>
> /********************************************************
> Funcion que sirve para agregar un registro dentro del Archivo Binario*/
> void AgregarLibro(){
> FILE *fp;
> Libro aux;
>
> printf("\n AGREGANDO UN LIBRO NUEVO AL ARCHIVO BINARIO LIBRO.DAT\n");
> fp=abrir_fichero_b(nombre_fichero_libro,2);
> if(!(fp))
> printf("\n Error de apertura del archivo libro.dat\n");
> else{
> /*Introduciendo los Datos del Libro*/
> printf("INGRESE EL CODIGO DE BARRAS PARA EL NUEVO LIBRO: ");
> // scanf("%s",&aux.dpi_completo);
> gets(aux.barcode);
> // strcpy(temporal,aux.dpi_completo);
> // aux.dpi[13]= '\0';
> if (BuscarLibro(aux.barcode)!=0)
> { printf("EL CODIGO DEL LIBRO YA EXISTE!!!!");
> }
> else
> {
> //obtengo el titulo
> printf("INGRESE EL TITULO DEL LIBRO\n");
> gets(aux.titulo);
> //obtengo el autor
> printf("INGRESE EL AUTOR DEL LIBRO\n");
> gets(aux.autor);
> //obtengo el editorial
> printf("INGRESE LA EDITORIAL DEL LIBRO\n");
> gets(aux.editorial);
> //obtengo el edicion
> printf("INGRESE LA EDICION DEL LIBRO\n");
> gets(aux.edicion);
> //marco como activo el libro con estado = 1
> aux.estado = 1;
> //Escribir en el archivo
> fwrite(&aux, sizeof(aux), 1, fp);
>
> }
>
> fclose(fp);
> }
> }
>
>
> /********************************************************
> Funcion que sirve para Modificar un registro dentro del Archivo Binario*/
> void ModificarLibro(){
> FILE *fp;
> Libro aux;
> int n;
> int estadot;
> char codigo[7];
> char temptitulo[225];
> char tempautor[250];
> char tempeditorial[240];
> char tempedicion[100];
>
> fp=abrir_fichero_b(nombre_fichero_libro,3);
> if(!(fp))
> printf("\n Error de apertura del archivo persona.dat\n");
> else{
> printf("INGRESE EL CODIGO DEL LIBRO A MODIFICAR: ");
> gets(codigo);
>
> //Buscando el libro dentro del Archivo
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.barcode,codigo)!=0);
> if (n==0)
> printf("NO EXISTE EL LIBRO CON CODIGO: %s ",codigo);
> else{
> printf("\n LIBRO ENCONTRADO...!!!\n");
> printf("Codigo del Libro: %s ",aux.barcode);
> printf("Titulo: %s ",aux.titulo);
> strcpy(temptitulo,aux.titulo);
> printf("Autor: %s ",aux.autor);
> strcpy(tempautor,aux.autor);
> printf("Editorial: %s ",aux.editorial);
> strcpy(tempeditorial,aux.editorial);
> printf("Edicion: %s ",aux.edicion);
> strcpy(tempedicion,aux.edicion);
> printf("Estado (Activo = 1) (Inactivo=0): %d\n",aux.estado);
>
> printf("\n CAMBIANDO VALORES... \n");
>
> printf("Ingrese el nuevo titulo del libro: ");
> gets(aux.titulo);
> gets(temptitulo);
> if (strlen(temptitulo)!=0)
> {
> strcpy(aux.titulo,temptitulo);
> }
> printf("Ingrese el nuevo autor del libro: ");
> gets(aux.autor);
> gets(tempautor);
> if (strlen(tempautor)!=0)
> {
> strcpy(aux.autor,tempautor);
> }
> printf("Ingrese la nueva editorial del libro: ");
> gets(aux.editorial);
> gets(tempeditorial);
> if (strlen(tempeditorial)!=0)
> {
> strcpy(aux.editorial,tempeditorial);
> }
> printf("Ingrese la nueva edicion del libro: ");
> gets(aux.edicion);
> gets(tempedicion);
> if (strlen(tempedicion)!=0)
> {
> strcpy(aux.edicion,tempedicion);
> }
> printf("Ingrese el estado del libro (Activo = 1) (Inactivo=0): ");
> scanf("%d",&estadot);
> switch(estadot)
> {
> case 1:
> aux.estado=1;
> break;
> case 0:
> aux.estado=0;
> break;
> default:
> aux.estado=1;
> break;
> }
>
> printf("\n GRABANDO... \n");
> fseek(fp,-1*sizeof(aux),SEEK_CUR);
> fwrite(&aux, sizeof(aux), 1, fp);
> }
> fclose(fp); //Cerramos el archivo
> }
> }
>
> /********************************************************
> Funcion que sirve para borrar un registro dentro del Archivo Binario*/
> void Borrarlibro(){
> FILE *fp;
> Libro aux;
> int n;
> char respuesta;
> char codigo[7];
>
> fp=abrir_fichero_b(nombre_fichero_libro,3);
> if(!(fp))
> printf("\n Error de apertura del archivo libro.dat\n");
> else{
> printf("INGRESE EL CODIGO DEL LIBRO A ELIMINAR: ");
> gets(codigo);
>
> //Buscando el libro dentro del Archivo
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.barcode,codigo)!=0);
> if (n==0)
> printf("NO EXISTE EL LIBRO CON CODIGO: %s ",codigo);
> else{
> printf("\nLibro encontrado...!!!\n");
> printf("Codigo del Libro: %s ",aux.barcode);
> printf("Titulo: %s ",aux.titulo);
> printf("Autor: %s ",aux.autor);
> printf("Editorial: %s ",aux.editorial);
> printf("Edicion: %s ",aux.edicion);
> printf("Estado (Activo = 1) (Inactivo=0): %d\n",aux.estado);
>
> printf("DESEA ELIMINAR EL LIBRO IDENTIFICADO CON EL BARCODE %s???? ",codigo);
> scanf("%c",&respuesta);
> switch(respuesta)
> {
> case 'S': case 's':
> aux.estado=0;
> printf("\n LIBRO ELIMINADO!!!!!!... \n");
> break;
> default:
> aux.estado=1;
> break;
> }
>
> fseek(fp,-1*sizeof(aux),SEEK_CUR);
> fwrite(&aux, sizeof(aux), 1, fp);
> }
> fclose(fp); //Cerramos el archivo
> }
> }
>
> /******************************************
> Funcion para Encontrar un Libro e imprimir sus datos*/
> void Encontrarlibro()
> {
> FILE *fp;
> Libro aux;
> int n;
> char cadena[91];
>
> printf("INTRODUCE EL BARCODE DEL LIBRO QUE BUSCAS: ");
> scanf("%s",&cadena);
> gets(cadena);
>
> printf("\n BUSCANDO A LA PERSONA \n");
> fp=abrir_fichero_b(nombre_fichero_libro,0);
> if(!(fp))
> printf("\n ERROR DE APERTURA DEL ARCHIVO LIBRO.DAT\n");
> else{
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.barcode,cadena)!=0);
> if (n==0)
> printf("NO EXISTE EL LIBRO : %s ",cadena);
> else{
> printf("\n LIBRO ENCONTRADO....!!!\n");
> printf("BARCODE: %s\n",aux.barcode);
> printf("Titulo: %s | Autor: %s | Editorial: %s | Edicion: %s\n",aux.titulo,aux.autor,aux.editorial,aux.edicion);
> }
> }
> }
>
>
> /******************************************
> Funcion que devuelve datos de un libro a buscar*/
> /*char *ObtenerDatoslibro(char *barcode){
> FILE *fp;
> Libro aux;
> int n;
> char *dato;
> char valor[]="S/D";
>
> // printf("Introduce el barcode del libro que buscas: ");
> // scanf("%s",&codigo);
> // gets(cadena);
>
> // printf("\n Buscando a la persona \n");
> fp=abrir_fichero_b(nombre_fichero_libro,0);
> if(!(fp))
> printf("\n Error de apertura del archivo libro.dat\n");
> else
> {
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.barcode,barcode)!=0);
> if (n==0)
> //printf("No existe el Libro : %s ",cadena);
> strcpy(dato,valor);
> else
> {
> //printf("\n Libro encontrado....!!!\n");
> strcpy(dato,aux.titulo);
> // printf("BARCODE: %s\n",aux.barcode);
> // printf("Titulo: %s | Autor: %s | Editorial: %s | Edicion: %s\n",aux.titulo,aux.autor,aux.editorial,aux.edicion);
> }
> }
> fclose(fp);
> return dato;
> } */
>
>
>
>
> //--------------------------------------FIN OPERACIONES CON LIBROS------------
> //++++++++++++++++++++++++++++++++++++++INICIO DE OPERACIONES CON USUARIOS++++++
>
> //FUNCION QUE DEVUELVE DIGITO VERIFICADOR PARA UN CODIGO UNICO DE IDENTIFICACION
> //-----------------------------------------------------------------------------
> char digitoverificador(char *cadena)
> { int i, suma, recorre, numero;
> char dato[] = "";
>
> suma = 0;
> recorre = 1;
> for (i=0; i<9; i++)
> {
> switch(*cadena)
> {case '1': numero = 1; break;
> case '2': numero = 2; break;
> case '3': numero = 3; break;
> case '4': numero = 4; break;
> case '5': numero = 5; break;
> case '6': numero = 6; break;
> case '7': numero = 7; break;
> case '8': numero = 8; break;
> case '9': numero = 9; break;
> case '0': numero = 0; break;
> }
> cadena++;
> switch(recorre)
> {
> case 1:
> suma = suma + (numero*7);
> break;
> case 2:
> suma = suma + (numero*3);
> break;
> case 3:
> suma = suma + (numero*1);
> break;
> }
> recorre++;
> if (recorre == 4)
> { recorre = 1;
> }
> }
> itoa(suma, dato, 10);
> strrev(dato);
> return dato[0];
> }
>
> /********************************************************
> Funcion que sirve para imprimir todos los un registros del Archivo Binario*/
> void ListarUsuarios(){
> FILE *fp;
> int i=1;
> Persona aux;
> fp = abrir_fichero_b(nombre_fichero,0);
> if(!(fp))
> printf("\n Error de apertura del archivo persona.dat\n");
> else{
> textcolor(LIGHTGREEN);
> cprintf("\n P E R S O N A S R E G I S T R A D A S\n");
> normvideo();
> printf("---------------------------------------------------------------\n");
> while ((fread(&aux, sizeof(aux), 1, fp))!=0){
> textcolor(10);
> printf("=> Datos de la Persona %d\n",i);
> printf("DPI: %s\n",aux.dpi);
> printf("Nombre: %s | Apellido: %s | Fecha Nacimiento: %s | Fecha Vencimiento DPI: %s | Sexo: %s\n",aux.nombre,aux.apellido,aux.fecha_nac,aux.fecha_venc,aux.sexo);
> printf("DPI completo: %s\n",aux.dpi_completo);
> printf("---------------------------------------------------------------\n");
> i++;
> }
> // printf("---------------------------------------------------------------\n");
> fclose(fp);
> }
> }
>
> //FUNCION QUE VERIFICA QUE EL USUARIO NO EXISTA....
> int BuscarUsuario(char *dpicompleto){
> FILE *fp;
> Persona aux;
> int n;
> int resultado;
> // char codigo[9];
>
> fp=abrir_fichero_b(nombre_fichero,0);
> if(!(fp))
> printf("\n Error de apertura del archivo persona.dat\n");
> else
> {
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.dpi_completo,dpicompleto)!=0);
> if (n==0)
> {
> //printf("No existe el Usuario : %s ",cadena);
> resultado = 0;
> }
> else
> {
> //printf("\n Usuario encontrado....!!!\n");
> resultado = 1;
> }
> }
> fclose(fp);
> return resultado;
> }
>
>
>
> /********************************************************
> Funcion que sirve para agregar un registro dentro del Archivo Binario*/
> void AgregarUsuario(){
> FILE *fp;
> Persona aux;
> char temporal[91];
> char dpivalida[10];
> int j,cuenta_nombre,cuenta_apellido;
>
> printf("\n AGREGANDO UN USUARIO NUEVO AL ARCHIVO BINARIO PERSONA.DAT\n");
> fp=abrir_fichero_b(nombre_fichero,2);
> if(!(fp))
> printf("\n Error de apertura del archivo persona.dat\n");
> else //PRIMER ELSE PARA ABRIR EL ARCHIVO
> {
> /*Introduciendo los Datos del Usuario*/
> printf("PROPORCIONE LA LECTURA DEL DPI: ");
> scanf("%s",&aux.dpi_completo);
> strcpy(temporal,aux.dpi_completo);
> if (BuscarUsuario(aux.dpi_completo)!=0)
> { printf("EL USUARIO YA EXISTE!!!!");
> }
> else //ELSE PARA CUANDO EL DPI REALMENTE NO EXISTE...
> {
>
> for (j = 5; j <= 18; j++)
> {
> if (j < 14) {
> aux.dpi[j-5] = temporal[j];
> }
> if (j > 14) {
> aux.dpi[j-6] = temporal[j];
> }
> }//FIN DEL FOR OBTIENE DPI
> aux.dpi[13]= '\0';
> for (j=0; j<=8; j++)
> { dpivalida[j]=aux.dpi[j];
> } //FIN DEL FOR PARA VALIDAR EL DPI A TRAVES DEL DIGITO DE CONTROL
> dpivalida[9]='\0';
> if (temporal[14]!=digitoverificador(dpivalida))
> { printf("DPI NO VALIDO!!!!");
> }
> else //ELSE CUANDO EL DIGITO DE CONTROL ES VALIDO...
> {
> //obtengo el nombre
> int contador;
> contador = 0;
> cuenta_nombre = 0;
> cuenta_apellido = 0;
> for (int j = 60; j <= 89; j++)
> {
> if ((temporal[j] != '<' ) && (contador < 1)) {
> aux.apellido[j-60] = temporal[j];
> cuenta_apellido++;
> }
> if (temporal[j] == '<' ){
> contador++;
> }
> if ((temporal[j] != '<') && (contador > 1)) {
> aux.nombre[j-(cuenta_apellido+62)] = temporal[j];
> cuenta_nombre++;
> }
> if (contador > 3) {
> break;
> }
> } //FIN DEL ELSE
> aux.apellido[cuenta_apellido]='\0';
> aux.nombre[cuenta_nombre]='\0';
> //obtengo la fecha de nacimiento
> for (int j = 30; j <= 35; j++)
> {
> aux.fecha_nac[j-30] = temporal[j];
> }
> aux.fecha_nac[6]= '\0';
> //obtengo la fecha de vencimiento
> for (int j = 38; j <= 44; j++)
> {
> aux.fecha_venc[j-38] = temporal[j];
> }
> aux.fecha_venc[6]= '\0';
> aux.sexo[0] = temporal[37];
> aux.sexo[1]= '\0';
> aux.estado = 1;
>
> fwrite(&aux, sizeof(aux), 1, fp);
>
> }// FIN DEL ELSE CUANDO EL DPI PASA EL DIGITO DE CONTROL
>
> } //ELSE COMO EL USUARIO NO EXISTE... SE PROCEDE A INGRESAR EL USUARIO
>
> fclose(fp);
> } // FIN DEL PRIMER ELSE DE APERTURA DEL ARCHIVO
> }
>
>
> /******************************************
> Funcion para Encontrar un Usuario e imprimir sus datos*/
> void EncontrarUsuario(){
> FILE *fp;
> Persona aux;
> int n;
> char cadena[91];
>
> printf("INTRODUCE EL DPI QUE BUSCAS: ");
> scanf("%s",&cadena);
> gets(cadena);
>
> printf("\n BUSCANDO A LA PERSONA... \n");
> fp=abrir_fichero_b(nombre_fichero,0);
> if(!(fp))
> printf("\n Error de apertura del archivo persona.dat\n");
> else{
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.dpi_completo,cadena)!=0);
> if (n==0)
> printf("NO EXISTE EL DPI: %s ",cadena);
> else{
> printf("\n PERSONA ENCONTRADA....!!!\n");
> /* printf("Nombre: %s | Edad: %d | Telefono: %s\n",aux.nom,aux.edad,aux.tel);
> printf("Direccion: %s\n",aux.dir);*/
> printf("DPI: %s\n",aux.dpi);
> printf("NOMBRE: %s| APELLIDO: %s | FECHA NACIMIENTO: %s | FECHA VENCIMIENTO DPI: %s | Sexo: %s\n",aux.nombre,aux.apellido,aux.fecha_nac,aux.fecha_venc,aux.sexo);
> printf("DPI completo: %s\n",aux.dpi_completo);
>
> /* getch();*/
>
> }
> }
>
>
> }
>
>
>
>
> //++++++++++++++++++++++++++++++++++++++++FIN DE OPERACIONES CON USUARIOS++++++
>
>
> //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\INICIO OPERACIONES DEL PRESTAMO\\\\\\
>
>
> // PROCEDIMIENTO PARA BORRAR TODO EL CONTENIDO DEL ARCHIVO DE PRESTAMO
> /*****************************************************************
> Funcion que sirve para borrar todo el Contenido del Archivo Binario*/
> void CrearPrestamo(){
> FILE *fp;
>
> fp = abrir_fichero_b(nombre_fichero_prestamo,0);
> if(fp)
> {
> printf("\n Error de apertura del archivo prestamo.dat\n");
> fclose(fp);
> }
> }
>
> /******************************************
> Funcion para Encontrar si el libro con codigo esta prestado */
> int LibroPrestado(char *bcode){
> FILE *fp;
> Prestamo aux;
> int n;
> int encontrado = 0;
>
> fp=abrir_fichero_b(nombre_fichero_prestamo,0);
> if(!(fp))
> printf("\n Error de apertura del archivo prestamo.dat\n");
> else
> {
> while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.barcode,bcode)!=0);
> if (n==0)
> encontrado = 0;
> else
> {
> if (aux.estado!=0)
> {
> encontrado = 1;
> }
> }
> }
> fclose(fp);
> return encontrado;
>
> }
>
>
>
>
>
> /********************************************************
> Funcion que sirve para agregar un prestamo dentro del Archivo Binario*/
> void AgregarUnPrestamo(){
> FILE *fp;
> Prestamo aux;
> /* char dato[] = "";
> char d[] = "";
> char a[]="";
> char m[]=""; */
>
>
> printf("\n AGREGANDO UN PRESTAMO AL ARCHIVO BINARIO PRESTAMO.DAT\n");
> fp=abrir_fichero_b(nombre_fichero_prestamo,2);
> if(!(fp))
> printf("\n Error de apertura del archivo prestamo.dat\n");
> else{
> /*Introduciendo los Datos del Libro*/
> printf("INGRESE EL CODIGO DE BARRAS DEL LIBRO QUE PRESTARA: ");
> gets(aux.barcode);
> /*Introduciendo los Datos del Usuario*/
> printf("INGRESE EL DPI DEL USUARIO QUE REALIZA EL PRESTAMO: ");
> scanf("%s",&aux.dpi_completo);
>
> if (BuscarLibro(aux.barcode)==0)
> { printf("EL CODIGO DEL LIBRO NO EXISTE!!!!");
> }
> else if (BuscarUsuario(aux.dpi_completo)==0)
> {
> printf("EL DPI DEL USUARIO NO ESTA REGISTRADO!!!!");
> }
> else if (LibroPrestado(aux.barcode)==1)
> { printf("EL LIBRO YA SE ENCUENTRA PRESTADO!!!!");
> }
> else
> {
> //ingreso la fecha del prestamo
> /* itoa(dia, d, 10);
> itoa(mes, m, 10);
> itoa(anio, a, 10);
> strcat(dato,d);
> strcat(dato,m);
> strcat(dato,a); */
> strcpy(aux.fecha_prestamo,"260414");
> //ingreso la fecha del devolucion
> strcpy(aux.fecha_devolucion,"020514");
> aux.estado = 1;
> //Escribir en el archivo
> fwrite(&aux, sizeof(aux), 1, fp);
>
> }
>
> fclose(fp);
> }
> }
>
> /********************************************************
> Funcion que sirve para imprimir todos los un registros del Archivo Binario*/
> void ListarPrestamos(){
> FILE *fp;
> int i=1;
> Prestamo aux;
> char *datoslibro;
> fp = abrir_fichero_b(nombre_fichero_prestamo,0);
> if(!(fp))
> printf("\n Error de apertura del archivo prestamo.dat\n");
> else
> { textcolor(LIGHTGREEN);
> cprintf("\n P R E S T A M O S R E G I S T R A D O S\n");
> normvideo();
> printf("---------------------------------------------------------------\n");
> while ((fread(&aux, sizeof(aux), 1, fp))!=0){
> textcolor(10);
>
> printf("=> DATOS DEL PRESTAMO %d\n",i);
> printf("DPI: %s\n",aux.dpi_completo);
> //datoslibro = ObtenerDatoslibro(aux.barcode);
> printf("CODIGO DE LIBRO PRESTADO: %s\n",aux.barcode);
> printf("FECHA PRESTAMO: %s\n",aux.fecha_prestamo);
> printf("FECHA PRESTAMO: %s\n",aux.fecha_devolucion);
> printf("ESTADO DEL PRESTAMO: %d\n",aux.estado);
> printf("---------------------------------------------------------------\n");
> i++;
> }
> printf("---------------------------------------------------------------\n");
> fclose(fp);
> }
> }
>
> /******************************************
> Funcion para Encontrar prestamos por medio de codigo de libro e imprimir sus datos*/
> void EncontrarPrestamoXcodigoDeLibro(){
> FILE *fp;
> Prestamo aux;
> int encontrado = 0;
> char codigolibro[7];
>
> printf("INTRODUCE EL CODIGO DE LIBRO QUE DESEA BUSCAR: ");
> scanf("%s",&codigolibro);
>
> printf("\n BUSCANDO PRESTAMO POR MEDIO DEL CODIGO DE LIBRO... \n");
> fp=abrir_fichero_b(nombre_fichero_prestamo,0);
> if(!(fp))
> printf("\n Error de apertura del archivo prestamo.dat\n");
> else
> {
> while (fread(&aux, sizeof(aux), 1, fp)!=0)
> {
>
> if ((stricmp(aux.barcode,codigolibro)==0) &&(aux.estado!=0))
> { encontrado = 1;
> printf("=> DATOS DEL PRESTAMO \n");
> printf("DPI: %s\n",aux.dpi_completo);
> printf("CODIGO DE LIBRO PRESTADO: %s\n",aux.barcode);
> printf("FECHA PRESTAMO: %s\n",aux.fecha_prestamo);
> printf("FECHA PRESTAMO: %s\n",aux.fecha_devolucion);
> printf("ESTADO DEL PRESTAMO: %d\n",aux.estado);
> }
> }
> }
> fclose(fp);
> if (encontrado == 0)
> printf("EL LIBRO NO SE ENCUENTRA PRESTADO!!!!\n");
>
> }
>
>
>
>
> /******************************************
> Funcion para Encontrar prestamos por medio DPI e imprimir sus datos*/
> void EncontrarPrestamoXdpi(){
> FILE *fp;
> Prestamo aux;
> int n;
> char codigodpi[91];
>
> printf("INTRODUCE EL DPI QUE DESEA BUSCAR: ");
> scanf("%s",&codigodpi);
>
> printf("\n BUSCANDO PRESTAMOS POR MEDIO DEL DPI... \n");
> fp=abrir_fichero_b(nombre_fichero_prestamo,0);
> if(!(fp))
> printf("\n Error de apertura del archivo prestamo.dat\n");
> else
> {
> while (fread(&aux, sizeof(aux), 1, fp)!=0)
> {
> if (stricmp(aux.dpi_completo,codigodpi)==0)
> {
> if (aux.estado!=0)
> {
> printf("=> DATOS DEL PRESTAMO \n");
> printf("DPI: %s\n",aux.dpi_completo);
> printf("CODIGO DE LIBRO PRESTADO: %s\n",aux.barcode);
> printf("FECHA PRESTAMO: %s\n",aux.fecha_prestamo);
> printf("FECHA PRESTAMO: %s\n",aux.fecha_devolucion);
> printf("ESTADO DEL PRESTAMO: %d\n",aux.estado);
> printf("---------------------------------------------------------------\n");
> }
> }
> }//fin del while
> }
> fclose(fp);
> }
>
> /********************************************************
> Procedimiento que sirve para registrar una devolucion de un libro logicamente dentro del Archivo Binario*/
> void RegistrarDevolucion(){
> FILE *fp;
> Prestamo aux;
> char respuesta;
> char codigo[7];
> int encontrado = 0;
>
> fp=abrir_fichero_b(nombre_fichero_prestamo,3);
> if(!(fp))
> {
> textcolor(LIGHTRED);
> cprintf("\n ERROR DE APERTURA DEL ARCHIVO PRESTAMO.DAT\n");
> normvideo();
> }
> else{
> printf("INGRESE EL CODIGO DEL LIBRO A DEVOLVER: ");
> gets(codigo);
>
> //Buscando el libro para aplicar la devolución logica dentro del Archivo
> while (fread(&aux, sizeof(aux), 1, fp)!=0)
> {
>
> if ((stricmp(aux.barcode,codigo)==0) && (aux.estado==1))
> {
> encontrado = 1;
> printf("DESEA DEVOLVER EL LIBRO IDENTIFICADO CON EL CODIGO %s ???? PRESIONE LA TECLA S PARA CONFIRMAR; CANCELAR PRESIONE LA TECLA C ",codigo);
> scanf("%c",&respuesta);
> switch(respuesta)
> {
> case 'S': case 's':
> aux.estado=0;
> printf("\n EL LIBRO HA SIDO DEVUELTO!!!!!!... \n");
> break;
> default:
> aux.estado=1;
> break;
> }
>
> fseek(fp,-1*sizeof(aux),SEEK_CUR);
> fwrite(&aux, sizeof(aux), 1, fp);
> rewind(fp);
> } // fin del if de encontrado y activo...
> }
> fclose(fp); //Cerramos el archivo
> if (encontrado== 0)
> printf("EL LIBRO NO SE ENCUENTRA PRESTADO!!!");
> }
> }
>
>
>
>
>
>
> //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\FIN OPERACIONES DEL PRESTAMO\\\\\\
>
>
> // Variables globales:
> //---------------------------------------------------------------------------
>
>
> char pass[10], a;
> char usuario[15];
>
> void LeerContrasenia()
> {
> void min_a_mayus(char *string);
>
> clrscr();
> gotoxy(20,12);
> printf("USUARIO|");
> gets(usuario);
> min_a_mayus(usuario);
> gotoxy(20,13);
> printf("PASSWORD|");
> for(int j=0;j<4;j++)
> {
> a=getch();
> if (a!= char(13))
> {
> pass[j]=a;
> cprintf("*");
> }
> else break;
> }
> printf("\nvalidando. ");
>
> for(int i = 0;i < 9; i++)
> {
> printf(".");
> Sleep(100);
> }
>
> min_a_mayus(pass);
>
> if ((strcmp(usuario,"jose") == 0) && (strcmp(pass,"1992") == 0))
> {
> clrscr();
> gotoxy(20,12);
> printf("BIENVENIDO");
> }
> else
> {
> clrscr();
> gotoxy(20,12);
> printf("ACCESO DENEGADO");
> }
> }
>
> void min_a_mayus( char *string )
> {
> for( ;*string!='\0';string++ )
> if( *string >='a' && *string <='z')
> *string -= (char)32;
> }
>
> void centraTexto(int fila, char cadena[])
> {
> int valorx;
>
> valorx=40-(strlen(cadena)/2);
> gotoxy(valorx,fila);
> textcolor(LIGHTGREEN);
> cprintf("%s",cadena);
> normvideo();
> }
>
> void MostrarFecha()
> {
> struct tm *tiempo;
> int dia;
> int mes;
> int anio;
>
> time_t fecha_sistema;
> time(&fecha_sistema);
> tiempo=localtime(&fecha_sistema);
>
> anio=tiempo->tm_year + 1900;
> mes=tiempo->tm_mon + 1;
> dia=tiempo->tm_mday;
> gotoxy(2,23);
> textcolor(LIGHTGREEN);
> cprintf("FECHA: %d-%d-%d", dia,mes,anio);
> normvideo();
> }
>
> void ConvierteMayusculas()
> {
> char c[15],d[15]; //variables de char en vectores
> int a,y; //variables int para cliclos
> printf("introduce cadena");
> gets (c); //obtiene cadena completa
> a = strlen(c); //cuenta cuantas letras metieron
> for(y=0;y<a;y++){
> d[y]=tolower(c[y]); //convierte a minusculas las introducidas
> }
> printf("\ncadena convertida a minusculas es:\n ");
> for(y=0;y<a;y++){
> printf("%c",d[y]); //imprime el arreglo convertido
> }
> }
>
>
>
>
> void PantallaPrincipal()
> {
>
> int i, d;
> clrscr;
> for (i=2; i<80; i++)
> {
> gotoxy(i,1);
> printf("%c",177);
>
> gotoxy(i,24);
> printf("%c",177);
> }
> for (d=2; d<24; d++)
> {
> gotoxy(1,d);
> printf("%c",177);
>
> gotoxy(80,d);
> printf("%c",177);
> }
>
> gotoxy(1,1);
> printf("%c",02);
> gotoxy(80,1);
> printf("%c",02);
> gotoxy(1,24);
> printf("%c",01);
> gotoxy(80,24);
> printf("%c",01);
> gotoxy(2,2);
> centraTexto(3,"BIENVENIDOS A CONTROL DE PRESTAMOS");
> centraTexto(4,"PROYECTO DE ESTUDIANTES DE 3 CICLO");
> centraTexto(5,"UNIVERSIDAD MARIANO GALVEZ");
> MostrarFecha();
> gotoxy(20,12);
> LeerContrasenia();
> }
>
> void PantallaMantenimientos()
> {
>
> int i, d;
> clrscr;
> for (i=2; i<80; i++)
> {
> gotoxy(i,1);
> printf("%c",177);
>
> gotoxy(i,24);
> printf("%c",177);
> }
> for (d=2; d<24; d++)
> {
> gotoxy(1,d);
> printf("%c",177);
>
> gotoxy(80,d);
> printf("%c",177);
> }
>
> gotoxy(1,1);
> printf("%c",02);
> gotoxy(80,1);
> printf("%c",02);
> gotoxy(1,24);
> printf("%c",01);
> gotoxy(80,24);
> printf("%c",01);
> gotoxy(2,2);
> centraTexto(3,"MANTENIMIENTOS CONTROL DE PRESTAMOS");
> centraTexto(4,"PROYECTO DE ESTUDIANTES DE 3 CICLO");
> centraTexto(5,"UNIVERSIDAD MARIANO GALVEZ");
> MostrarFecha();
> gotoxy(20,12);
> puts("1. Mantenimiento de usuarios.");
> gotoxy(20,13);
> puts("2. Mantenimiento de Libros.");
> gotoxy(20,14);
> puts("3. Prestamos.");
> gotoxy(20,15);
> puts("4. Devolucion.");
> gotoxy(20,16);
> puts("5. Salir.");
> }
>
>
> void menu()
> { clrscr();
> gotoxy(2,2);
> centraTexto(3,"BIENVENIDOS A CONTROL DE PRESTAMOS");
> centraTexto(4,"PROYECTO DE ESTUDIANTES DE TERCER CICLO");
> centraTexto(5,"UNIVERSIDAD MARIANO GALVEZ");
> textcolor(LIGHTGREEN);
> gotoxy(20,12); cprintf(" MENU PRINCIPAL");
> normvideo();
> gotoxy(20,13); printf(" 1. MANTENIMIENTO DE USUARIOS.");
> gotoxy(20,14); printf(" 2. MANTENIMIENTO DE LIBROS.");
> gotoxy(20,15); printf(" 3. PRESTAMOS Y DEVOLUCIONES.");
> textcolor(LIGHTRED);
> gotoxy(20,18); cprintf(" 0. SALIR");
> normvideo();
> }
>
>
> void menu_usr()
> { //clrscr();
> system("cls");
> gotoxy(2,2);
> centraTexto(3,"BIENVENIDOS A CONTROL DE PRESTAMOS");
> centraTexto(4,"PROYECTO DE ESTUDIANTES DE TERCER CICLO");
> centraTexto(5,"UNIVERSIDAD MARIANO GALVEZ");
> textcolor(LIGHTGREEN);
> gotoxy(20,12); cprintf(" MENU MANTENIMIENTO DE USUARIOS");
> normvideo();
> gotoxy(20,13); printf(" 1. INGRESAR NUEVO USUARIO");
> gotoxy(20,14); printf(" 2. BUSCAR USUARIO");
> gotoxy(20,15); printf(" 3. REPORTE USUARIOS REGISTRADOS");
> textcolor(LIGHTRED);
> gotoxy(20,18); cprintf(" 0. Regresar al menu principal...");
> normvideo();
> }
>
> void menu_libro()
> { //clrscr();
> system("cls");
> gotoxy(2,2);
> centraTexto(3,"BIENVENIDOS A CONTROL DE PRESTAMOS");
> centraTexto(4,"PROYECTO DE ESTUDIANTES DE TERCER CICLO");
> centraTexto(5,"UNIVERSIDAD MARIANO GALVEZ");
> textcolor(LIGHTGREEN);
> gotoxy(20,12); cprintf(" MENU MANTENIMIENTO DE LIBROS:");
> normvideo();
> gotoxy(20,13); printf(" 1. INGRESAR NUEVO LIBRO");
> gotoxy(20,14); printf(" 2. BUSCAR LIBRO");
> gotoxy(20,15); printf(" 3. MODIFICAR LIBRO");
> gotoxy(20,16); printf(" 4. ELIMINAR LIBRO");
> gotoxy(20,17); printf(" 5. REPORTE DE LIBROS REGISTRADOS");
> textcolor(LIGHTRED);
> gotoxy(20,18); cprintf(" 0. REGRESO AL MENU PRINCIPAL...");
> normvideo();
> }
>
> void menu_prestamo()
> { //clrscr();
> system("cls");
> gotoxy(2,2);
> centraTexto(3,"BIENVENIDOS A CONTROL DE PRESTAMOS");
> centraTexto(4,"PROYECTO DE ESTUDIANTES DE TERCER CICLO");
> centraTexto(5,"UNIVERSIDAD MARIANO GALVEZ");
> textcolor(LIGHTGREEN);
> gotoxy(20,12); cprintf(" MENU PRESTAMO DEVOLUCION LIBROS");
> normvideo();
> gotoxy(20,13); printf(" 1. REGISTRO DE PRESTAMO");
> gotoxy(20,14); printf(" 2. BUSCAR PRESTAMO POR MEDIO DE CODIGO DE LIBRO");
> gotoxy(20,15); printf(" 3. BUSCAR PRESTAMO POR MEDIO DE DPI");
> gotoxy(20,16); printf(" 4. REPORTE DE PRESTAMOS VIGENTES");
> gotoxy(20,17); printf(" 5. DEVOLUCION DE LIBRO");
> textcolor(LIGHTRED);
> gotoxy(20,18); cprintf(" 0. REGRESAR AL MENU PRINCIPAL...");
> normvideo();
> }
>
>
>
> void main ()
> {
> FILE *fp;
> int opcion,opcion_usr,opcion_libro,opcion_prestamo;
> int exit = 0;
> int exitusr = 0;
> int exitlibro = 0;
> int exitprestamo = 0;
> LeerContrasenia();
> loading(10);
> AltEnter();
>
> fp = abrir_fichero_b(nombre_fichero_libro,0);
> if( fp )
> {
> fclose(fp);
> }
> else
> {
> textcolor(LIGHTGREEN);
> cprintf( "Inicializando Archivo 1...\n" );
> cprintf("Presiona cualquier tecla para continuar.... y Crear el Archivo");
> normvideo();
> fp = abrir_fichero_b(nombre_fichero_libro,1);
> fclose(fp);
> getch(); }
>
> fp = abrir_fichero_b(nombre_fichero,0);
> if( fp )
> {
> fclose(fp);
> }
> else
> { textcolor(LIGHTGREEN);
> cprintf( "Inicializando Archivo 2...\n" );
> cprintf("Presiona cualquier tecla para continuar.... y Crear el Archivo");
> normvideo();
> fp = abrir_fichero_b(nombre_fichero,1);
> fclose(fp);
> getch(); }
>
> fp = abrir_fichero_b(nombre_fichero_prestamo,0);
> if( fp )
> {
> fclose(fp);
> }
> else
> {
> textcolor(LIGHTGREEN);
> cprintf( "Inicializando Archivo 3...\n" );
> cprintf("Presiona cualquier tecla para continuar.... y Crear el Archivo");
> normvideo();
> fp = abrir_fichero_b(nombre_fichero_prestamo,1);
> fclose(fp);
> getch(); }
>
>
>
>
>
> while (!exit)
> { menu();
> MostrarFecha();
> gotoxy(25,19);printf("Opcion: ");
> scanf("%d", &opcion);
> switch(opcion)
> { case 1: //opcion que muestra el menu de mantenimiento de usuarios.
> while (!exitusr)
> { menu_usr();
> MostrarFecha();
> gotoxy(25,19);printf("Opcion: ");
> scanf("%d", &opcion_usr);
> switch(opcion_usr)
> { case 1: //ingresar usuario nuevo con dpi
> system("cls");
> gotoxy(2,2);
> AgregarUsuario();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 2: // buscar usuario a traves del dpi
> system("cls");
> gotoxy(2,2);
> EncontrarUsuario();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 3: // reporte de usuarios ingresados
> system("cls");
> gotoxy(2,2);
> ListarUsuarios();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 4: //
> break;
> case 5: //
> break;
> case 0: exitusr = 1; break;
> default: system("cls"); gotoxy(25,20); printf("Opcion no valida"); getch();
> }
> }
> exitusr = 0;
> break;
> case 2: //opcion que muestra el menu de mantenimiento de libros.
> while (!exitlibro)
> { menu_libro();
> MostrarFecha();
> gotoxy(25,19);printf("Opcion: ");
> scanf("%d", &opcion_libro);
> switch(opcion_libro)
> { case 1: //ingresar usuario nuevo con dpi
> system("cls");
> gotoxy(2,2);
> AgregarLibro();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 2: // buscar libro a traves del barcode
> system("cls");
> gotoxy(2,2);
> Encontrarlibro();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 3: // modificar los datos de un libro
> system("cls");
> gotoxy(2,2);
> ModificarLibro();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 4: // eliminar logicamente un libro
> system("cls");
> gotoxy(2,2);
> Borrarlibro();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 5: // listar los libros registrados
> system("cls");
> gotoxy(2,2);
> ListarLibro();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
>
> break;
> case 0: exitlibro = 1; break;
> default: system("cls"); gotoxy(25,20); printf("Opcion no valida"); getch();
> }
> }
> exitlibro = 0;
> break;
> case 3: //opcion que muestra el menu de prestamo de libros.
> while (!exitprestamo)
> { menu_prestamo();
> MostrarFecha();
> gotoxy(25,19);printf("Opcion: ");
> scanf("%d", &opcion_prestamo);
> switch(opcion_prestamo)
> { case 1: //ingresar nuevo prestamo de libro con dpi
> system("cls");
> gotoxy(2,2);
> AgregarUnPrestamo();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 2: // buscar libro a traves del barcode
> system("cls");
> gotoxy(2,2);
> EncontrarPrestamoXcodigoDeLibro();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 3: // buscar prestamo por medio de DPI
> system("cls");
> gotoxy(2,2);
> EncontrarPrestamoXdpi();
> puts("\n\nPresiona Cualquier Tecla para Regresar al Menu");
> getch();
> break;
> case 4: // reporte de prestamos
> system("cls");
> gotoxy(2,2);
> ListarPrestamos();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
> case 5: // devoluciones de libros
> system("cls");
> gotoxy(2,2);
> RegistrarDevolucion();
> textcolor(LIGHTGREEN);
> cprintf("\n\n Presiona Cualquier Tecla para Regresar al Menu ...");
> normvideo();
> getch();
> break;
>
> case 0: exitprestamo = 1; break;
> default: system("cls"); gotoxy(25,20); printf("Opcion no valida"); getch();
> }
> }
> exitprestamo = 0;
> break;
> case 0: exit = 1; break;
> default: system("cls"); gotoxy(25,20); printf("Opcion no valida"); getch();
> }// fin del switch
> }// fin del while
>
>
> }
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
Más información sobre la lista de distribución Cconclase