• Martes 5 de Noviembre de 2024, 15:43

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 - dadevil_g

Páginas: [1] 2 3
1
Java / Re: Manejo De Estructuras ?
« en: Jueves 6 de Diciembre de 2007, 06:10 »
Weno una vez dicho esto, me pongo a buscar algún manual, si alguien sabe de alguna recomendación, pues bienvenida.


Gracias por tu respuesta

2
Java / Manejo De Estructuras ?
« en: Jueves 6 de Diciembre de 2007, 00:31 »
Que tal, saludos a todos, mi problema es el siguiente, tengo que desarrollar un programa para manejar una biblioteca, tiene que dar de alta libros, audiolibros, revistas y usuarios, y tiene que hacer busquedas por titulo, editorial y categoria, tengo el esqueleto grafico (las ventanas, los botones) ya funcionando bien, pero ahora viene la pregunta importante, ¿cómo es mejor manejar un programa asi, con base de datos o con algun tipo de estructura ? si a alguien le interesa hecharme una mano con el proyecto y desea que le envie lo que tengo de codigo hecho en netbeans 6 que me mande un emilio, gracias de antemano.

3
C/C++ / Mal Escrito O Mal Uso De Cadenas?
« en: Jueves 3 de Mayo de 2007, 05:12 »
:hola:  hola a todos, como ven tengo muchas inquietudes y el otro dia me puse a hacer un programita que hiciera lo siguiente
Sin uso de argumentos, realizar un programa que lea un archivo
origen.txt y escriba el texto con puntos a un archivo destino.txt
Por ejemplo.
origen.txt
Iniciar una nueva discusión en C/C++
destino.txt
Iniciar.una.nueva.discusion.en.C/C++

Y esto lo logre mediante el siguiente codigo
Código: Text
  1.  
  2. while ((ch=fgetc(fp)) != EOF)
  3.     if (ch==' ')
  4.       fputc('.',fp2);
  5.     else
  6.       fputc(ch,fp2);
  7.  
  8.  

Pero eso es trabajando con archivos, mi pregunta es como se debe de hacer para trabajar con una cadena de texto ingresada desde el teclado?
Tengo algo de codigo pero no se porque no me funciona.

Código: Text
  1.  
  2. #include "stdafx.h"
  3. #include "stdio.h"
  4. #include "conio.h"
  5. #include "stdlib.h"
  6. #include "string.h"
  7.  
  8. void adiciona(char *ptrS);
  9.  
  10.  
  11. int _tmain(int argc, _TCHAR* argv[])
  12. {
  13.   char palabra[150];
  14.   int i=0, t;
  15.   printf("Escriba una frase para añadir un caracter\n");
  16.   scanf("%s", palabra);
  17.   while(("%s",palabra)!='\0')
  18.   {
  19.     t=strlen(palabra);
  20.     for(i=0; i<=t; i++)
  21.     {
  22.       if((palabra[i])==' ')
  23.       {
  24.         puts("a ",palabra );
  25.       }
  26.     }
  27.   }
  28.   printf("Palabra transformada\n");
  29.   printf("%s",palabra);
  30.   getchar();
  31. }
  32.  
  33.  



Si alguien me puede decir onta el error le agradecería bastante. :comp:

4
C/C++ / Re: Ayuda Con Un Programa
« en: Jueves 3 de Mayo de 2007, 04:52 »
Bueno, de hecho, es cierto lo que comenta RadicalEd, ya que yo uso Visual Studio 2005 y efectivamente no puedo utilizar el gotoxt, bueno ahora si ya que desde la pagina de microsoft en los foros se puede bajar una libreria tool.h donde viene declarada la funcion gotoxy, aunque ya he solucionado el problema gracias de todas formas a ustedes que se tomaron la molestia de leer el post, de cualquier forma aqui pongo el codigo por si a alguien le sirve.

Código: Text
  1.  
  2. #include "stdafx.h"
  3. #include "string.h"
  4. #include "stdlib.h"
  5.  
  6. #define MAX 10
  7. void di(int n);
  8.  
  9. int _tmain(int argc, _TCHAR* argv[])
  10. {
  11.    int numero, linea, columna;
  12.  
  13.    for( linea = 1; linea <= MAX; linea++ ) {
  14.       for( columna = MAX; columna > linea; columna-- )
  15.          printf(" ");
  16.  
  17.       for( columna = linea; columna < 2*linea; columna++ ) {
  18.          numero = columna % 10;
  19.          printf("%d",numero);
  20.       }
  21.    
  22.       for( columna = 2*(linea-1); columna >= linea; columna-- ) {
  23.          numero = columna % 10;
  24.          printf("%d",numero);
  25.       }
  26.       printf ("\n");
  27.    }
  28.   printf("\n\n");
  29.    system ("pause");
  30.    return 0;
  31. }
  32.  
  33.  

5
C/C++ / Re: Ayuda Con Un Programa
« en: Lunes 30 de Abril de 2007, 07:34 »
Perdon, se supone que deberia ser un triangulo
Código: Text
  1.  
  2.                    1
  3.                   232
  4.                  34543
  5.                 4567654
  6.                567898765
  7.               67890109876
  8.              7890123210987
  9.             890123454321098
  10.            90123456765432109
  11.           0123456789876543210
  12.  
  13.  

6
C/C++ / Ayuda Con Un Programa
« en: Lunes 30 de Abril de 2007, 07:30 »
Hola amigos, acudo a ustedes en desesperacion, tengo el problema de realizar un programa que imprima algo asi:

Código: Text
  1.         1
  2.                  232
  3.                34543
  4.               4567654
  5.             567898765
  6.           67890109876
  7.         7890123210987
  8.        890123454321098
  9.      90123456765432109
  10.     0123456789876543210
  11.  
  12.  
  13.  

y ya tengo algo de codigo, de hecho ya funciona el problema es que despues del 9 en lugar de poner 0 me pone 10 y 11, y asi sucesivamente, y tampoco he podido centrarlo cuando lo corro no me aparece un triangulo, me aparece pegado al lado izquierdo de la pantalla, aqui les dejo el codigo si alguien tubiera alguna idea o me pudiera corregir se los agradecería bastante.

Código: Text
  1.  
  2.  
  3. int numero, linea, columna;
  4.  
  5.   for( linea = 1; linea <= MAX; linea++ )
  6.   {
  7.     for( columna = MAX; columna >= linea; columna-- )
  8.       printf(" ");
  9.  
  10.     for( columna = linea; columna < 2*linea; columna++ )
  11.     {
  12.       numero = columna % 10;
  13.       printf("%d",numero);
  14.     }
  15.    
  16.     for( columna = 2*(linea-1); columna >= linea; columna-- )
  17.     {
  18.       numero = columna % 10;
  19.       printf("%d",numero);
  20.     }
  21.     getchar();
  22.     return 0;
  23.   }
  24. }
  25.  
  26.  
  27.  

