Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:
Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro

SOLO PARA TIGRES......

Preguntas y respuestas sobre el lenguaje de programacion C/C++

SOLO PARA TIGRES......

Notapor lerm el Mié Mar 23, 2005 9:55 pm

ESTE PROGRAMA EN C SIRVE PARA CREAR UN REGISTRO DE CONTROL DE ALUMNOS DE UNA UNIVERSIDAD DE MEXICO


Código: Seleccionar todo
#include <stdlib.h>
#include <ctype.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
   void altas();
   void muestra();
   FILE *fich;
    struct ficha{
    int boleta;
   char nombre [25];
    char direccion [40];
    char grupo[20];
    }  cliente;
    void main()
    {
    textcolor(2);
         char opcion;
    if((fich=fopen("tele.txt","a+b"))==NULL)
    {
    printf("ERROR al crear fichero");
    exit(0);
    }
    do
    {
clrscr();
    gotoxy(20,1);
    textbackground(0);
    gotoxy(24,2);
    printf(" UNIVERSIDAD TECNOLOGICA DE NEZAHUALCOYOLT");
    gotoxy(31,5);
    printf(" DIVISION TELEMATICA");
    gotoxy(30,10);
    textcolor(22222222);
    cprintf("CONTROL DE ALUMNOS");
    textcolor(12);
    gotoxy(34,15);
    printf("ALTAS \n ");
    gotoxy(34,16);
    printf("CONSULTA \n");
    gotoxy(34,17);
    textcolor(2);
    printf("SALIR \n\n");
    textcolor(2);
    gotoxy(10,32);
    //cprintf("Para dar de alta a un alumno repita la operacion dos
veces");
    gotoxy(30,20);
    cprintf(" Elegir opcion:");
    scanf("%c",&opcion);
    fflush(stdin);
    switch(toupper(opcion))
    {
      case 'A':
       altas();

       break;
      case 'C':
          muestra();
          break;
      }
      }
    while (toupper(opcion)!='S');
    fclose(fich);
    }
    void altas()
    {
    clrscr();
    printf("\t\t\t Escriba sus datos correctamente:\n\n");
    printf("escriba su numero de boleta: \n");

    scanf("%d",&cliente.boleta);
    fflush(stdin);
    printf("Nombre: ");
    gets(cliente.nombre);
    fflush(stdin);
    printf("Direccion: ");
    gets(cliente.direccion);
    fflush(stdin);

    printf("Grupo: ");
    gets(cliente.grupo);
    fflush(stdin);
    fwrite(&cliente,sizeof(cliente),1,fich);
    gotoxy(1,11);
    printf("Seleccione la tecla enter para continuar:");
    getch();
    }
    void muestra()
    {
    int cod_temp;
    clrscr();
    rewind(fich);
    printf("\t\t\tBoleta a mostrar:");
    scanf("%d",&cod_temp);
    while (!feof(fich))
    {
    fread(&cliente,sizeof(cliente),1,fich);
    if (cod_temp==cliente.boleta)
    {
    printf("\n\n Boleta:%d\n",cliente.boleta);
    printf("\n Nombre:%s \n",cliente.nombre);
    printf("\n Direccion:%s\n",cliente.direccion);
    printf("\n\n Grupo:%s\n",cliente.grupo);
    gotoxy(1,17);
    printf("Selecione cualquier tecla para continuar");
    getch();
    break;
    }
    }
}


LA PREGUNTA ES:

ESTE PROGRAMA TIENE UN ERROR YA QUE SOLO VISUALIZA 5 REGISTROS COMO MAXIMO EN LA PARTE DE CONSULTA.

¿QUE MODIFICACION HARIAS PARA QUE EL PROGRAMA PUEDA CONSULTAR TODOS LOS REGISTROS QUE SE GENEREN?
lerm
Novato
Novato
 
Mensajes: 2
Registrado: Mié Mar 23, 2005 9:31 pm

Re: SOLO PARA TIGRES......

Notapor latindeveloper el Jue Mar 24, 2005 10:04 am

A simple vista el programa visualiza solo un registro en la seccion de consulta.

Solo muestra el registro que coincida con numero de boleta que se digite.

No hay un procedimiento que muestre una lista de todas las entradas.
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Re: SOLO PARA TIGRES......

Notapor lerm el Jue Mar 24, 2005 5:14 pm

navisoft escribió:A simple vista el programa visualiza solo un registro en la seccion de consulta.

Solo muestra el registro que coincida con numero de boleta que se digite.

No hay un procedimiento que muestre una lista de todas las entradas.


ES CORRECTA TU RESOUESTA, SOLO QUE A MEDIAS. EL PROGRAMA NO FUE HECHO PARA DESPLEGAR TODO UN LISTADO DE REGISTROS, SINO QUE ESTOS SON VISUALIZADOS UNO POR UNO, SOLO QUE CUANDO LLEGAS A CAPTURAR MAS DE CUATRO REGISTROS Y QUIERES VISUALIZARLOS DE MANERA INVIVIDUAL, ESTOS YA NO SE MUESTRAN, ... ¿QUE MODIFICACION SE LE HARIA PARA QUE ESTO NO OCURRA?
lerm
Novato
Novato
 
Mensajes: 2
Registrado: Mié Mar 23, 2005 9:31 pm

Re: SOLO PARA TIGRES......

Notapor oskar el Mar May 03, 2005 12:21 pm

Código: Seleccionar todo
    printf("\n\n Grupo:%s\n",cliente.grupo);
    gotoxy(1,17);
    printf("Selecione cualquier tecla para continuar");
    getch();
   // break;
    }
}


Yo sacaria el break despues del getch, si no siempre esta saliendo del while y no llega nunca a recorrer el archivo entero.
oskar
Novato
Novato
 
Mensajes: 1
Registrado: Mar May 03, 2005 12:14 pm

Notapor MuiDark el Sab Abr 14, 2007 1:20 pm

el break esta como comentario..
MuiDark
Novato
Novato
 
Mensajes: 1
Registrado: Sab Abr 14, 2007 12:38 pm


Volver a C/C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados