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