• Sábado 14 de Diciembre de 2024, 13:55

Autor Tema:  necesito completar programa  (Leído 765 veces)

michaelbe

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
necesito completar programa
« en: Martes 25 de Noviembre de 2008, 08:40 »
0
ayuda como modificar los archivos y soobreescribir sobre los actales
 por q aun me falta hacer el de busqueda lineal y binaria y modificar la informacion guardada, nomas q aun no c como hacer esas ultimas 3 , si alguien me echara la mano se los agradeceria muchisimo bueno gracias

Código: Text
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4.  
  5. typedef struct nodo{
  6.     char clave[5];
  7.     char nombre[20];
  8.     char apellido[20];
  9.     char edad[5];
  10.     char modelo_arma[20];
  11.     char serial_arma[5];
  12.     struct nodo *sig;
  13.     } LISTA ;
  14.  
  15. LISTA *inicio;
  16.  
  17. void ingresar(void), guardar(void);
  18. void cargar(void), imprimir(void), mostrar(LISTA *info);
  19. void eliminar(LISTA **inicio), insertar(LISTA *nuevo, LISTA **inicio);
  20. char menu(void);
  21. char menu1(void);
  22. char menu2(void);
  23.  
  24. void main(void){
  25.      clrscr();
  26.      inicio=NULL;
  27.      cargar();
  28.      char ver,ver2;
  29.      while(ver!='4')
  30.      {
  31.       fflush(stdin);
  32.       ver=menu();
  33.       switch(ver)
  34.       {
  35.       case '1': ver2='R';
  36.         while(ver2!='4')
  37.         {
  38.         fflush(stdin);
  39.         ver2=menu1();
  40.         switch(ver2)
  41.         {
  42.         case '1': ingresar(); break;
  43.         case '2': eliminar(&inicio); break;
  44.         case '3': imprimir(); break;
  45.         case '4': clrscr(); break;  //Salida
  46.         }
  47.         } break;
  48.       case '2': ver2=1;
  49.         while(ver2!='4')
  50.         {
  51.         fflush(stdin);
  52.         ver2=menu2();
  53.         switch(ver2)
  54.         {
  55.         case '1': clrscr(); //Busqueda Binaria
  56.         case '2': clrscr(); //Busqueda Lineal
  57.         case '4': clrscr(); //Salida
  58.         }
  59.         } break;
  60.       case '4': clrscr(); break;  //Salida
  61.       }
  62.       }
  63.      guardar();
  64. }
  65.  
  66. void cargar(void){
  67.      LISTA *info;
  68.      FILE *fp;
  69.  
  70.      fp=fopen("pro2000.txt","r");
  71.      if(fp==NULL){
  72.     printf("No se puede abrir el archivon");
  73.     return;
  74.     }
  75.      inicio=NULL;
  76.  
  77.      while(!feof(fp)){
  78.      info=(LISTA *) malloc(sizeof(LISTA));
  79.      if(info==NULL){
  80.         printf("No hay memorian");
  81.         return;
  82.         }
  83.  
  84.      if(fread(info, sizeof(LISTA), 1, fp)!=1) break;
  85.      insertar(info, &inicio);
  86.      }
  87.  fclose(fp);
  88. }
  89.  
  90. void guardar(void){
  91.      LISTA *info;
  92.      FILE *fp;
  93.  
  94.      fp=fopen("pro2000.txt","w");
  95.      if(fp==NULL){
  96.     printf("No se puede abrir el archivon");
  97.     exit(1);
  98.     }
  99.  
  100.      info=inicio;
  101.      while(info!=NULL){
  102.       fwrite(info, sizeof(LISTA), 1, fp);
  103.       info=info->sig;
  104.       }
  105.      fclose(fp);
  106. }
  107.  
  108. void imprimir(void){
  109.      LISTA *info;
  110.      info=inicio;
  111.  
  112.      while(info!=NULL){
  113.       mostrar(info);
  114.       info=info->sig;
  115.       }
  116.      printf("n");
  117. }
  118.  
  119. void mostrar(LISTA *info){
  120.       clrscr();
  121.       printf("nLista de clientesn");
  122.       printf("nClave: %sn", info->clave);
  123.       printf("Nombre: %sn", info->nombre);
  124.       printf("Apellido: %sn", info->apellido);
  125.       printf("Edad: %sn", info->edad);
  126.       printf("Modelo del arma: %sn", info->modelo_arma);
  127.       printf("Serial del arma: %sn", info->serial_arma);
  128.  
  129.      }
  130.  
  131. void eliminar(LISTA **inicio){
  132.      LISTA *anterior, *actual, *temp;
  133.      char elemento[5];
  134.      clrscr();
  135.  
  136.      if(*inicio==NULL){
  137.     printf("No hay registrosnn"); return; }
  138.  
  139.      printf("Ingrese dato a eliminar: "); gets(elemento);
  140.  
  141.      if(atoi(elemento)==atoi((*inicio)->clave)){
  142.     temp=*inicio;
  143.     *inicio=(*inicio)->sig;
  144.     free(temp); }
  145.  
  146.      else{
  147.     anterior=*inicio;
  148.     actual=(*inicio)->sig;
  149.  
  150.     while(actual!=NULL && atoi(elemento) != atoi(actual->clave)){
  151.           anterior=actual;
  152.           actual=actual->sig;
  153.           }
  154.  
  155.     if(actual!=NULL){
  156.        temp=actual;
  157.        anterior->sig=actual->sig;
  158.        free(temp); }
  159.  
  160.     else{ printf("El elemento no existenn"); return; }
  161.  
  162.     }
  163.     printf("El elemento ha sido eliminadonn");
  164. }
  165.  
  166. void ingresar(void){
  167.      LISTA *info;
  168.      info=(LISTA *) malloc(sizeof(LISTA));
  169.      clrscr();
  170.  
  171.      if(info==NULL){
  172.     printf("nNo hay memorian"); return; }
  173.  
  174.      printf("Ingrese Clave: "); gets(info->clave);
  175.      printf("Ingrese Nombre: "); gets(info->nombre);
  176.      printf("Ingrese Apellido: "); gets(info->apellido);
  177.      printf("Ingrese Edad: "); gets(info->edad);
  178.      printf("Ingrese modelo del arma: "); gets(info->modelo_arma);
  179.      printf("Ingrese serial del arma: "); gets(info->serial_arma);
  180.      insertar(info, &inicio);
  181.      printf("n");
  182. }
  183.  
  184. void insertar(LISTA *nuevo, LISTA **inicio){
  185.      LISTA *anterior, *actual;
  186.      anterior=NULL;
  187.      actual=*inicio;
  188.  
  189.      while(actual!=NULL && atoi(nuevo->clave) > atoi(actual->clave)){
  190.        anterior=actual;
  191.        actual=actual->sig;
  192.        }
  193.  
  194.      if(anterior==NULL){
  195.     nuevo->sig=*inicio;
  196.     *inicio=nuevo;
  197.     }
  198.  
  199.      else{
  200.        anterior->sig=nuevo;
  201.        nuevo->sig=actual;
  202.        }
  203. }
  204.  
  205. char menu(void){
  206.      char c;
  207.      clrscr();
  208.      printf("nnttt***MENU PRINCIPAL***");
  209.      printf("nt(1) Altas, Bajas y Ver lista nt(2) Busqueda Binaria y Busqueda Lineal nt(4) Salirn");
  210.      printf("ntSeleccion: ");
  211.      c=getche();
  212.      printf("n");
  213.      return(c);
  214.      }
  215.  
  216. char menu1(void){
  217.      char c;
  218.      clrscr();
  219.      printf("nnttt***Altas, Bajas y Ver lista***");
  220.      printf("nt(1) Ingresar nt(2) Eliminar nt(3) Mostrar lista nt(4) Salirn");
  221.      printf("ntSeleccion: ");
  222.      c=getche();
  223.      printf("n");
  224.      return(c);
  225.      }
  226.  
  227. char menu2(void){
  228.      char c;
  229.      clrscr();
  230.      printf("nnttt***Busqueda***");
  231.      printf("nt(1) Busqueda Binaria nt(2) Busqueda Lineal  nt(4) Salirn");
  232.      printf("ntSeleccion: ");
  233.      c=getche();
  234.      printf("n");
  235.      return(c);
  236.      }[code]
[/code]
« última modificación: Miércoles 26 de Noviembre de 2008, 22:44 por michaelbe »

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: funcion no quiere servir y necesito acompletar programa
« Respuesta #1 en: Martes 25 de Noviembre de 2008, 09:24 »
0
Utiliza las etiquetas de código y usa puntuaciones cuando escribes, paso de perder el tiempo descifrando posts.  :argh: