• Sábado 21 de Septiembre de 2024, 19:05

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - nshica

Páginas: [1]
1
C/C++ / Re: Captura De Datos
« en: Martes 15 de Junio de 2004, 13:34 »
Gracias por la explicacion, me fue muy util.
Ahora me surge un problema con dos funciones de mi programa, se supone que deben borrar y modificar en una estructura, pero no funcionan y no se porque es. Me podeis ayudar?? Gracias
Las pego.

void modificar (biblio libro)
{
  FILE *f;
  int codigo;
  int op;
  char univ[20];
  do{
   clrscr();
      gotoxy(21,3);
      textcolor(1);
      cprintf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
      gotoxy(21,4);
      cprintf("º                         º");
      textcolor(2);
      gotoxy(26,4);
      cprintf("MODIFICAR");
      textcolor(1);
      gotoxy(21,5);
      cprintf("ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ");
      textcolor(3);
      gotoxy(21,8 );
      cprintf(" 1. Por codigo");
      gotoxy(21,9);
      cprintf(" 2. Por Universidad");
      gotoxy(21,10);
      cprintf(" 3. Volver al Menu Principal");
      gotoxy(21,11);
      cprintf("Introduzca una opcion: ");
      op=getch();
      switch (op){
         case '1':
               if ((f=fopen("biblio.dat","r+b"))==NULL){
                  printf ("Error al abrir el fichero\n");
                  exit (0);
               }
               clrscr();
               gotoxy (4,3);
               printf ("Introduce el codigo del libro para modificar: \n");
               gotoxy (4,4);
               scanf ("%d",&codigo);
               fread(&libro,sizeof(libro),1,f);
               if (feof(f)){
                     printf ("No se ha encontrado el codigo introducido");
                     break;}
               else{
                     if (codigo==libro.codigo){
                        clrscr();
                        gotoxy (4,3);
                        cprintf ("Introduce el nuevo titulo: \n");
                        gotoxy (4,4);
                        gets (libro.titulo);
                        gotoxy (4,5);
                        cprintf ("Introduce el nuevo autor: \n");
                        gotoxy (4,6);
                        gets (libro.autor);
                        gotoxy (4,7);
                        cprintf ("Introduce la nueva universidad: \n");
                        gotoxy (4,8 );
                        gets (libro.uni);
                        fwrite (&libro,sizeof(libro),1,f);}
                   }


               fclose(f);
               break;
         case '2':
               if ((f=fopen ("biblio.dat","r+b"))==NULL){
                  printf ("Error al abrir el fichero\n");
                  exit (0);
               }
               clrscr();
               gotoxy (4,3);
               cprintf ("Introduce la universidad para modificar: \n");
               gotoxy (4,4);
               gets (univ);

               fread (&libro, sizeof (libro),1,f);
               if (feof(f)) {
                     printf ("No se ha encontrado la universidad");
                     break;}
                  else{
                     if (univ==libro.uni){
                        clrscr();
                        gotoxy (4,3);
                        printf ("Introduce el nuevo titulo: \n");
                        gets (libro.titulo);
                        gotoxy (4,4);
                        printf ("Introduce el nuevo autor: \n");
                        gets (libro.autor);
                        gotoxy (4,5);
                        printf ("Introduce la nueva universidad: \n");
                        gets (libro.uni);
                        fwrite (&libro,sizeof(libro),1,f);
                        }
                       }
               fclose (f);
               break;
         case '3':
               break;
         default:
                textcolor(4);
                gotoxy(45,14);
                cprintf("Opcion incorrecta");
                textcolor(3);
                sleep(1);
                break;
      }//switch
   }while (op!='3');
}
//--------------funcion borrar-----------------
void borrar(int cod)
{
   FILE *f,*f1;
   biblio libro;
   int ok;
   if ((f=fopen("biblio.dat","r"))==NULL){
      printf ("Error en la apertura del fichero\n");
      exit (0);
   }
   if ((f1=fopen("temporal.dat","w"))==NULL){
      printf ("Error en la apertura del fichero\n");
      exit (0);
   ok=0;
   while(1){
      fread(&libro,sizeof(libro),1,f);
      if (feof(f))
         break;
      else
         if(cod!=libro.codigo)
            fwrite (&libro,sizeof(libro),1,f1);
         else
            ok=1;
   }
   if(!ok&&feof(f)){
      cprintf ("El codigo introducido no existe\n");
      sleep (2);}
   else
      if(ok){
         fclose(f);fclose(f1);
         remove("biblio.dat");
         rename("temporal.dat","biblio.dat");
      }
   getch();
}
}

