Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <fstream>
  5. #include <sstream>
  6. #include <map>
  7.  
  8. using namespace std;
  9.  
  10. class Columna
  11. {
  12. vector<string> data;
  13. string name;
  14. };
  15.  
  16. typedef map<string, Columna*> colmap;
  17. class Fila
  18. {
  19. int idx;
  20. colmap* cols;
  21. public:
  22.  
  23. Fila(colmap* cols) : cols(cols){}
  24.  
  25. string getData(string name)
  26. {
  27.  
  28. }
  29. };
  30.  
  31. class DataFrame
  32. {
  33. vector<Columna*> columnas;
  34. vector<Fila*> filas;
  35.  
  36. public:
  37.  
  38. void seleccionar(vector<string> cols)
  39. {
  40. DataFrame* df = new DataFrame();
  41.  
  42. for (auto colname : cols)
  43. {
  44. for (auto col : this->columnas)
  45. {
  46. if (col->getName() == colname)
  47. {
  48. df->columnas.push_back(col);
  49. }
  50. }
  51. }
  52. df->filas = this->filas;
  53. }
  54. };
  55.  
  56. void Menu()
  57. {
  58. cout << "[1] Cargar archivo\n"
  59. << "[2] Guardar DataFrame\n"
  60. << "[3] Listar DataFrame\n"
  61. << "[4] Crear DataFrame\n"
  62. << "[5] Mostrar DataFrame\n"
  63. << "[0] Salir\n"
  64. << "\n -- Ingrese una opción [0...5]: ";
  65. }
  66.  
  67. void cargarDF(vector<DataFrame*>& dfs)
  68. {
  69. string name;
  70. cout << "Nombre del archivo: "; cin.get();
  71. getline(cin, name);
  72.  
  73. dfs.push_back(new DataFrame());
  74. }
  75.  
  76. void guardarDF(vector<DataFrame*>& dfs)
  77. {
  78. int i;
  79. string name;
  80.  
  81. do
  82. {
  83. cout << "Seleccione un DF [1.." << dfs.size() << "]: ";
  84. cin >> i; --i;
  85. } while (i < 0 || i >= dfs.size());
  86.  
  87. cout << "Nombre del archivo: "; cin.get();
  88. getline(cin, name);
  89. }
  90.  
  91. void listarDFs(vector<DataFrame*>& dfs)
  92. {
  93. int i = 0;
  94.  
  95. for (auto df : dfs)
  96. {
  97. cout << ++i << "] \n";
  98. }
  99. }
  100.  
  101. DataFrame* seleccionar(DataFrame* df)
  102. {
  103. vector<string> cols;
  104. string col;
  105.  
  106. do
  107. {
  108. cout << "Ingrese columna: "; cin.get();
  109. getline(cin, col);
  110.  
  111. if (col != "")
  112. {
  113. cols.push_back(col);
  114. }
  115. } while (col != "");
  116.  
  117. if (cols.size() > 0)
  118. {
  119. return df.seleccionar(cols);
  120. }
  121. return nullptr;
  122. }
  123.  
  124. DataFrame* filtrar(DataFrame* df) { return nullptr; }
  125. DataFrame* ordenar(DataFrame* df) { return nullptr; }
  126.  
  127. void crearDF(vector<DataFrame*>& dfs)
  128. {
  129. int i;
  130. string name;
  131.  
  132. do
  133. {
  134. cout << "Seleccione un DF [1.." << dfs.size() << "]: "; cin >> i; --i;
  135. } while (i < 0 || i >= dfs.size());
  136.  
  137. char op;
  138.  
  139. do
  140. {
  141. cout << "[1] Seleccionar\n"
  142. << "[2] Filtrar\n"
  143. << "[3] Ordenar\n"
  144. << "[0] Cancelar\n"
  145. << "\n -- Ingrese una opción [0..3]: "; cin >> op;
  146.  
  147. DataFrame* nuevo;
  148.  
  149. switch (op)
  150. {
  151. case '1': nuevo = seleccionar(dfs[i]); break;
  152. case '2': nuevo = filtrar(dfs[i]); break;
  153. case '3': nuevo = ordenar(dfs[i]); break;
  154. }
  155.  
  156. if (nuevo != nullptr)
  157. {
  158. dfs.push_back(nuevo);
  159. }
  160. } while (op != '0');
  161. }
  162.  
  163. void mostrarDF(vector<DataFrame*>& dfs) { }
  164.  
  165. int main()
  166. {
  167. char op;
  168. vector<DataFrame*> dfs;
  169.  
  170. do
  171. {
  172. Menu(); cin >> op;
  173.  
  174. switch (op)
  175. {
  176. case '0': cout << "Bye Bye!"; break;
  177. case '1': cargarDF(dfs); break;
  178. case '2': guardarDF(dfs); break;
  179. case '3': listarDFs(dfs); break;
  180. case '4': crearDF(dfs); break;
  181. case '5': mostrarDF(dfs); break;
  182. }
  183. } while (op != '0');
  184.  
  185. system("pause");
  186. return 0;
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement