Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Últimos temas
» Programa de Archivo
Mar Dic 20, 2011 12:34 am por Jesus Alexander Pereira

» ¿Que esta pasando con la tecnologia en Venezuela?
Jue Dic 01, 2011 8:18 pm por eivanphils

» [IO3-031] [IPSII] [RESUMEN IV]
Jue Nov 17, 2011 7:44 am por Jesus Miguel Vasquez

» [I03-031][ISPII: RESUMEN 4]
Miér Nov 16, 2011 7:14 pm por carlosmrtnz

» [I03-031][ISPII:Resumen 4]
Miér Nov 16, 2011 6:24 pm por Jesus Alexander Pereira

» Adelanto numero 1
Lun Nov 14, 2011 11:19 am por Jesus Miguel Vasquez

» Estructura del Arreglo
Lun Oct 31, 2011 9:07 am por Jesus Miguel Vasquez

» Menu Ejemplo
Lun Oct 31, 2011 8:56 am por Jesus Miguel Vasquez

» [I03-031] [IPSII:RESUMEN3]
Miér Oct 26, 2011 10:18 pm por carlosmrtnz

Diciembre 2017
LunMarMiérJueVieSábDom
    123
45678910
11121314151617
18192021222324
25262728293031

Calendario Calendario

Compañeros
Crear foro
¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

[ Ver toda la lista ]


La mayor cantidad de usuarios en línea fue 9 el Lun Feb 15, 2016 2:35 pm.

Programa de Archivo

Ver el tema anterior Ver el tema siguiente Ir abajo

Programa de Archivo

Mensaje  Jesus Alexander Pereira el Mar Dic 20, 2011 12:34 am

Enunciado:
Elaborar un programa para una biblioteca que muestre la información de los libros donde los datos del libro a almacenar sean:
-Nombre del libro
-Autor
-Fecha de publicacion

Almacenada la información. Crear otra opción de búsqueda donde se muestre en pantalla los datos de los libros.

Integrantes:
David Peralta

Carlos Martínez

Jesús Pereira

Ivan Manrique

Norman Castro

Wendy Sebrihant

Kerlly Subero


Código:

#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <ctype.h>

void menu();
void CrearFichero(FILE *Fichero);
void InsertarDatos(FILE *Fichero);
void VerDatos(FILE *Fichero);
void leer_caracter(const char mensa[80], int longitud, char* variable, int tipo);
   
struct sRegistro {
    char autor[25];
    char titulo[25];
    int fecha;
} registro;

void lpantalla(){
    system ("color 3f");
    system ("cls");
}
int main(){
    int opcion;
    int exit = 0;
    FILE *fichero;
   
    while (!exit)
    {
        system("color 3f");
        menu();
        printf("\nOpcion: ");
        scanf("%d", &opcion);
       
        switch(opcion)
        {
        case 1:
            CrearFichero(fichero);
            break;
        case 2:
            InsertarDatos(fichero);
            break;
        case 3:
            VerDatos(fichero);
            break;
        case 4:
            exit = 1;
            break;
        default:
            printf("\nopcion no valida");
        }
    }
   
    return 0;
}

void menu()
{    lpantalla();
    printf("\nMenu:");
    printf("\n\t1. Crear fichero");
    printf("\n\t2. Insertar datos");
    printf("\n\t3. Ver datos");
    printf("\n\t4. Salir");
}

void CrearFichero(FILE *Fichero){
    lpantalla();
    Fichero = fopen("fichero.dat", "r");
   
    if(!Fichero)
    {
        Fichero = fopen("fichero.dat", "w");
        printf("\nArchivo creado!");
    }
    else
        {
            printf("\nEl fichero ya existe!");
        }
    printf("\nPresione cualquier tecla para continuar");
    getch();
    fclose (Fichero);
   
    return;
}

void InsertarDatos(FILE *Fichero){
    lpantalla();
    Fichero = fopen("fichero.dat", "a");
   
    if(Fichero == NULL)    {
        printf("\nFichero no existe! \nPor favor creelo");
        return;
    }
   
    leer_caracter("\nDigita el Autor: ",25,registro.autor,2);
   
    leer_caracter("\nDigita el titulo: ",25, registro.titulo,4);
   
    printf("\nDigita la fecha: ");
    scanf("%d", ®istro.fecha);
   
    fwrite(®istro, sizeof(struct sRegistro), 1, Fichero);
   
    fclose(Fichero);
   
    return;
}

void VerDatos(FILE *Fichero){
    lpantalla();
    int numero = 0;
   
    Fichero = fopen("fichero.dat", "r");
   
    if(Fichero == NULL)
    {
        printf("\nFichero no existe! \nPor favor creelo");
        return;
    }
   
    fread(®istro, sizeof(struct sRegistro), 1, Fichero);
   
    printf("\nNumero Autor                    Titulo                    Fecha");
    printf("\n------ ------------------------- ------------------------  -----");
   
    while(!feof(Fichero))
    {
        printf("\n  %3d  %25s%25s  %4d", numero+1, registro.autor,
            registro.titulo, registro.fecha);
        fread(®istro, sizeof(struct sRegistro), 1, Fichero);
        numero++;
    }
    getch();
    fclose(Fichero);
   
    return;
}
/*********************************************
***  Procedimiento de lectura de caracteres
***  parametros:
***  1) mensa: este parametro es una cadena de caracteres
***            que se mostrara como un mensaje antes de la
***            lectura de la cadena de caractes
*** 
***  2) longitud: este parametro es un numero entero que
***                representa la longitud maxima de la cadena
***
***  3) variable: esta es un puntero de tipo caracter que
***                recibe el la cedena de caracteres
***                (en C y C++ los arreglos siempre pasan
***                como punteros cuando se invocan procedimientos
***                o funciones)
***  4) tipo: parametro entero define la lectura valida cuando es:
***            1 acepta solo alfabeticos
***            2 acepta alfabeticos + espacio
***            3 acepta alfanumericos + espacio
***            4 acepta alfanumericos + simbolos + espacio
***/
void leer_caracter(const char mensa[80], int longitud, char* variable, int tipo){
    int j=0;
    int h;
    printf("%s",mensa);
    while((h = getch()) != 13 && j<longitud-1){
        switch (tipo){
        case 1:
            if(isalpha(h)){
                variable[j++] = h;
                printf("%c",h);
            }
            break;
        case 2:
            if(isalpha(h)||(h==32)){
                variable[j++] = h;
                printf("%c",h);
            }
            break;
        case 3:
            if(isalnum(h)||(h==32)){
                variable[j++] = h;
                printf("%c",h);
            }
            break;
        case 4:
            if(isalnum(h)||ispunct(h)||(h==32)){
                variable[j++] = h;
                printf("%c",h);
            }
            break;
        }
        /*  cuando se teclea backspace  */
        if((h==8)&&(j>0)){
            j--;
            printf("%c %c",h,h);
        }
    }
    variable[j]='\0';
}

Jesus Alexander Pereira

Mensajes : 3
Fecha de inscripción : 01/07/2011

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.