2
C/C++ / Captura De Datos
« en: Domingo 13 de Junio de 2004, 16:52 »
Hola a todos, necesito que alguien me de una idea sobre como puedo hacer una captura perfecta de datos.
Es decir si en un programa tenemos declarada una variable de tipo entero, que controle que el usuario solo introduzca enteros. Igual con caracteres y con numeros.
Espero q alguien me ayude. Gracias, un saludo.

3
C/C++ / Re: Alguien Me Puede Ayudar??
« en: Sábado 31 de Enero de 2004, 00:52 »
Muchas gracias por tu ayuda, ahora me funciona perfectamente.
En clase no nos explicaron que los ' ' son solo para caracteres. Tambien te agradezco la informacion.

4
C/C++ / Re: Alguien Me Puede Ayudar??
« en: Sábado 31 de Enero de 2004, 00:14 »
Donde estan las caras pone b  y un parentesis, es q me lo ha puesto como un emoticon

5
C/C++ / Alguien Me Puede Ayudar??
« en: Sábado 31 de Enero de 2004, 00:13 »
Buenas!!!!
He hecho un ejercicio que tiene que calcular los dias transcurridos entre una fecha introducida por el usuario y el 1 de enero. Tengo que usar una funcion y switch. Lo he hecho de la siguiente forma pero no me hace el switch, alguien sabe decirme en que me he equivocado??? Mil gracias.
Código: Text
  1.  
  2. #include <stdio.h>
  3. int calculo (int a,int B)
  4.  
  5. {
  6.   int resultado;
  7.   resultado=a-1;
  8.   switch (B)
  9.   {
  10.     case '01':
  11.     resultado=resultado+0;
  12.     break;
  13.     case '02':
  14.     resultado=resultado+28;
  15.     break;
  16.     case '03':
  17.     resultado=resultado+28+31;
  18.     break;
  19.     case '04':
  20.     resultado=resultado+28+31+30;
  21.     break;
  22.     case '05':
  23.     resultado=resultado+28+31+30+31;
  24.     break;
  25.     case '06':
  26.     resultado=resultado+28+31+30+31+30;
  27.     break;
  28.     case '07':
  29.     resultado=resultado+28+31+30+31+30+31;
  30.     break;
  31.     case '08':
  32.     resultado=resultado+28+31+30+31+30+31+31;
  33.     break;
  34.     case '09':
  35.     resultado=resultado+28+31+30+31+30+31+31+30;
  36.     break;
  37.     case '10':
  38.     resultado=resultado+28+31+30+31+30+31+31+30+31;
  39.     break;
  40.     case '11':
  41.     resultado=resultado+28+31+30+31+30+31+31+30+31+30;
  42.     break;
  43.     case '12':
  44.     resultado=resultado+28+31+30+31+30+31+31+30+31+30+31;
  45.     break;}
  46.   return resultado;
  47. }
  48.  
  49. int main ()
  50. {
  51.     int dia,mes;
  52.     int calculado;
  53.     printf ("Este programa calcula la diferencia en dias entre una fecha y el 1 de Enero\n");
  54.     printf ("Introduce el dia en formato dd\n");
  55.     scanf ("%d",&dia);
  56.     printf ("Introduce el mes en formato mm\n");
  57.     scanf ("%d",&mes);
  58.     calculado= calculo (dia,mes);
  59.     printf ("El total de dias transcurridos es %d \n",calculado);
  60. }
  61.  

6
C/C++ / Re: Matriz
« en: Miércoles 14 de Enero de 2004, 22:10 »
Claro!! el salto de linea!! no se me habia ocurrido. Perdonad la torpeza pero soy novatilla, me queda mucho por aprender.
Muchas gracias :(

7
C/C++ / Re: Matriz
« en: Miércoles 14 de Enero de 2004, 12:44 »
Poniendo
printf ("%d\n",matriz[j]);
debajo del else me imprime todos los numeros uno detras de otro, como hago para que los imprima de 10 en 10.
Seguro que es lo mas facil del mundo pero no me sale.Gracias

8
C/C++ / Re: Matriz
« en: Miércoles 14 de Enero de 2004, 12:20 »
Muchas gracias, lo probaré a ver que tal. No se me habia ocurrido esa opcion.

9
C/C++ / Matriz
« en: Miércoles 14 de Enero de 2004, 01:56 »
Hola a todos!!
Soy nueva en el mundo de la programacion en c. Necesito que alguien me explique como puedo hacer una matriz de 10x10 con la diagonal principal a unos y el resto a ceros. Por mas vueltas que le doy solo consigo hacerla con 1s.
Gracias por adelantado.

Páginas: [1]