• Miércoles 20 de Noviembre de 2024, 18:27

Autor Tema:  Ayuda En C++  (Leído 1783 veces)

ferbal

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Ayuda En C++
« en: Jueves 21 de Junio de 2007, 17:24 »
0
Hola solo quiero saber si me pueden ayudar a colocarle la hora y la fecha a un programa, yo quiero colocarselo en el menu.

Este es el programa que consegui!!!!

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

typedef struct {
   char nom[100];
   char autor[100];
   char editorial[100];
   char ciudad[100];
}Amigo;

/*Funciones de Archivo*/
void Lista(void);
void Agregar(void);
void Modificar(void);
void Borrar(void);
void Encontrar(void);
void Integrantes (void);

/*Nombre d el Archivo a guardar*/
char nombre_fichero[] = "libros.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);
   }
   do{
      clrscr();
      puts("  UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA   ");
      puts("  FACULTAD DE INGENIERIA EN SISTEMAS ");
      puts("  \n                       CONTROL DE LIBROS EN UNA EDITORIAL ");
      puts(" ----------------------------------------------------------------------------- ");
      puts("\n                      MENU:\n\n");
      puts("                       1. Agregar\n");
      puts("                       2. Eliminar\n");
      puts("                       3. Lista\n");
      puts("                       4. Buscar\n");
      puts("                       5. Modificar\n");
      puts("                       6. Integrantes\n");
      puts("                       7. Salir");
      puts("\n                     Seleccione una opcion:   ");

      opc = atoi(gets(cad));
      while(opc<0 || opc>7) /*Limitando la entrada de las opciones*/
         opc = atoi(gets(cad));
      clrscr();
      switch(opc)
      {
      case 1:
            Agregar();
            break;
      case 2:
            Borrar();
            break;
      case 3:
            Lista();
            break;
      case 4:
            Encontrar();
            break;
      case 5:
             Modificar();
            break;
      case 6:
             Integrantes();
             break;
      //case 7:
            //Salir();
            //break;

      }

      /*Solo parar cuando sea una de las opciones*/
      if(opc<7){
         puts("\n\n                  Presiona Cualquier Tecla para Regresar al Menu");
         getch();
      }


   }while(opc!=7);

}

/********************************************************
Funcion que sirve para imprimir todos los  un registros del Archivo Binario*/
void Lista(void){
   FILE *fp;
   int i=1;
   Amigo aux;
   fp = abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apuertura del archivo libros.dat\n");
   else{
      printf("\n                      L I S T A    D E    L O S   L I B R O S \n");
      printf("--------------------------------------------------------------------------------\n");
      while ((fread(&aux, sizeof(aux), 1, fp))!=0){

      printf("\n\n=> Datos del libro: %d",i);
      printf("\nNombre del libro: %s", aux.nom );
      printf("\nAutor: %s", aux.autor);
      printf("\nEditorial: %s", aux.editorial );
      printf("\nCiudad: %s",aux.ciudad);
      i++;
      }

      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 LIBRO.\n");
   printf("--------------------------------------------------------------------------------");
   fp=abrir_fichero_b(nombre_fichero,2);
   if(!(fp))
      printf("\n Error de apuertura del archivo libros.dat\n");
   else{
      /*Introduciendo los Datos del Amigo*/
      printf("\n\nDame el nombre del libro: ");
      gets(aux.nom);
      printf("\n\nDame el autor del libro: ");
      gets(aux.autor);
      printf("\n\nDame la editorial del libro: ");
      gets(aux.editorial);
      printf("\n\nDame la ciudad: ");
      gets(aux.ciudad);

      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 apertura del archivo libros.dat\n");
   else{
      printf("Como se llama el libro a modificar: ");
      gets(cadena);

      /*Buscando el libro dentro del Archivo*/
      while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.nom,cadena)!=0);
      if (n==0)
         printf("No existe el libro llamado: %s ",cadena);
      else{
         printf("\n Libro encontrado....!!!\n");
         printf("\nNombre: %s ",aux.nom);
         printf("\nAutor: %s ",aux.autor);
         printf("\nEditorial: %s ",aux.editorial);
         printf("\nCiudad: %s\n",aux.ciudad);

         printf("\n CAMBIANDO VALORES \n");

        printf("Ingrese de nuevo el nombre del libro: ");
      gets(aux.nom);
      printf("Ingrese de nuevo el autor del libro: ");
      gets(aux.autor);
      printf("Ingrese de nuevo la editorial del libro: ");
      gets(aux.editorial);
      printf("Ingrese de nuevo la ciudad: ");
      gets(aux.ciudad);



         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 libro a borrar: ");
   gets(cadena);

   printf("\n BORRANDO REGISTROS  \n");
   fp=abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apertura del archivo libros.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 libros.dat");
         system("ren paso.$$$ libros.dat");
         printf("\n Registro BORRADO con Exito!!!\n");
      }
      else{
         system("del paso.$$$");
         printf("\n El Registro NO SE ENCONTRO, no fue borrado!!!");
      }
   }
}
void Integrantes(void)

{
   clrscr();
   printf(" UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA ");
   printf("\n FACULTAD DE INGENIERIA EN SISTEMAS ");
   printf("\n-------------------------------------------------------------------------------- ");
   printf("\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();


}

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

   printf("Introduce el nombre del libro que buscas: ");
   gets(cadena);

   printf("\n Buscando el libro.....  \n");
   fp=abrir_fichero_b(nombre_fichero,0);
   if(!(fp))
      printf("\n Error de apertura del archivo libros.dat\n");
   else{
      while ((n=fread(&aux, sizeof(aux), 1, fp))!=0 && stricmp(aux.nom,cadena)!=0);
      if (n==0)
         printf("No existe el libro llamado: %s ",cadena);
      else{
         printf("\n Libro encontrado....!!!\n");
         printf("\nNombre: %s", aux.nom);
         printf("\nAutor: %s ", aux.autor);
         printf("\nEditorial: %s ", aux.editorial);
         printf("\nCiudad: %s",aux.ciudad);

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

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Ayuda En C++
« Respuesta #1 en: Jueves 21 de Junio de 2007, 18:51 »
0
puedes checar estos links

Fecha y hora C++

Fecha y hora

Todo lo demas es cuestión de lógica común...
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.