• Lunes 29 de Abril de 2024, 02:19

Autor Tema:  Alguien Me Puede Ayudar A Modificar Esto!!!!  (Leído 1443 veces)

ferbal

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Alguien Me Puede Ayudar A Modificar Esto!!!!
« en: Jueves 14 de Junio de 2007, 21:43 »
0
Hola....alguien me puede ayudar a modificar esto. para un control de libros.

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

typedef struct {
   char nom[25];
   int edad;
   char tel[15];
   char dir[35];
}Amigo;

/*Funciones de Archivo*/
void Crear(void);
void Listar(void);
void Agregar(void);
void Modificar(void);
void Borrar(void);
void Encontrar(void);

/*Nombre del Archivo a guardar*/
char nombre_fichero[] = "agenda.dat";

FILE *abrir_fichero_b(char cadena[], int metodo);

void main(){
   FILE *fp;
   int opc;
   char cad[3];
   
   fp = abrir_fichero_b(nombre_fichero,0);
   if( fp ){
      fclose(fp);
   }
   else
   {
      printf( "Error (NO ABIERTO)\n" );
      puts("Presiona cualquier tecla para continuar.... y Crear el Archivo");
      fp = abrir_fichero_b(nombre_fichero,1);
      fclose(fp);
      getch();
   }
   
   do{
      clrscr();
      puts("1. Crear Archivo (Cuidado, elimina lo que ya se tiene en el Archivo)");
      puts("2. Agregar\n3. Eliminar\n4. Listar\n5. Buscar\n6. Modificar\n7. Salir");
      puts("?Introduce tu opcion y depues enter.");
      
      opc = atoi(gets(cad));
      while(opc<0 || opc>7) /*Limitando la entrada de las opciones*/   
         opc = atoi(gets(cad));
      clrscr();   
      switch(opc)
      {
      case 1:
            Crear();
            break;
      case 2:   
            Agregar();
            break;
      case 3:
            Borrar();
            break;
      case 4:
            Listar();
            break;
      case 5:
            Encontrar();
            break;
      case 6:
             Modificar();
            break;
         
      }
      
      /*Solo parar cuando sea una de las opciones*/
      if(opc<7){
         puts("\n\nPresiona Cualquier Tecla para Regresar al Menu");
         getch();
      }
   
   
   }while(opc!=7);
   
}



// FUNCION PARA CREAR UN ARCHIVO
/*****************************************************************
Funcion que sirve para borrar todo el Contenido del Archivo Binario*/
void Crear(void){
   FILE *fp;

   fp = abrir_fichero_b(nombre_fichero,0);
   if(fp)
   {
      printf("\n Error de apuertura del archivo agenda.dat\n");
        fclose(fp);  
   }
}


/********************************************************
Funcion que sirve para imprimir todos los  un registros del Archivo Binario*/
void Listar(void){
   FILE *fp;
   int i=1;
   Amigo aux;
   fp = abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      printf("\n U S U A R I O S  E N  L A  A G E N D A\n");
      printf("---------------------------------------------------------------\n");
      while ((fread(&aux, sizeof(aux), 1, fp))!=0){
      printf("=> Datos del Amigo %d\n",i);
      printf("Nombre: %s | Edad: %d | Telefono: %s\n",aux.nom,aux.edad,aux.tel);
      printf("Direccion: %s\n",aux.dir);
      i++;
      }
      printf("---------------------------------------------------------------\n");
      fclose(fp);
   }
}

/********************************************************
Funcion que sirve para agregar un registro dentro del Archivo Binario*/
void Agregar(void){
   FILE *fp;
   Amigo aux;
   char cad[3];

   printf("\n Agregando un Amigo Nuevo al archivo binario agenda.dat\n");
   fp=abrir_fichero_b(nombre_fichero,2);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      /*Introduciendo los Datos del Amigo*/
      printf("Dame el nombre del Amigo: ");
      gets(aux.nom);
      printf("Dame la Edad del Amigo: ");
      aux.edad=atoi(gets(cad));
      printf("Dame el telefono del Amigo: ");
      gets(aux.tel);
      printf("Dame la direccion del Amigo: ");
      gets(aux.dir);

      fwrite(&aux, sizeof(aux), 1, fp);
      fclose(fp);
   }
}


