• Domingo 22 de Diciembre de 2024, 22:08

Autor Tema:  Mensaje De Errores Help Plis  (Leído 1650 veces)

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Mensaje De Errores Help Plis
« en: Miércoles 4 de Febrero de 2004, 06:18 »
0
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"stdio.h"
  4. #include"conio.h" //Tan feo ke suena si o no&#59;-)
  5. #include"alloc.h" //Tambien suena horrible
  6. #include"ctype.h"
  7. #include"time.h"
  8. #include"dos.h"
  9. #include"process.h"
  10. #include"string.h"
  11. #include"io.h"
  12. #include"dir.h"
  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 > 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("PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION ->> ART_Pako 1.0",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("HAY %d CLASES DE ARTICULOS EN LA LISTA. FECHA Y HORA -> %s",n_art,asctime(tblock));
  124. gopri(27,2," MENU DE ENTRADA ");
  125. color(0,6);
  126. gopri(29,4," ADICIONAR ");
  127. gopri(29,6," MOSTRAR ");
  128. gopri(29,8," BUSCAR ");
  129. gopri(29,10," GUARDAR ");
  130. gopri(29,12," SALIR ");
  131. gopri(29,14," AYUDA ");
  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," ADICIONAR ");
  138. break;
  139. case 2 :gopri(29,6," MOSTRAR ");
  140. break;
  141. case 3 :gopri(29,8," BUSCAR ");
  142. break;
  143. case 4 :gopri(29,10," GUARDAR ");
  144. break;
  145. case 5 :gopri(29,12," SALIR ");
  146. break;
  147. case 6 :gopri(29,14," AYUDA ");
  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>0)
  159. {
  160. p=cab;
  161. if(n_art<2)
  162. {
  163. clrscr();
  164. color(6+BLINK,0);
  165. gotoxy(20,12);
  166. cprintf("PRESIONA FLECHA %c- ¢ -%c, Y PRESIONA",fder,fizq);
  167. gotoxy(20,13);
  168. cprintf("ENTER PARA ESCOJER TU OPCION ART_Pako 1.0");
  169. gotoxy(20,14);
  170. cprintf("PRESIONA CUALQUIER TECLA PARA CONTINUAR");
  171. getch();
  172. }
  173. mostrar();
  174. }
  175. else{
  176. gopri(27,22," NO HAY DATOS QUE MOSTRAR ");
  177. sleep(2);
  178. }
  179. break;
  180. case 3 :if(n_art>0)
  181. {
  182. buscar();
  183. }
  184. else{
  185. gopri(27,22," NO HAY DATOS PARA BUSCAR ");
  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,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
  204. gopri(27,4,"³ ³²²");
  205. gopri(27,5,"³ ³²²±±");
  206. gopri(27,6,"³ ³²²±±°°");
  207. gopri(27,7,"³ ³²²±±°°");
  208. gopri(27,8,"³ ³²²±±°°");
  209. gopri(27,9,"³ ³²²±±°°");
  210. gopri(27,10,"³ ³²²±±°°");
  211. gopri(27,11,"³ ³²²±±°°");
  212. gopri(27,12,"³ ³²²±±°°");
  213. gopri(27,13,"³ ³²²±±°°");
  214. gopri(27,14,"³ ³²²±±°°");
  215. gopri(27,15,"³ ³²²±±°°");
  216. gopri(27,16,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°");
  217. gopri(27,17," ²²²²²²²²²²²²²²²²²²²²²²±±°°");
  218. gopri(27,18," ±±±±±±±±±±±±±±±±±±±±±±°°");
  219. gopri(27,19," °°°°°°°°°°°°°°°°°°°°°°");
  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("PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION ->> ART_Pako 1.0",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," MENU DE BUSQUEDA ");
  246. color(0,6);
  247. gopri(30,4," POR CODIGO ");
  248. gopri(30,6," POR NOMBRE ");
  249. gopri(30,8," SALIR ");
  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," POR CODIGO ");
  256. break;
  257. case 2 :gopri(30,6," POR NOMBRE ");
  258. break;
  259. case 3 :gopri(30,8," SALIR ");
  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<1)
  271. {
  272. gopri(12,22," SE ELIMINARON TODOS LOS DATOS ");
  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<1)
  281. {
  282. gopri(12,22," SE ELIMINARON TODOS LOS DATOS ");
  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,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
  296. gopri(28,4,"³ ³²²");
  297. gopri(28,5,"³ ³²²±±");
  298. gopri(28,6,"³ ³²²±±°°");
  299. gopri(28,7,"³ ³²²±±°°");
  300. gopri(28,8,"³ ³²²±±°°");
  301. gopri(28,9,"³ ³²²±±°°");
  302. gopri(28,10,"³ ³²²±±°°");
  303. gopri(28,11,"³ ³²²±±°°");
  304. gopri(28,12,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°");
  305. gopri(28,13," ²²²²²²²²²²²²²²²²²²²±±°°");
  306. gopri(28,14," ±±±±±±±±±±±±±±±±±±±°°");
  307. gopri(28,15," °°°°°°°°°°°°°°°°°°°");
  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("Codigo a buscar: ");
  318. gets(code);
  319. p=cab;
  320. /*if(p!=NULL)
  321. {
  322. if(strcmp(code,p->codigo)==0)
  323. {
  324. jur=1;
  325. }
  326. if(jur!=1){
  327. p=p->sig;
  328. }*/
  329. while(p->sig!=cab && jur!=1)
  330. {
  331. if(strcmp(code,p->codigo)==0)
  332. {
  333. jur=1;
  334. break;
  335. }
  336. p=p->sig;
  337. }
  338. //}
  339. if(jur==1)
  340. {
  341. mostrar();
  342. }
  343. if(jur!=1)
  344. {
  345. gotoxy(12,17);printf("EL CODIGO %s NO EXISTE INTENTA POR EL NOMBRE",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("Nombre a buscar: ");
  359. gets(code);
  360. //-----------------------------------
  361. aux=localiza(code);
  362. if(aux){
  363. p=aux;
  364. mostrar();
  365. }
  366. else{
  367. gotoxy(12,17);printf("EL NOMBRE %s NO EXISTE INTENTA POR EL CODIGO",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<=0)
  385. {
  386. clrscr();
  387. gopri(25,12," SE ELIMINARON TODOS LOS DATOS ");
  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," MOSTRANDO ARTICULOS CON SUS OPCIONES CORRESPONDIENTES ");
  397. color(0,6);
  398. gopri(1,24,"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ");
  399. gopri(2,25," SIGUIENTE ANTERIOR ELIMINAR MODIFICAR SALIR ");
  400. d=1;
  401. c=1;
  402. do{
  403. //color(6+BLINK,0);
  404. //gopri(8,3," MENU DE BUSQUEDA ");
  405. color(0,6);
  406. gopri(6,25," SIGUIENTE ");
  407. gopri(20,25," ANTERIOR ");
  408. gopri(33,25," ELIMINAR ");
  409. gopri(46,25," MODIFICAR ");
  410. gopri(61,25," SALIR ");
  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," SIGUIENTE ");
  418. break;
  419. case 2 :gopri(20,25," ANTERIOR ");
  420. break;
  421. case 3 :gopri(33,25," ELIMINAR ");
  422. break;
  423. case 4 :gopri(46,25," MODIFICAR ");
  424. break;
  425. case 5 :gopri(61,25," SALIR ");
  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->sig;
  435. boseto();
  436. listar_act_nodo();
  437. break;
  438. case 2 :p=p->ant;
  439. boseto();
  440. listar_act_nodo();
  441. break;
  442. case 3 : gotoxy(10,20);
  443. printf("Esta totalmente seguro de eliminar estos datos si(S), no(N):");
  444. elim=tolower(getch());
  445. if (elim=='s')
  446. {
  447. elimina(p);
  448. n_art--;
  449. guardado=1;
  450. if(n_art>0)
  451. {
  452. p=p->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,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
  468. gopri(2,4,"³ Codigo: ³±±");
  469. gopri(2,5,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
  470. gopri(2,6,"³ Nombre: ³±±");
  471. gopri(2,7,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
  472. gopri(2,8,"³ Descripci¢n: ³±±");
  473. gopri(2,9,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
  474. gopri(2,10,"³ Cantidad: ³±±");
  475. gopri(2,11,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
  476. gopri(2,12,"³ Valor: ³±±");
  477. gopri(2,13,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±");
  478. gopri(2,14," ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±");
  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("%s",p->codigo);
  487. gotoxy(18,6);printf("%s",p->nom_art);
  488. gotoxy(18,8);printf("%s",p->desc);
  489. gotoxy(18,10);printf("%s",p->cant);
  490. gotoxy(18,12);printf("%s",p->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->ant;
  502. q->sig = p->sig;
  503. p->sig->ant = q;
  504. free(p);
  505. // p=q->sig;
  506. // if (!(cab))
  507. // {
  508. // cab=q->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->nom_art);
  522. gotoxy(18,8);gets(p->desc);
  523. gotoxy(18,10);gets(p->cant);//verifica_cant();
  524. verifica_val();//gotoxy(16,12);gets(p->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," REGISTRANDO ARTICULO ");
  542. gotoxy(18,4);gets(p->codigo);//Pide codigo
  543. for(i=0;i<strlen(p->codigo);i++)//Verifica hay caracteres en Codigo
  544. {
  545. if(p->codigo[i]>=48 && p->codigo[i]<=57)
  546. {
  547. jur++;
  548. }
  549. if((p->codigo[i]<48 || p->codigo[i]>57) && (p->codigo[i]!=164 || p->codigo[i]!=165)){//else{
  550. gotoxy(9,20);
  551. printf("TU CODIGO TIENE EL CARACTER %c INTENTA DE NUEVO...",p->codigo[i]);
  552. sleep(2);
  553. jur=0;
  554. break;
  555. }
  556. }
  557.  
  558. if(n_art>0)
  559. {
  560. aux=cab;
  561. strcpy(code,p->codigo);
  562.  
  563. if(aux!=NULL)
  564. {
  565. if(strcmp(code,aux->codigo)==0)
  566. {
  567. jur=0;
  568. gotoxy(21,20);printf("EL CODIGO %s YA EXISTE INTENTA DE NUEVO",aux->codigo);
  569. sleep(2);
  570. }
  571. if(jur!=0){
  572. aux=aux->sig;
  573. }
  574. while(aux!=cab && jur!=1)
  575. {
  576. if(strcmp(code,aux->codigo)==0)
  577. {
  578. jur=0;
  579. gotoxy(21,20);printf("EL CODIGO %s YA EXISTE INTENTA DE NUEVO",aux->codigo);
  580. sleep(2);
  581. break;
  582. }
  583. aux=aux->sig;
  584. }
  585.  
  586. }
  587. }
  588. if (jur>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," REGISTRANDO ARTICULO ");
  604. gotoxy(18,4);printf("%s",p->codigo);
  605. gotoxy(18,6);printf("%s",p->nom_art);
  606. gotoxy(18,8);printf("%s",p->desc);
  607. gotoxy(18,10);printf("%s",p->cant);
  608. gotoxy(18,12);gets(p->valor);
  609. for(i=0;i<strlen(p->valor);i++)//Verifica hay caracteres en Codigo
  610. {
  611. if((p->valor[i]>=48 && p->valor[i]<=57) || (p->valor[i]==46))
  612. {
  613. jur++;
  614. }
  615. if((p->valor[i]<48 || p->valor[i]>57) && (p->valor[i]!=46) && (p->valor[i]!=164 || p->valor[i]!=165)){//else{
  616. gotoxy(13,20);
  617. printf("DIGITASTE SIN QUERER EL CARACTER %c INTENTA DE NUEVO...",p->valor[i]);
  618. sleep(2);
  619. jur=0;
  620. break;
  621. }
  622. }
  623. if (jur>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->ant = cab;
  642. ap = p;
  643. ap->sig = cab;
  644. } else
  645. for (;;)
  646. {
  647. if (strcmp(p->codigo, aux->codigo) < 0)
  648. {
  649. if (aux == cab) /* insertar registro al principio de la lista */
  650. {
  651. p->sig = aux;
  652. p->ant = ap;
  653. aux->ant = p;
  654. cab = p;
  655. ap->sig = p;
  656. break;
  657. }
  658. else
  659. {
  660. p->ant = aux->ant; /* insertar registros en el medio de la lista */
  661. p->sig = aux;
  662. aux->ant->sig = p;
  663. aux->ant = p;
  664. break;
  665. }
  666. }
  667. else{
  668. if (aux->sig == cab) /* insertar registros al final de la lista */
  669. {
  670. aux->sig = p;
  671. p->sig = cab;
  672. cab->ant = p;
  673. p->ant = aux;
  674. ap = p;
  675. break;
  676. }
  677. }
  678. aux = aux->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," MODIFICANDO LOS DATOS ");
  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("Seguro que desea realizar los cambios s/n: ");
  704. op = tolower(getch());
  705. if (op == 's')
  706. {
  707. strcpy(aux->codigo,info.codigo);
  708. strcpy(aux->nom_art,info.nom_art);
  709. strcpy(aux->desc,info.desc);
  710. strcpy(aux->cant,info.cant);
  711. strcpy(aux->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("pro2002.txt","rb");
  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("pro2002.txt","wb");
  760. p = cab;
  761. if(n_art<=0)
  762. {
  763. remove("pro2002.txt");
  764. }
  765. else{
  766. for (;;)
  767. {
  768. fwrite(p,sizeof(struct nodo),1,fp);
  769. p = p->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>0)
  785. {
  786. if(guardado==1)
  787. {
  788. for(;;)
  789. {
  790. gopri(10,12," HAS MODIFICADO ALGUN DATO EN EL ARCHIVO DESEAS GURADAR [S/N] ");
  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<=0)
  810. {
  811. remove("pro2002.txt");
  812. }
  813. }
  814. clrscr();
  815. gopri(29,12," QUE TENGA UN BUEN DIA ");
  816. sleep(2);
  817. clrscr();
  818. gopri(68,25," By Dare... ");
  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->nom_art));
  836. if (!strcmp(temp1,temp2))
  837. return (aux);
  838. else
  839. aux = aux->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 <= 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("ADICIONAR:");
  862. puts("Codigo = Es el numero de registro que tiene el articulo, solamente puede ser");
  863. puts(" numerico y unico en la lista.");
  864. puts("Nombre = Es el nombre principal del producto.");
  865. puts("Descripcion = Es la referencia o descripcion del producto o articulo");
  866. puts("Cantidad = Se puede tomar como valor numerico o alfa-numerico, por ejemplo:");
  867. puts(" 10.000 toneladas, 10.000 pacas, 10.000 bultos, etc.");
  868. puts("Valor= Es el valor unitario del articulo dependiendo de la cantidad como se tome\n");
  869. puts("MOSTRAR:");
  870. puts("Tiene un submenu que le permite al usuario hacer modificaciones, eliminar,");
  871. puts("avanzar hacia adelante o atras, como desee el usuario.\n");
  872. puts("BUSCAR:");
  873. puts("Tiene la flexibilidad de buscar el articulo por el codigo de registro o por el");
  874. puts("nombre, no importa si el nombre esta en minusculas o mayusculas de todos modos");
  875. puts("lo encuentra.\n");
  876. puts("GUARDAR:");
  877. puts("Almacena la imformacion digitada en un archivo.\n");
  878. puts("SALIR:");
  879. puts("Sale del programa y a su vez verifica si el usuario guardo las modificaciones.");
  880. getch();
  881. }
  882.  
  883.  
  884.  


De antemano gracias  :kicking:
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Mensaje De Errores Help Plis
« Respuesta #1 en: Miércoles 4 de Febrero de 2004, 06:26 »
0
Porcierto toy utilizando Borland C/C++ de compilador.... sorry  :P
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.

franc

  • Miembro MUY activo
  • ***
  • Mensajes: 157
    • Ver Perfil
Re: Mensaje De Errores Help Plis
« Respuesta #2 en: Miércoles 4 de Febrero de 2004, 23:24 »
0
que version ?

dadevil_g

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Mensaje De Errores Help Plis
« Respuesta #3 en: Viernes 6 de Febrero de 2004, 08:09 »
0
Es el borland C++ 5.02  :blink:
Salu2....  \"UN PROBLEMA A LA VEZ\"; empieza por lo sencillo, luego te verás haciendo lo imposible.