Por cierto estoy programando en Visual Studio 2005 si sirve de algo.... :kicking:

7
C/C++ / Re: Reloj Checador
« en: Domingo 25 de Febrero de 2007, 19:29 »
Muchas gracias, eso me da una idea de como debo empezar, lo que pasa es que es un sistema de altas, bajas, actualizaciones, seguridad, reporte impreso, y pues a mi me toco el reporte impreso y a otro equipo las altas, y asi sucesivamente, creo que eso se llama programacion extrema o algo por el estilo. Gracias por el aporte se agradece mucho.

8
C/C++ / Re: Getch
« en: Sábado 24 de Febrero de 2007, 21:43 »
Bueno, tal vez parezca un poco fuera de idea pero pudieras utilizar una pausa en el sistema, algo asi como: system( "PAUSE" ); no recuerdo la libreria a utilizar, pero ha de ser una de las basicas stdio.h, conio.h, dependiendo de tu compilador, espero te sirva de ayuda.

Si no te queda claro aqui tienes un pequeño ejemplo:

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

int main()
{
printf("\nPrograma de prueba, es sabado, bebamos, salu2");
system( "PAUSE" ); // Aqui pausamos el programa.
return 0;
}

9
C/C++ / Reloj Checador
« en: Sábado 24 de Febrero de 2007, 06:42 »
:unsure:  :( Hola, que tal, soy yo otra vez, y esta vez si estoy en un aprieto total, no se ni como empezar ni nada... el problema es que tengo que hacer una funcion que imprima un cheque, pero en el cheque tiene que venir cuantas horas trabajo el empleado X, si se trabajaron 40 horas a la semana recibe su paga completa, al dia trabaja 8 horas, y el salario minimo es de 47 pesos. Cualquier sugerencia es bienvenida, desde algun codigo existente hasta alguna orientacion que me pudieran dar, o pseudocodigo, lo que sea.... hasta alguna mentada de jefa. :P

10
C/C++ / Re: Union Regs
« en: Viernes 23 de Febrero de 2007, 19:44 »
Pues es algo asi, ya que estamos programando con el Visual Studio 2005 pero estamos haciendo aplicaciones en C para Win 32 en modo consola, todavia no vemos nada visual, ni mucho menos con botones ni nada parecido.

11
C/C++ / Re: Union Regs
« en: Viernes 23 de Febrero de 2007, 18:06 »
Bueno, se resolvio el problema, el profesor tambien se rindió, nos pidio que investigaramos eso para hacer un programa que mostrara la hora y la fecha del sistema, al ultimo terminamos haciendolo con estructuras, si alguien quiere el codigo que me diga y lo posteo.

12
C/C++ / Re: Union Regs
« en: Miércoles 21 de Febrero de 2007, 23:51 »
Weno, gracias por tomarte la molestia en contestarme, me puse a leer, pero aun asi no me quedo claro :blink: , estamos trabajando en Visual Studio 2005, y ya muchos compañeros nos hemos topado con la misma problematica, si union regs es algo que introdujo borland y no es muy estandar quiere decir que no vamos a poder trabajarlos en Visual Studio 2005? :unsure:

13
C/C++ / Union Regs
« en: Miércoles 21 de Febrero de 2007, 05:45 »
Hail, nuevamente estoy preguntando, cosas que tal vez no tienen sentido, pero que no entiendo, he buscado en el google algo sobre uniones que tiene que ver son estructuras, pero solamente encuentro codigo que maneja con ensamblador, y pues eso yo ya no lo entiendo, alguien podria dar un ejemplo de union regs, no se, como por ejemplo obtener la hora y fecha del sistema, o algo por el estilo??? o si saben de una pagina donde expliquen bien esas cosas  me pudieran decir, se los agradeceria. :(

14
C/C++ / Re: Pequeño Problemita
« en: Domingo 18 de Febrero de 2007, 20:36 »
A ver si entendi, la entrada es en grados, y hay que transformarla a radianes, y mandarlo a la funcion sin, o cos, y despues volver a convertir a grados o ya con el simple hecho de mandarlo en gradianes a la funcion debe de dar el resultado esperado? :blink:  :unsure:

15
C/C++ / Pequeño Problemita
« en: Sábado 17 de Febrero de 2007, 22:31 »
Wenas a todos los programadores y programadoras de este foro, hace mucho que estoy registrao aqui, y hace mucho que no me topaba con un problema como este, sucede que un profe de fisica nos dejo hacer un programa que descomponga las fuerzas y todo ese chou, agarre papel, lapiz, y empece a solucionar el problema, ahora, ya tengo el codigo, hice el programa y corre perfectamente, pero el problema me viene con el resultado, le he preguntado  otro profe y no me supo decir mas que "hay un problema con los radianes y grados" he investigado como hacer la conversion y la pongo en mi programa pero todos los resultados distan mucho de ser los esperados, si alguien pudiera y quiciera ayudarme aqui les dejo el codigo y muchas gracias de antemano por molestarse en leer este post

Código: Text
  1. #include &#34;stdafx.h&#34;
  2. #include &#34;math.h&#34;
  3. #include &#34;stdio.h&#34;
  4. #include &#34;stdlib.h&#34;
  5. #define conver 360/2*3.1415926535
  6.  
  7. void sistema_ingles ();
  8. void sistema_internacional ();
  9. void ayuda();
  10.  
  11. int _tmain(int argc, _TCHAR* argv[])
  12. {
  13.   int menu;
  14.   float a,b,c,d;
  15.   float u,v,w,x;
  16.   printf(&#34;===============================================================&#092;n&#34;);
  17.   printf(&#34; U N I V E R S I D A D  A U T O N O M A  D E  Z A C A T E C A S&#092;n&#34;);
  18.   printf(&#34;&#092;n&#092;n&#092;n&#34;);
  19.   printf(&#34;1.- Sistema Internacional&#092;n&#34;);
  20.   printf(&#34;2.- Sistema Ingles&#092;n&#34;);
  21.   printf(&#34;3.- Ayuda&#092;n&#34;);
  22.   printf(&#34;4.- Salir&#34;);
  23.   printf(&#34;&#092;n&#092;nSelecciona una opcion a utilizar: &#34;);
  24.   scanf(&#34;%d&#34;,&menu);
  25. switch(menu){
  26.     case 1:
  27.       printf(&#34;1.- Sistema Internacional&#092;n&#34;);
  28.       system(&#34;cls&#34;);
  29.       sistema_internacional();
  30.       break;
  31.     case 2:
  32.       printf(&#34;2.- Sistema Ingles&#092;n&#34;);
  33.       system(&#34;cls&#34;);
  34.       sistema_ingles();
  35.       break;
  36.     case 3:
  37.       printf(&#34;3.- Ayuda&#092;n&#34;);
  38.       system(&#34;cls&#34;);
  39.       ayuda();
  40.       getchar();
  41.       break;
  42.     case 4:
  43.       printf(&#34;4.- Salir&#34;);
  44.             break;
  45.     default:
  46.       printf(&#34;Opcion no valida&#34;);
  47.   }
  48. }
  49.  
  50. void sistema_ingles ()
  51. {
  52.   float u,v,w,x;
  53.   printf(&#34;Da la magnitud en libras&#34;);
  54.   printf(&#34;&#092;nMagnitud: &#34;);
  55.   scanf(&#34;%f&#34;,&u);
  56.   printf(&#34;&#092;nDa la direccion en grados&#34;);
  57.   printf(&#34;&#092;nDireccion: &#34;);
  58.   scanf(&#34;%f&#34;,&v);
  59.   w=cos(v);
  60.   x=sin(v);
  61.   getchar();
  62.   printf(&#34;&#092;nResultante en 1: %1.5f Lb&#34;,w*conver);
  63.   printf(&#34;&#092;nResultante en 2: %1.5f Lb&#34;,x*conver);
  64.   printf(&#34;&#092;n&#092;nLOS RESULTADOS SON EXPRESADOS EN RADIANES&#34;);
  65.   getchar();
  66. }
  67.  
  68. void sistema_internacional ()
  69. {
  70.   float a,b,c,d,e,f;
  71.   printf(&#34;Da la magnitud en newtons&#34;);
  72.   printf(&#34;&#092;nMagnitud: &#34;);
  73.   scanf(&#34;%f&#34;,&a);
  74.   printf(&#34;&#092;nDa la direccion en grados&#34;);
  75.   printf(&#34;&#092;nDireccion: &#34;);
  76.   scanf(&#34;%f&#34;,&b);
  77.   getchar();
  78.   c = cos (B);
  79.   d = sin (B);
  80.   e= c;
  81.   f= d;
  82.   printf(&#34;&#092;nResultante en 1: %1.5f Newtons&#34;,e*a);
  83.   printf(&#34;&#092;nResultante en 2: %1.5f Newtons&#34;,f*a);
  84.   printf(&#34;&#092;n&#092;nLOS RESULTADOS SON EXPRESADOS EN RADIANES&#34;);
  85.   getchar();
  86. }
  87.  
  88. void ayuda()
  89. {
  90.   printf(&#34;Programa diseñado para la asignatura de Fisica 1 (Estatica)&#092;n&#092;n&#34;);
  91.   printf(&#34;Impartida por el Ing. Jose Antonio Rodriguez Rodriguez&#092;n&#34;);
  92.   printf(&#34;La opcion 1 ayuda a resolver por medio del sistema ingles&#092;n&#34;);
  93.   printf(&#34;un sistema de dos fuerzas en libras&#092;n&#092;n&#34;);
  94.   printf(&#34;La opcion 2 ayuda a resolver por medio del sistema internacional&#092;n&#34;);
  95.   printf(&#34;un sistema de dos fuerzas en newtons&#092;n&#092;n&#34;);
  96.   printf(&#34;La opcion 3 despliega esta ayuda&#092;n&#34;);
  97.   printf(&#34;&#092;nLa opcion 4 sale del programa&#34;);
  98.   getchar();
  99. }
  100.  
  101.  

P.D. el programa esta escrito en C, y estoy utilizando el Visual Studio 2005  :comp:

16
C/C++ / Re: Juego "vida"
« en: Domingo 15 de Mayo de 2005, 00:24 »
Bueno, me dió curiosidad por que habla de vida artificial en C, y pues quiciera el codigo, para observar como es que funciona dicha vida artificial.

17
C/C++ / Juego "vida"
« en: Sábado 14 de Mayo de 2005, 06:21 »
Wenas, esta tarde me he encontrado navegando por distintas webs de programacion en C y me he encontrado en varias que hablan sobre un juego llamado LIFE (VIDA)  y que este, simula vida artificial, y me he quedao con la curiosidad  :blink: de saber que onda con ese juego, si alguien tiene el codigo para C, se lo agradezco de antemano.

18
C/C++ / Re: Creación De Archivos .h
« en: Sábado 27 de Marzo de 2004, 05:57 »
Muchas gracias a dreadlock, y a desorden me sirvieron mucho sus explicaciones y links, ayunque como todavia no manejo linux y no soy muy experto en C, vere el link que me pones desorden.

Muchas gracias a los 2. :kicking:

19
C/C++ / Creación De Archivos .h
« en: Viernes 26 de Marzo de 2004, 22:58 »
Buenas a todo el que se moleste en ver mi post, necesito crear una libreria que tenga una funcion de desea continuar s/n y otra pa limpiar pantalla, lo malo es que no se crear muy bien funciones pero tengo un libro que me ayudara con eso, pero necesito que me ayuden con la creacion de la libreria "mi nombre.h" no se cual sea la estructura pa eso, si alguien tiene un ejemplillo o algún link o si me puede ayudar se lo agradecería basante.

De antemano gracias :hola:

20
C/C++ / Dudas Con Las Librerias
« en: Jueves 26 de Febrero de 2004, 20:07 »
Buenas tardes a todos los compañeros del foro... me presento con una duda, tengo un programa hecho en Turbo C, que utiliza sonidos y funciona muy bien, pero a la hora de compilarlo en mi Borland C/C++ 5.02 me da error, ¿alguien sabe que libreria debo utilizar?; tambien me marca "Too many types in declaration... como puedo resolver ese mensaje de error.

Esperando respuesta, un cordial saludo y gracias de antemano.  :comp:

21
C/C++ / Re: Mensaje De Errores Help Plis
« en: Viernes 6 de Febrero de 2004, 08:09 »
Es el borland C++ 5.02  :blink:

22
C/C++ / Re: Mensaje De Errores Help Plis
« en: Miércoles 4 de Febrero de 2004, 06:26 »
Porcierto toy utilizando Borland C/C++ de compilador.... sorry  :P

23
C/C++ / Mensaje De Errores Help Plis
« en: Miércoles 4 de Febrero de 2004, 06:18 »
Wenas compañeros... hace muxo que no venia por estos rumbos pero ahora se me presenta un problema :unsure: tengo muchos errores en el codigo que anexo...  si alguien pudiera ayudarme se lo agradeceria muxo.... porcierto es una base de datos de un almacen imaginario  :(  

Código: Text
  1.  
  2.  
  3. #include&#34;stdio.h&#34;
  4. #include&#34;conio.h&#34; //Tan feo ke suena si o no&#59;-)
  5. #include&#34;alloc.h&#34; //Tambien suena horrible
  6. #include&#34;ctype.h&#34;
  7. #include&#34;time.h&#34;
  8. #include&#34;dos.h&#34;
  9. #include&#34;process.h&#34;
  10. #include&#34;string.h&#34;
  11. #include&#34;io.h&#34;
  12. #include&#34;dir.h&#34;
  13.  
  14.  
  15. #define alo (struct nodo *)malloc(sizeof(struct nodo));
  16. #define gopri(a,b,c) gotoxy(a,b); cprintf(c);
  17. #define color(a,b) textcolor(a);textbackground(b);
  18.  
  19.  
  20. typedef struct nodo{
  21. char codigo[10];//codigo de articulo
  22. char nom_art[20];//nombre del articulo
  23. char desc[60];//descripcion el articulo
  24. char cant[40];
  25. char valor[10];//precio unitario del articulo
  26. struct nodo *sig;
  27. struct nodo *ant;
  28. };
  29.  
  30. void cargar();
  31. void guardar();
  32. void agregar();
  33. void buscar();
  34. void inserta_reg(struct nodo *p);
  35. void elimina(struct nodo *p);
  36. void modifica(struct nodo *aux);
  37. void mostrar();
  38. void impri_code_c();
  39. void impri_code_n();
  40. void menu();
  41. void boseto();
  42. void listar_act_nodo();
  43. void verifica_cod();
  44. void verifica_val();
  45. void vent_menu();
  46. void vent_busc();
  47. void verif_guard();
  48. char *minus(char nombre[]);
  49. struct nodo *localiza(char pnombre[]);
  50. void ayuda();
  51. void sonido(int frecuencia,int tiempo);
  52.  
  53.  
  54. struct nodo *cab,*p,*n,*ap;
  55.  
  56. int n_art=0,guardado=0;
  57.  
  58.  
  59.  
  60. void main()
  61. {
  62. clrscr();
  63.  
  64. /*sonido(150,150);
  65. sonido(350,350);
  66. sonido(550,550);
  67. sonido(750,750);*/
  68.  
  69. sonido(750,750);
  70. sonido(550,550);
  71. sonido(350,350);
  72. sonido(150,150);
  73. cargar();
  74. menu();
  75. }
  76.  
  77.  
  78.  
  79.  
  80. /*-------------------------SONIDO MAQUILLAJE--------------------*/
  81.  
  82. void sonido(int frecuencia,int tiempo)
  83. {
  84. if (frecuencia &#62; 0)
  85. {
  86. sound(frecuencia);
  87. delay(tiempo);
  88. nosound();
  89. }
  90. }
  91.  
  92.  
  93.  
  94.  
  95. /*---------------------MENU PRINCIPAL DEL PROYECTO------------------*/
  96.  
  97. void menu()
  98. {
  99. int d,c,s,flar=25,flab=24,fder=17,fizq=16;
  100. d=1;
  101. while(d!=5)
  102. {
  103. time_t timer;
  104. struct tm *tblock;
  105. /* coge el tiempo actual */
  106. timer = time(NULL);
  107. /* convierte el dato del tiempo a una estructura */
  108. tblock = localtime(&timer);
  109. //--------------------------------
  110. textmode(2);
  111. color(0,6);//7
  112. clrscr();
  113. color(6+BLINK,0);
  114. gotoxy(1,25);
  115. cprintf(&#34;PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION -&#62;&#62; ART_Pako 1.0&#34;,flab,flar);
  116. color(0,6);
  117. vent_menu();
  118. d=1;
  119. c=1;
  120. do{
  121. color(6,0);
  122. gotoxy(1,24);
  123. cprintf(&#34;HAY %d CLASES DE ARTICULOS EN LA LISTA. FECHA Y HORA -&#62; %s&#34;,n_art,asctime(tblock));
  124. gopri(27,2,&#34; MENU DE ENTRADA &#34;);
  125. color(0,6);
  126. gopri(29,4,&#34; ADICIONAR &#34;);
  127. gopri(29,6,&#34; MOSTRAR &#34;);
  128. gopri(29,8,&#34; BUSCAR &#34;);
  129. gopri(29,10,&#34; GUARDAR &#34;);
  130. gopri(29,12,&#34; SALIR &#34;);
  131. gopri(29,14,&#34; AYUDA &#34;);
  132. if(d==0) d=6;
  133. if(d==7) d=1;
  134. color(6,0);
  135. switch(d)
  136. {
  137. case 1 :gopri(29,4,&#34; ADICIONAR &#34;);
  138. break;
  139. case 2 :gopri(29,6,&#34; MOSTRAR &#34;);
  140. break;
  141. case 3 :gopri(29,8,&#34; BUSCAR &#34;);
  142. break;
  143. case 4 :gopri(29,10,&#34; GUARDAR &#34;);
  144. break;
  145. case 5 :gopri(29,12,&#34; SALIR &#34;);
  146. break;
  147. case 6 :gopri(29,14,&#34; AYUDA &#34;);
  148. break;
  149. }
  150. c=getch();
  151. if(c==72) d=d-1;
  152. if(c==80) d=d+1;
  153. }while(c!=13);
  154. switch(d)
  155. {
  156. case 1 :agregar();
  157. break;
  158. case 2 :if(n_art&#62;0)
  159. {
  160. p=cab;
  161. if(n_art&#60;2)
  162. {
  163. clrscr();
  164. color(6+BLINK,0);
  165. gotoxy(20,12);
  166. cprintf(&#34;PRESIONA FLECHA %c- ¢ -%c, Y PRESIONA&#34;,fder,fizq);
  167. gotoxy(20,13);
  168. cprintf(&#34;ENTER PARA ESCOJER TU OPCION ART_Pako 1.0&#34;);
  169. gotoxy(20,14);
  170. cprintf(&#34;PRESIONA CUALQUIER TECLA PARA CONTINUAR&#34;);
  171. getch();
  172. }
  173. mostrar();
  174. }
  175. else{
  176. gopri(27,22,&#34; NO HAY DATOS QUE MOSTRAR &#34;);
  177. sleep(2);
  178. }
  179. break;
  180. case 3 :if(n_art&#62;0)
  181. {
  182. buscar();
  183. }
  184. else{
  185. gopri(27,22,&#34; NO HAY DATOS PARA BUSCAR &#34;);
  186. sleep(2);
  187. }
  188. break;
  189. case 4 :guardar();
  190. break;
  191. case 5 :verif_guard();
  192. break;
  193. case 6 :ayuda();
  194. break;
  195.  
  196. }
  197.  
  198. }
  199. }
  200.  
  201. void vent_menu()
  202. {
  203. gopri(27,3,&#34;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿&#34;);
  204. gopri(27,4,&#34;³ ³²²&#34;);
  205. gopri(27,5,&#34;³ ³²²±±&#34;);
  206. gopri(27,6,&#34;³ ³²²±±°°&#34;);
  207. gopri(27,7,&#34;³ ³²²±±°°&#34;);
  208. gopri(27,8,&#34;³ ³²²±±°°&#34;);
  209. gopri(27,9,&#34;³ ³²²±±°°&#34;);
  210. gopri(27,10,&#34;³ ³²²±±°°&#34;);
  211. gopri(27,11,&#34;³ ³²²±±°°&#34;);
  212. gopri(27,12,&#34;³ ³²²±±°°&#34;);
  213. gopri(27,13,&#34;³ ³²²±±°°&#34;);
  214. gopri(27,14,&#34;³ ³²²±±°°&#34;);
  215. gopri(27,15,&#34;³ ³²²±±°°&#34;);
  216. gopri(27,16,&#34;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°&#34;);
  217. gopri(27,17,&#34; ²²²²²²²²²²²²²²²²²²²²²²±±°°&#34;);
  218. gopri(27,18,&#34; ±±±±±±±±±±±±±±±±±±±±±±°°&#34;);
  219. gopri(27,19,&#34; °°°°°°°°°°°°°°°°°°°°°°&#34;);
  220. }
  221.  
  222.  
  223.  
  224.  
  225. /*-----------------------MENU DE BUSQUEDA-----------------------*/
  226.  
  227. void buscar()
  228. {
  229. int d,c,s,flar=25,flab=24;
  230. d=1;
  231. while(d!=3)
  232. {
  233. textmode(2);
  234. color(0,6);//7
  235. clrscr();
  236. color(6+BLINK,0);
  237. gotoxy(1,25);
  238. cprintf(&#34;PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION -&#62;&#62; ART_Pako 1.0&#34;,flab,flar);
  239. color(0,6);
  240. vent_busc();
  241. d=1;
  242. c=1;
  243. do{
  244. color(6,0);
  245. gopri(28,2,&#34; MENU DE BUSQUEDA &#34;);
  246. color(0,6);
  247. gopri(30,4,&#34; POR CODIGO &#34;);
  248. gopri(30,6,&#34; POR NOMBRE &#34;);
  249. gopri(30,8,&#34; SALIR &#34;);
  250. if(d==0) d=3;
  251. if(d==4) d=1;
  252. color(6,0);
  253. switch(d)
  254. {
  255. case 1 :gopri(30,4,&#34; POR CODIGO &#34;);
  256. break;
  257. case 2 :gopri(30,6,&#34; POR NOMBRE &#34;);
  258. break;
  259. case 3 :gopri(30,8,&#34; SALIR &#34;);
  260. break;
  261.  
  262. }
  263. c=getch();
  264. if(c==72) d=d-1;
  265. if(c==80) d=d+1;
  266. }while(c!=13);
  267. switch(d)
  268. {
  269. case 1 :impri_code_c();
  270. if(n_art&#60;1)
  271. {
  272. gopri(12,22,&#34; SE ELIMINARON TODOS LOS DATOS &#34;);
  273. sleep(2);
  274. flushall();
  275. cab=p=ap=NULL; //guardar();
  276. d=3;
  277. }
  278. break;
  279. case 2 :impri_code_n();
  280. if(n_art&#60;1)
  281. {
  282. gopri(12,22,&#34; SE ELIMINARON TODOS LOS DATOS &#34;);
  283. sleep(2);
  284. flushall();
  285. cab=p=ap=NULL; //guardar();
  286. d=3;
  287. }
  288. break;
  289. }
  290. }
  291. }
  292.  
  293. void vent_busc()
  294. {
  295. gopri(28,3,&#34;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿&#34;);
  296. gopri(28,4,&#34;³ ³²²&#34;);
  297. gopri(28,5,&#34;³ ³²²±±&#34;);
  298. gopri(28,6,&#34;³ ³²²±±°°&#34;);
  299. gopri(28,7,&#34;³ ³²²±±°°&#34;);
  300. gopri(28,8,&#34;³ ³²²±±°°&#34;);
  301. gopri(28,9,&#34;³ ³²²±±°°&#34;);
  302. gopri(28,10,&#34;³ ³²²±±°°&#34;);
  303. gopri(28,11,&#34;³ ³²²±±°°&#34;);
  304. gopri(28,12,&#34;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°&#34;);
  305. gopri(28,13,&#34; ²²²²²²²²²²²²²²²²²²²±±°°&#34;);
  306. gopri(28,14,&#34; ±±±±±±±±±±±±±±±±±±±°°&#34;);
  307. gopri(28,15,&#34; °°°°°°°°°°°°°°°°°°°&#34;);
  308. }
  309.  
  310. /*-----------IMPRIME EL ARTICULO BUSCADO POR MEDIO DEL CODIGO---------*/
  311.  
  312. void impri_code_c()
  313. {
  314. clrscr();
  315. char code[10];
  316. int jur=0;
  317. gotoxy(12,15);printf(&#34;Codigo a buscar: &#34;);
  318. gets(code);
  319. p=cab;
  320. /*if(p!=NULL)
  321. {
  322. if(strcmp(code,p-&#62;codigo)==0)
  323. {
  324. jur=1;
  325. }
  326. if(jur!=1){
  327. p=p-&#62;sig;
  328. }*/
  329. while(p-&#62;sig!=cab && jur!=1)
  330. {
  331. if(strcmp(code,p-&#62;codigo)==0)
  332. {
  333. jur=1;
  334. break;
  335. }
  336. p=p-&#62;sig;
  337. }
  338. //}
  339. if(jur==1)
  340. {
  341. mostrar();
  342. }
  343. if(jur!=1)
  344. {
  345. gotoxy(12,17);printf(&#34;EL CODIGO %s NO EXISTE INTENTA POR EL NOMBRE&#34;,code);
  346. sleep(2);
  347. }
  348. }
  349.  
  350. /*---------------IMPRIME EL ARTICULO POR MEDIO DEL NOMBRE----------------*/
  351.  
  352. void impri_code_n()
  353. {
  354. clrscr();
  355. struct nodo *aux;
  356. char code[10];
  357. //int jur=0;
  358. gotoxy(12,15);printf(&#34;Nombre a buscar: &#34;);
  359. gets(code);
  360. //-----------------------------------
  361. aux=localiza(code);
  362. if(aux){
  363. p=aux;
  364. mostrar();
  365. }
  366. else{
  367. gotoxy(12,17);printf(&#34;EL NOMBRE %s NO EXISTE INTENTA POR EL CODIGO&#34;,code);
  368. sleep(2);
  369. }
  370. }
  371.  
  372. /*-------------MUESTRA LOS DATOS EN LA LISTA------------------*/
  373.  
  374. void mostrar()
  375. {
  376. int d,c,s;
  377. char elim;
  378. d=1;
  379. while(d!=5)
  380. {
  381. flushall();
  382. textmode(2);
  383. color(0,6);//7
  384. if(n_art&#60;=0)
  385. {
  386. clrscr();
  387. gopri(25,12,&#34; SE ELIMINARON TODOS LOS DATOS &#34;);
  388. sleep(2);
  389. cab=p=ap=NULL;//guardar();
  390. break;
  391. }
  392. clrscr();
  393. boseto();
  394. listar_act_nodo();
  395. color(6,0);
  396. gopri(10,2,&#34; MOSTRANDO ARTICULOS CON SUS OPCIONES CORRESPONDIENTES &#34;);
  397. color(0,6);
  398. gopri(1,24,&#34;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ&#34;);
  399. gopri(2,25,&#34; SIGUIENTE ANTERIOR ELIMINAR MODIFICAR SALIR &#34;);
  400. d=1;
  401. c=1;
  402. do{
  403. //color(6+BLINK,0);
  404. //gopri(8,3,&#34; MENU DE BUSQUEDA &#34;);
  405. color(0,6);
  406. gopri(6,25,&#34; SIGUIENTE &#34;);
  407. gopri(20,25,&#34; ANTERIOR &#34;);
  408. gopri(33,25,&#34; ELIMINAR &#34;);
  409. gopri(46,25,&#34; MODIFICAR &#34;);
  410. gopri(61,25,&#34; SALIR &#34;);
  411.  
  412. if(d==0) d=5;
  413. if(d==6) d=1;
  414. color(6,0);
  415. switch(d)
  416. {
  417. case 1 :gopri(6,25,&#34; SIGUIENTE &#34;);
  418. break;
  419. case 2 :gopri(20,25,&#34; ANTERIOR &#34;);
  420. break;
  421. case 3 :gopri(33,25,&#34; ELIMINAR &#34;);
  422. break;
  423. case 4 :gopri(46,25,&#34; MODIFICAR &#34;);
  424. break;
  425. case 5 :gopri(61,25,&#34; SALIR &#34;);
  426. break;
  427. }
  428. c=getch();
  429. if(c==75) d=d-1;
  430. if(c==77) d=d+1;
  431. }while(c!=13);
  432. switch(d)
  433. {
  434. case 1 :p=p-&#62;sig;
  435. boseto();
  436. listar_act_nodo();
  437. break;
  438. case 2 :p=p-&#62;ant;
  439. boseto();
  440. listar_act_nodo();
  441. break;
  442. case 3 : gotoxy(10,20);
  443. printf(&#34;Esta totalmente seguro de eliminar estos datos si(S), no(N):&#34;);
  444. elim=tolower(getch());
  445. if (elim=='s')
  446. {
  447. elimina(p);
  448. n_art--;
  449. guardado=1;
  450. if(n_art&#62;0)
  451. {
  452. p=p-&#62;sig;
  453. }
  454. }
  455. break;
  456. case 4 : modifica(p);
  457. break;
  458. }
  459. }
  460. }
  461.  
  462.  
  463. /*-----------------IMPRIME SILOCITANDO LOS DATOS---------------------*/
  464. void boseto()
  465. {
  466. clrscr();
  467. gopri(2,3,&#34;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿&#34;);
  468. gopri(2,4,&#34;³ Codigo: ³±±&#34;);
  469. gopri(2,5,&#34;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±&#34;);
  470. gopri(2,6,&#34;³ Nombre: ³±±&#34;);
  471. gopri(2,7,&#34;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±&#34;);
  472. gopri(2,8,&#34;³ Descripci¢n: ³±±&#34;);
  473. gopri(2,9,&#34;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±&#34;);
  474. gopri(2,10,&#34;³ Cantidad: ³±±&#34;);
  475. gopri(2,11,&#34;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±&#34;);
  476. gopri(2,12,&#34;³ Valor: ³±±&#34;);
  477. gopri(2,13,&#34;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±&#34;);
  478. gopri(2,14,&#34; ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±&#34;);
  479. }
  480.  
  481.  
  482. /*----------IMPRIME EL NODO ACTUAL TOMANDO COMO REFERENCIA A p -----------*/
  483.  
  484. void listar_act_nodo()
  485. {
  486. gotoxy(18,4);printf(&#34;%s&#34;,p-&#62;codigo);
  487. gotoxy(18,6);printf(&#34;%s&#34;,p-&#62;nom_art);
  488. gotoxy(18,8);printf(&#34;%s&#34;,p-&#62;desc);
  489. gotoxy(18,10);printf(&#34;%s&#34;,p-&#62;cant);
  490. gotoxy(18,12);printf(&#34;%s&#34;,p-&#62;valor);
  491. }
  492.  
  493.  
  494. /* -----------------ELIMINA UN REGISTRO DE LA LISTA---------------------- */
  495.  
  496. void elimina(struct nodo *p)
  497. {
  498. flushall();
  499. //fflush(fp);
  500. struct nodo *q;
  501. q = p-&#62;ant;
  502. q-&#62;sig = p-&#62;sig;
  503. p-&#62;sig-&#62;ant = q;
  504. free(p);
  505. // p=q-&#62;sig;
  506. // if (!(cab))
  507. // {
  508. // cab=q-&#62;sig;
  509. // }
  510. }
  511.  
  512. /*-------------------PIDE LOS DATOS CORRESPONDIENTES---------------------*/
  513.  
  514. void agregar()
  515. {
  516. p=alo
  517. flushall();
  518. //fflush(stdin); /* vac¡a el buffer del archivo stdin */
  519. clrscr();
  520. verifica_cod();
  521. gotoxy(18,6);gets(p-&#62;nom_art);
  522. gotoxy(18,8);gets(p-&#62;desc);
  523. gotoxy(18,10);gets(p-&#62;cant);//verifica_cant();
  524. verifica_val();//gotoxy(16,12);gets(p-&#62;valor);
  525. inserta_reg(p);
  526. } /* fin de la funcion */
  527.  
  528.  
  529.  
  530. /*---------VERIFICA SI HAY CARCTERES EN EL CODIGO DEL PRODUCTO-------*/
  531.  
  532. void verifica_cod()
  533. {
  534. int i,jur=0;
  535. char code[10];
  536. struct nodo *aux;
  537. for(;;)
  538. {
  539. //jur=0;
  540. boseto();
  541. gopri(27,2,&#34; REGISTRANDO ARTICULO &#34;);
  542. gotoxy(18,4);gets(p-&#62;codigo);//Pide codigo
  543. for(i=0;i&#60;strlen(p-&#62;codigo);i++)//Verifica hay caracteres en Codigo
  544. {
  545. if(p-&#62;codigo[i]&#62;=48 && p-&#62;codigo[i]&#60;=57)
  546. {
  547. jur++;
  548. }
  549. if((p-&#62;codigo[i]&#60;48 || p-&#62;codigo[i]&#62;57) && (p-&#62;codigo[i]!=164 || p-&#62;codigo[i]!=165)){//else{
  550. gotoxy(9,20);
  551. printf(&#34;TU CODIGO TIENE EL CARACTER %c INTENTA DE NUEVO...&#34;,p-&#62;codigo[i]);
  552. sleep(2);
  553. jur=0;
  554. break;
  555. }
  556. }
  557.  
  558. if(n_art&#62;0)
  559. {
  560. aux=cab;
  561. strcpy(code,p-&#62;codigo);
  562.  
  563. if(aux!=NULL)
  564. {
  565. if(strcmp(code,aux-&#62;codigo)==0)
  566. {
  567. jur=0;
  568. gotoxy(21,20);printf(&#34;EL CODIGO %s YA EXISTE INTENTA DE NUEVO&#34;,aux-&#62;codigo);
  569. sleep(2);
  570. }
  571. if(jur!=0){
  572. aux=aux-&#62;sig;
  573. }
  574. while(aux!=cab && jur!=1)
  575. {
  576. if(strcmp(code,aux-&#62;codigo)==0)
  577. {
  578. jur=0;
  579. gotoxy(21,20);printf(&#34;EL CODIGO %s YA EXISTE INTENTA DE NUEVO&#34;,aux-&#62;codigo);
  580. sleep(2);
  581. break;
  582. }
  583. aux=aux-&#62;sig;
  584. }
  585.  
  586. }
  587. }
  588. if (jur&#62;0){ //si esto se cumple rompe el for(;;)
  589. break;
  590. }
  591. flushall();
  592. }//fin for(;;)
  593. }
  594.  
  595. /*---------VERIFICA SI HAY CARACTERES EN EL VALOR DEL PRODUCTO---------*/
  596.  
  597. void verifica_val()
  598. {
  599. int i,jur=0;
  600. for(;;)
  601. {
  602. boseto();
  603. gopri(27,2,&#34; REGISTRANDO ARTICULO &#34;);
  604. gotoxy(18,4);printf(&#34;%s&#34;,p-&#62;codigo);
  605. gotoxy(18,6);printf(&#34;%s&#34;,p-&#62;nom_art);
  606. gotoxy(18,8);printf(&#34;%s&#34;,p-&#62;desc);
  607. gotoxy(18,10);printf(&#34;%s&#34;,p-&#62;cant);
  608. gotoxy(18,12);gets(p-&#62;valor);
  609. for(i=0;i&#60;strlen(p-&#62;valor);i++)//Verifica hay caracteres en Codigo
  610. {
  611. if((p-&#62;valor[i]&#62;=48 && p-&#62;valor[i]&#60;=57) || (p-&#62;valor[i]==46))
  612. {
  613. jur++;
  614. }
  615. if((p-&#62;valor[i]&#60;48 || p-&#62;valor[i]&#62;57) && (p-&#62;valor[i]!=46) && (p-&#62;valor[i]!=164 || p-&#62;valor[i]!=165)){//else{
  616. gotoxy(13,20);
  617. printf(&#34;DIGITASTE SIN QUERER EL CARACTER %c INTENTA DE NUEVO...&#34;,p-&#62;valor[i]);
  618. sleep(2);
  619. jur=0;
  620. break;
  621. }
  622. }
  623. if (jur&#62;0){ //si esto se cumple rompe el for(;;)
  624. break;
  625. }
  626. flushall();
  627. }//fin for(;;)
  628. }
  629.  
  630.  
  631. /*----------------INSERTA LOS DATOS DE FORMA ORDENADA------------------*/
  632.  
  633. void inserta_reg(struct nodo *p /* nuevo registro a insertar */)
  634. {
  635. fflush(stdin);
  636. struct nodo *aux; /* puntero auxiliar */
  637. aux=cab;
  638. if (cab == NULL) /* insertar el primer registro de una lista */
  639. {
  640. cab = p;
  641. cab-&#62;ant = cab;
  642. ap = p;
  643. ap-&#62;sig = cab;
  644. } else
  645. for (;;)
  646. {
  647. if (strcmp(p-&#62;codigo, aux-&#62;codigo) &#60; 0)
  648. {
  649. if (aux == cab) /* insertar registro al principio de la lista */
  650. {
  651. p-&#62;sig = aux;
  652. p-&#62;ant = ap;
  653. aux-&#62;ant = p;
  654. cab = p;
  655. ap-&#62;sig = p;
  656. break;
  657. }
  658. else
  659. {
  660. p-&#62;ant = aux-&#62;ant; /* insertar registros en el medio de la lista */
  661. p-&#62;sig = aux;
  662. aux-&#62;ant-&#62;sig = p;
  663. aux-&#62;ant = p;
  664. break;
  665. }
  666. }
  667. else{
  668. if (aux-&#62;sig == cab) /* insertar registros al final de la lista */
  669. {
  670. aux-&#62;sig = p;
  671. p-&#62;sig = cab;
  672. cab-&#62;ant = p;
  673. p-&#62;ant = aux;
  674. ap = p;
  675. break;
  676. }
  677. }
  678. aux = aux-&#62;sig;
  679. } /* fin de for(;;) */
  680. n_art++;
  681. guardado=1;
  682. } /* fin de la funci¢n */
  683.  
  684.  
  685. /*-----------MODIFICA LOS TODOS LOS DATOS DEL NODO ACTUAL-------------*/
  686. void modifica(struct nodo *aux)
  687. {
  688. struct nodo info;
  689. char op;
  690. flushall();
  691. fflush(stdin);//o FLUSHALL() LIMPIA EL BUFFER
  692. clrscr();
  693. boseto();
  694. gopri(26,2,&#34; MODIFICANDO LOS DATOS &#34;);
  695. gotoxy(18,4);gets(info.codigo);
  696. gotoxy(18,6);gets(info.nom_art);
  697. gotoxy(18,8);gets(info.desc);
  698. gotoxy(18,10);gets(info.cant);
  699. gotoxy(18,12);gets(info.valor);
  700. for (;;)
  701. {
  702. gotoxy(6,20);
  703. printf(&#34;Seguro que desea realizar los cambios s/n: &#34;);
  704. op = tolower(getch());
  705. if (op == 's')
  706. {
  707. strcpy(aux-&#62;codigo,info.codigo);
  708. strcpy(aux-&#62;nom_art,info.nom_art);
  709. strcpy(aux-&#62;desc,info.desc);
  710. strcpy(aux-&#62;cant,info.cant);
  711. strcpy(aux-&#62;valor,info.valor);
  712. guardado=1;
  713. break;
  714. }else
  715. if (op == 'n')
  716. break;
  717. } /* fin de for(;;) */
  718.  
  719. } /* fin de la funcion */
  720.  
  721.  
  722. /*--------------------FUNCION DE CARGAR EL ARCHIVO---------------------*/
  723. void cargar()
  724. {
  725. flushall();
  726. FILE *fp;
  727. fflush(fp);
  728. cab = p = ap = NULL;
  729. fp = fopen(&#34;pro2002.txt&#34;,&#34;rb&#34;);
  730. rewind(fp); //recorre el archivo y se devuelve al principio del archivo
  731. //if(n_art!=0){
  732. n_art = 0;
  733. for(;;)//while(feof(fp))
  734. {
  735. p = (struct nodo *) malloc (sizeof(struct nodo));
  736. if (fread(p,sizeof(struct nodo),1,fp) != 1)
  737. break;
  738. //n_art++;
  739. inserta_reg(p);
  740. } /* termina for */
  741. // }
  742. fclose(fp);
  743. if (n_art == 0)
  744. {
  745. cab = p = ap = NULL;
  746. }
  747. guardado=0;
  748. }
  749.  
  750.  
  751.  
  752. /*-----------------FUNCION DE GUARDAR EN EL ARCHIVO---------------------*/
  753.  
  754. void guardar()
  755. {
  756. FILE *fp;
  757. int tam;
  758. tam = sizeof(struct nodo);
  759. fp = fopen(&#34;pro2002.txt&#34;,&#34;wb&#34;);
  760. p = cab;
  761. if(n_art&#60;=0)
  762. {
  763. remove(&#34;pro2002.txt&#34;);
  764. }
  765. else{
  766. for (;;)
  767. {
  768. fwrite(p,sizeof(struct nodo),1,fp);
  769. p = p-&#62;sig;
  770. if (p == cab)
  771. break;
  772. }
  773. }
  774. fclose(fp);
  775. guardado=0;
  776. }
  777.  
  778. /*----------BANDERA QUE VERIFICA SI SE HA MODIFICADO LOS DATOS-----------*/
  779.  
  780. void verif_guard()
  781. {
  782. clrscr();
  783. char res;
  784. if(n_art&#62;0)
  785. {
  786. if(guardado==1)
  787. {
  788. for(;;)
  789. {
  790. gopri(10,12,&#34; HAS MODIFICADO ALGUN DATO EN EL ARCHIVO DESEAS GURADAR [S/N] &#34;);
  791. res=tolower(getch());
  792. if(res=='s')
  793. {
  794. guardar();
  795. sonido(150,150);
  796. sonido(350,350);
  797. sonido(550,550);
  798. sonido(750,750);
  799. break;
  800. }
  801. if(res=='n')
  802. {
  803. break;
  804. }
  805. }
  806. }
  807. }
  808. else{
  809. if(n_art&#60;=0)
  810. {
  811. remove(&#34;pro2002.txt&#34;);
  812. }
  813. }
  814. clrscr();
  815. gopri(29,12,&#34; QUE TENGA UN BUEN DIA &#34;);
  816. sleep(2);
  817. clrscr();
  818. gopri(68,25,&#34; By Dare... &#34;);
  819. sleep(1);
  820. }
  821.  
  822.  
  823. /*-------------ENCUENTRA EN NOMBRE SI EXISTE O NO----------------------*/
  824. struct nodo *localiza(char pnombre[])//busca si esta el nombre en la lista...
  825. {
  826. struct nodo *aux;
  827. register char temp2[50];
  828. char temp1[50];
  829.  
  830. aux = cab;
  831. strcpy(temp1,minus(pnombre));
  832.  
  833. do
  834. {
  835. strcpy(temp2,minus(aux-&#62;nom_art));
  836. if (!strcmp(temp1,temp2))
  837. return (aux);
  838. else
  839. aux = aux-&#62;sig;
  840. } while (aux != cab);
  841. return (aux = NULL);
  842. }
  843.  
  844. /*-------------------PASA DE MAYUSCULAS A MINUSCULAS------------------*/
  845.  
  846. char *minus(char nombre[])
  847. {
  848. register int i;
  849. register char *temp;
  850.  
  851. for (i = 0; i &#60;= strlen(nombre) + 1; i++)
  852. temp[i] = tolower(nombre[i]);
  853. return(temp);
  854. }
  855.  
  856. /*------------MUESTRA UN MARCO TEORICO O AYUDA PARA EL USUARIO-----------*/
  857.  
  858. void ayuda()
  859. {
  860. clrscr();
  861. puts(&#34;ADICIONAR:&#34;);
  862. puts(&#34;Codigo = Es el numero de registro que tiene el articulo, solamente puede ser&#34;);
  863. puts(&#34; numerico y unico en la lista.&#34;);
  864. puts(&#34;Nombre = Es el nombre principal del producto.&#34;);
  865. puts(&#34;Descripcion = Es la referencia o descripcion del producto o articulo&#34;);
  866. puts(&#34;Cantidad = Se puede tomar como valor numerico o alfa-numerico, por ejemplo:&#34;);
  867. puts(&#34; 10.000 toneladas, 10.000 pacas, 10.000 bultos, etc.&#34;);
  868. puts(&#34;Valor= Es el valor unitario del articulo dependiendo de la cantidad como se tome&#092;n&#34;);
  869. puts(&#34;MOSTRAR:&#34;);
  870. puts(&#34;Tiene un submenu que le permite al usuario hacer modificaciones, eliminar,&#34;);
  871. puts(&#34;avanzar hacia adelante o atras, como desee el usuario.&#092;n&#34;);
  872. puts(&#34;BUSCAR:&#34;);
  873. puts(&#34;Tiene la flexibilidad de buscar el articulo por el codigo de registro o por el&#34;);
  874. puts(&#34;nombre, no importa si el nombre esta en minusculas o mayusculas de todos modos&#34;);
  875. puts(&#34;lo encuentra.&#092;n&#34;);
  876. puts(&#34;GUARDAR:&#34;);
  877. puts(&#34;Almacena la imformacion digitada en un archivo.&#092;n&#34;);
  878. puts(&#34;SALIR:&#34;);
  879. puts(&#34;Sale del programa y a su vez verifica si el usuario guardo las modificaciones.&#34;);
  880. getch();
  881. }
  882.  
  883.  
  884.  


De antemano gracias  :kicking:

24
C/C++ / Re: Creación De Ficheros En C++
« en: Miércoles 4 de Febrero de 2004, 05:47 »
Weno no comprendí nada sobre lo que hablaron.... y ya entrados en el tema ¿me podrían sacar de dudas? tengo el siguiente codigo...

#include <stdio.h>
#include <conio.h>
main()
{
char nomfich[21];
int n;
FILE *salida;

printf("Nombre del fichero a crear:");
scanf("%20s", nomfich);
salida= fopen(nomfich, "wb");
do
{
 printf("Introduzca un numero:");
 scanf("%d", &n);
 if(n) fwrite (&n, 2, 1, salida);
}
while (n);
fclose(salida);
}

que necesito para que me pueda crear el archivo ????
(es un archivo que me encontré de ejemplo rondandola en inter y no entiendo como hacerlo funcionar)
 :kicking:

25
C/C++ / Re: ¿cómo Se Introducen Funciones Dentro De Otras?
« en: Miércoles 4 de Febrero de 2004, 05:04 »
Según mi profe de lenguajes de programación... NO se pueden introducir funciones dentro de otras esto es posible ?  :huh:

Páginas: [1] 2 3