/********************************************************
Funcion que sirve para Modificar un registro dentro del Archivo Binario*/
void Modificar(void){
   FILE *fp;
   Amigo   aux;
   int n;
   char cadena[25],cad[2];
   fp=abrir_fichero_b(nombre_fichero,3);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      printf("Como se llama al amigo que quieres Modificar: ");
      gets(cadena);
      
      /*Buscando el Amigo dentro del Archivo*/
      while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.nom,cadena)!=0);
      if (n==0)
         printf("No existe el cuate llamado: %s ",cadena);
      else{
         printf("\n Amigo encontrado....!!!\n");
         printf("Nombre: %s ",aux.nom);
         printf("Edad: %d ",aux.edad);
         printf("Telefono %s ",aux.tel);
         printf("Direccion: %s\n",aux.dir);
      
         printf("\n CAMBIANDO VALORES \n");
      
        printf("Dame el nombre nuevo del Amigo: ");
      gets(aux.nom);
      printf("Dame la nueva Edad del Amigo: ");
      aux.edad=atoi(gets(cad));
      printf("Dame el nuevo telefono del Amigo: ");
      gets(aux.tel);
      printf("Dame la nueva direccion del Amigo: ");
      gets(aux.dir);
         
      

         printf("\n GRABANDO Y CERRANDO ARCHIVO \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 Borrar(void){
   FILE *fp,*fd;
   Amigo   aux;
   int encontrado=0;
   char cadena[25];
   
   printf("Introduce el nombre del Amigo a borrar: ");
   gets(cadena);
   
   printf("\n BORRANDO REGISTROS  \n");
   fp=abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      fd=abrir_fichero_b("paso.$$$",1);
      if(!(fd))
         printf("\n Error Imposible crear archivo auxiliar\n");
      else{
         while ((fread(&aux, sizeof(aux), 1, fp))!=0)
            if(stricmp(aux.nom,cadena)!=0)
              fwrite(&aux, sizeof(aux), 1, fd);
            else
              encontrado=1;
         fclose(fd);
      }
      fclose(fp);
      if(encontrado){
         system("del agenda.dat");
         system("ren paso.$$$ agenda.dat");
         printf("\n Registro BORRADO con Exito!!!\n");
      }
      else{
         system("del paso.$$$");
         printf("\n El Registro NO SE ENCONTRO, no fue borrado!!!");
      }
   }
}

/******************************************
Funcion para Encontrar un Amigo e imprimir sus datos*/
void Encontrar(void){
   FILE *fp;
   Amigo   aux;
   int n;
   char cadena[25];

   printf("Introduce el nomrbre del Amigo que buscas: ");
   gets(cadena);

   printf("\n Buscando a un Amigo  \n");
   fp=abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apuertura del archivo agenda.dat\n");
   else{
      while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.nom,cadena)!=0);
      if (n==0)
         printf("No existe el cuate llamado: %s ",cadena);
      else{
         printf("\n Amigo encontrado....!!!\n");
       printf("Nombre: %s | Edad: %d | Telefono: %s\n",aux.nom,aux.edad,aux.tel);
       printf("Direccion: %s\n",aux.dir);
      
      /* getch();*/
      
      }
   }


}

/*************************************************
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 - Anhadir 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;
}


=========================================================================

#include "stdlib.h"
#include "conio.h"
#include "stdio.h"
#include "string.h"

void Agregar()

{

char libro [100];
char autor [100];
char lugar [100];
char dir [100];
int num;
int cod;
int opc;

   clrscr();

   while(opc!=0)

{


   printf("\n\n\t\t\tIngrese el Codigo del libro:      ");
   scanf("%d", &cod);

   printf("\n\n\n\t\t\tIngrese el nombre del libro:   ");
   scanf("%s", &libro);

   printf("\n\n\n\t\t\tIngrese el autor del libro:    ");
   scanf("%s", &autor);

   printf("\n\n\n\t\t\tIngrese el año de edicion: ");
   scanf("%d", &num);

   printf("\n\n\n\t\t\tIngrese el lugar: ");
   scanf("%s", &lugar);

   printf("\n\n\n\t\t\tIngrese la direccion: ");
   scanf("%s", &dir);

   printf("Desea ingresar otro 1 si 0 o no:");
   scanf("%d", &opc);

   clrscr();

}
   getch();


}


void Modificar()

{                                                                                                  

int cod;

   clrscr();

   printf("\n\n\t\tIngres el codigo del libro que desea modificar: ");
   scanf("%d", &cod);

   printf("\n\n\t\tEsta seguro que desea modificar la informacion de libro: ");

   getch();


}

void Eliminar()

{

int cod;

   clrscr();

   printf("\n\n\t\tIngres el codigo del libro que desea eliminar: ");
   scanf("%d", &cod);

   printf("\n\n\t\tEsta seguro que desea eliminar el libro: ");

   getch();


}

void Consultar()

{

int cod;

   clrscr();

   printf("\n\n\t\tIngres el codigo del libro que desea Consultar: ");
   scanf("%d", &cod);

   getch();


}


void Imprimir()

{

int cod;

   clrscr();

   printf("\n\n\t Ingres el codigo del libro que desea desea Imprimir: ");
   scanf("%d", &cod);

   getch();


}


void Integrantes()

{
   clrscr();



   printf("\n\n\n\n\n                        *************************************** ");
   printf("                                        *       INTEGRANTES DEL GRUPO 5       *   ");
   printf("                                      *                                     *   ");
   printf("                                      *                                     *   ");
   printf("                                      *  Fernando Rafael Baldizon Estrada.  *   ");
   printf("                                      *                                     *   ");
   printf("\n                        *  No. de Carne: 1690-06-10030.       *   ");
   printf("                                      *                                     *   ");
   printf("                                      *                                     *   ");
   printf("                                      *  Oscarito Israel Batun Espinoza.    * ");
   printf("                                        *                                     *   ");
   printf("\n                        *  No. de Carne: 1690-06-10035.       *");
   printf("                                         *                                     *   ");
   printf("\n                        *************************************** ");
   getch();


}



void main()

{

int opcion=0;
while (opcion!=7)

   {
   clrscr();
   printf("                   ********************************************* ");
   printf("\n                   *                BIENVENIDOS                *    ");
   printf("                               *                                           * ");
   printf("\n                   *        UNIVERSIDAD MARIANO GALVEZ         * ");
   printf("                                  *                                           * ");
   printf("\n                   *     CONTROL DE LIBRO EN UNA EDITORIAL     *");
   printf("                                   ********************************************* ");
   printf("\n\n                                       MENU    ");
   printf("\n\n                        Agregar      [1] ");
   printf( "\n\n                        Modificar    [2] ");
   printf( "\n\n                        Eliminar     [3] ");
   printf( "\n\n                        Consultar    [4] ");
   printf( "\n\n                        Imprimir     [5] ");
   printf( "\n\n                        Integrantes  [6] ");
   printf( "\n\n                        Salir        [7] ");
   printf("\n\n                        Seleccione una Opcion: ");
   scanf("%d",&opcion);

   switch(opcion)
   {

   case 1:
      Agregar();
            break;
   case 2:
        Modificar();
            break;
   case 3:
        Eliminar();
             break;
   case 4:
        Consultar();
             break;
   case 5:
        Imprimir();
             break;
   case 6:
        Integrantes();
             break;
   //case 7:
      //Salir();
             //   break;
    }

   getch();

   }

}