Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/10/2015, 11:33
pR1899
 
Fecha de Ingreso: abril-2015
Mensajes: 16
Antigüedad: 9 años
Puntos: 0
Respuesta: problema con un trabajo

Código C++:
Ver original
  1. // el main
  2. int main()
  3. {
  4.     comando c;
  5.     Archivo a;
  6.     char nroli[2];
  7.     int nrolinea;
  8.  
  9.     do
  10.     {
  11.         c=leerComando(c);
  12.  
  13.         switch(c.cmdNum)
  14.         {
  15.             case 1: a=CrearArchivo(c.parametro1);
  16.                     break;
  17.             case 2: cout << "BorrarArchivo";
  18.                     break;
  19.             case 3:
  20.                     cout << "InsertarLinea";
  21.                     break;
  22.             case 4: cout << "BorrarLinea";
  23.                     break;
  24.             case 5: mostrartexto(a);
  25.                     break;
  26.             case 6: a=insertarpri(a,c.parametro2);
  27.                     break;
  28.             case 7: cout << endl <<"Saldra del Programa."<< endl;
  29.                     c.cmdNum=7;
  30.                     break;
  31.             default: cout << " El comando ingresado es incorrecto." << endl;
  32.  
  33.         }getchar();
  34.  
  35.     }while(c.cmdNum!=7);
  36.  
  37. }
  38.  
  39.  
  40. //otro cpp
  41. #include <iostream>
  42. #include <stdlib.h>
  43. #include <stdio.h>
  44. #include <string.h>
  45. #include "Cabezales.h"
  46.  
  47. using namespace std;
  48.  
  49. comando leerComando(comando c)
  50. {
  51.     char *p;
  52.     char coman[20];
  53.  
  54.     system("clear");
  55.  
  56.     cout <<">";
  57.     cin >> coman;
  58. //    gets(coman);
  59.  
  60.     p = strtok(coman, "()");
  61.     strcpy(c.cmd, p);
  62.  
  63.  
  64.     if(strcmp(c.cmd, "CrearArchivo")==0)
  65.     {
  66.         c.cmdNum=1;
  67.         p = strtok(NULL, "()");
  68.         strcpy(c.parametro1, p);
  69.     }
  70.     else
  71.     {
  72.         if(strcmp(c.cmd, "BorrarArchivo")==0)
  73.         {
  74.             c.cmdNum=2;
  75.             p = strtok(NULL, "()");
  76.             strcpy(c.parametro1, p);
  77.         }
  78.         else
  79.         {
  80.             if(strcmp(c.cmd, "InsertarLinea")==0)
  81.             {
  82.                 c.cmdNum=3;
  83.                 p = strtok(NULL, "(,,,)");
  84.                 strcpy(c.parametro1, p);
  85.                 p = strtok(NULL, "(,,,)");
  86.                 strcpy(c.parametro2, p);
  87.                 p = strtok(NULL, "(,,,)");
  88.                 strcpy(c.parametro3, p);
  89.             }
  90.             else
  91.             {
  92.                 if(strcmp(c.cmd, "BorrarLinea")==0)
  93.                 {
  94.                     c.cmdNum=4;
  95.                     p = strtok(NULL, "(,,,)");
  96.                     strcpy(c.parametro1, p);
  97.                     p = strtok(NULL, "(,,,)");
  98.                     strcpy(c.parametro3, p);
  99.                 }
  100.                 else
  101.                 {
  102.                     if(strcmp(c.cmd, "MostrarTexto")==0)
  103.                     {
  104.                         c.cmdNum=5;
  105.                         p = strtok(NULL, "(,)");
  106.                         strcpy(c.parametro1, p);
  107.                        /* p = strtok(NULL, "(,)");
  108.                         strcpy(c.parametro2, p);*/
  109.                     }
  110.                     else
  111.                     {
  112.                         if(strcmp(c.cmd, "insertarpri")==0)
  113.                         {
  114.                             c.cmdNum=6;
  115.                             p = strtok(NULL, "(,,)");
  116.                             strcpy(c.parametro1, p);
  117.                             p = strtok(NULL, "(,,)");
  118.                             strcpy(c.parametro2, p);
  119.                            /* p = strtok(NULL, "(,)");
  120.                             strcpy(c.parametro2, p);*/
  121.                         }
  122.                         else
  123.                         {
  124.                             if(strcmp(c.cmd, "Fin")==0)
  125.                             {
  126.                             c.cmdNum=7;
  127.                             }
  128.                             else
  129.                             {
  130.                                 cout << "Error";
  131.                                 getchar();
  132.                             }
  133.                         }
  134.                     }
  135.                 }
  136.             }
  137.         }
  138.     }
  139.  
  140. return c;
  141. }
  142.  
  143.  
  144. Archivo CrearArchivo(char nombre[100])
  145. {
  146.     Archivo a;
  147.     a= new archivo;
  148.     strcpy(a->nombre,nombre);
  149.     a->sig_archivo=NULL;
  150.     a->ptr_linea= new nodolinea;
  151.     a->ptr_linea=NULL;
  152.     cout << "Archivo " << a->nombre << " creado.";
  153.     getchar();
  154.     return a;
  155. }
  156.  
  157. Archivo insertarpri(Archivo a,char line[100])
  158. {
  159.     Archivo recorro;
  160.     recorro=a;
  161.  
  162.     Linea nuevalinea;
  163.     nuevalinea= new nodolinea;
  164.     strcpy(nuevalinea->line,line);
  165.     nuevalinea->sig_linea=NULL;
  166.     recorro->ptr_linea=nuevalinea;
  167.  
  168.     return recorro;
  169. }
  170.  
  171. void mostrartexto(Archivo a)
  172. {
  173.     int x=1;
  174.     Archivo recorro;
  175.     recorro =a;
  176.  
  177.     if(recorro->ptr_linea!=NULL)
  178.     {
  179.         cout << "-Archivo " << recorro->nombre <<"-"<< endl;
  180.  
  181.         while(recorro->ptr_linea != NULL)
  182.         {
  183.             cout << x << " - " << recorro->ptr_linea->line;
  184.             recorro->ptr_linea=(*recorro).ptr_linea->sig_linea;
  185.         }
  186.         getchar();
  187.     }
  188.     else
  189.     {
  190.         cout << "Archivo vacio.";
  191.         getchar();
  192.     }
  193.  
  194. }
  195.  
  196. //y el head
  197.  
  198. #ifndef CABEZALES_H_INCLUDED
  199. #define CABEZALES_H_INCLUDED
  200.  
  201. enum retorno
  202. {
  203.     OK,ERROR,NO_IMPLEMENTADA
  204. };
  205. typedef enum retorno TipoRet;
  206.  
  207. struct comando
  208. {
  209.     char cmd[30], parametro1[30], parametro2[30], parametro3[2];
  210.     int cmdNum;
  211. };
  212.  
  213. struct nodolinea
  214. {
  215.     int nrolinea;
  216.     char line[100];
  217.     struct nodolinea * sig_linea;
  218.  
  219. }; typedef nodolinea * Linea;
  220.  
  221.  
  222. struct archivo
  223. {
  224.     char nombre[100];
  225.     Linea ptr_linea;
  226.     struct archivo * sig_archivo;
  227.  
  228. }; typedef archivo *Archivo;
  229.  
  230. comando leerComando(comando c);
  231.  
  232. int cantidad_lineas(Archivo a);
  233.  
  234. Archivo CrearArchivo(char nombre[100]);
  235. Archivo insertarlinea(Archivo a, char line[100], int nrolinea);
  236. Archivo borrarlinea (Archivo a, int nrolinea);
  237. Archivo borrararchivo(Archivo a, char nombre[100]);
  238. void mostrartexto(Archivo a);
  239.  
  240.  
  241.  
  242. #endif // CABEZALES_H_INCLUDED