elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 49
71  Programación / Programación C/C++ / Re: Obtener primer integer de cada linea en: 29 Noviembre 2010, 17:24 pm
¿Y se puede saber porqué no te gustan?
72  Programación / Programación C/C++ / Re: Gestión de horas de trabajo en: 28 Noviembre 2010, 21:03 pm
Bueno, adjunto aquí los archivos para el que los quiera ver. Se aceptan críticas, solo tengan en cuenta que obviamente no está terminado, es mi primer programa "interesante" y que no voy a la uni todavía, aprendí todo por la pc.
Me gustaría más que nada que me dijeran qué se podría optimizar/mejorar en el código. ;-)

main.cpp
Código
  1. //
  2. // Name: AdPa
  3. // Version: 0.9
  4. // Description: Prints out hours as many hours as you worked in a file and gives you the total amount
  5. // that you will get.
  6. // Author: (c) Leo Juszkiewicz <leo.jr90@yahoo.com>
  7. // License: Freeware
  8. //
  9.  
  10. #include "stdafx.h"
  11. #include <iostream>
  12. #include "Functions.h"
  13. #include <fstream> // file i/o
  14. #include <windows.h> // Sleep()
  15. #include <string>
  16. #include <cstdio> // remove()
  17. #include <ctime>
  18. #include <iomanip>
  19. #include <vector>
  20.  
  21. using namespace std;
  22.  
  23. const double versionPrograma = 0.9;
  24.  
  25. int main()
  26. {
  27. const char nombArchivo[] = "horas.txt";
  28. system("title AdPa ");
  29. system("COLOR 1E");
  30. do
  31. {
  32. system("cls");
  33. /*char fecha[9];
  34. _strdate_s(fecha);
  35. cout << fecha << endl;*/
  36. Raya();
  37. cout << "\t\tBienvenido a AdPa " << versionPrograma << endl;
  38. Raya();
  39.  
  40. cout << endl << "Selecciona una opcion: " << endl;
  41. cout << endl << "\t 1. Agregar horas" << endl;
  42. cout << endl << "\t 2. Ver archivo" << endl;
  43. cout << endl << "\t 3. Eliminar archivo" << endl;
  44. cout << endl << "\t 4. Hacer cuenta total" << endl;
  45. cout << endl << "\t 5. Licencia" << endl;
  46. cout << endl << "\t 6. SALIR" << endl << endl;
  47. cin >> Opcion;
  48.  
  49.  
  50.  
  51. switch (Opcion)
  52. {
  53.  
  54. case 1:
  55. {
  56.  
  57. int nuevo = 0;
  58. // Primero leemos para ver si existe o no
  59. ifstream Archivo(nombArchivo);
  60. if (Archivo)
  61. {
  62. cout << "\nArchivo existente... Abriendo para escritura" << endl << endl;
  63. // No escribir "titulo"
  64. nuevo = 1;
  65. }
  66. Archivo.close();
  67.  
  68. ofstream escrArchivo(nombArchivo, ios::app);
  69.  
  70. char tiempo[25];
  71.  
  72. cout << "\nCuantas horas trabajaste hoy? (ej. 8 7.00-15.00)" << endl;
  73. cin.ignore();
  74. cin.getline(tiempo, 25);
  75.  
  76. // Si no existe, escribir esto...
  77. if(nuevo == 0)
  78. {
  79. escrArchivo << "Horas\t Horario" << endl;
  80. escrArchivo << "-----------------------------------" << endl;
  81. }
  82.  
  83. // Escribe las horas en el archivo
  84. for(unsigned int i = 0; i < strlen(tiempo); i++)
  85. {
  86. if(tiempo[i] == ' ')
  87. tiempo[i] = '\t';
  88.  
  89. escrArchivo << tiempo[i];
  90. }
  91.  
  92. // Nueva linea para la proxima vez
  93. escrArchivo << endl;
  94.  
  95. escrArchivo.close();
  96. Final();
  97. }
  98. break;
  99.  
  100. case 2:
  101. {
  102. ifstream lee;
  103. lee.open(nombArchivo);
  104. if (!lee)
  105. {
  106. cout << "\nERROR. El archivo no existe (lo renombraste/eliminaste?)" << endl << endl;
  107. Sleep(4000);
  108. break;
  109. }
  110. cout << endl << "Quieres ver el archivo en la consola (1 - aqui) o en notepad (2)?" << endl;
  111. int verArch = -1;
  112. cin >> verArch;
  113.  
  114. // Notepad
  115. if(verArch == 2)
  116. {
  117. system(nombArchivo);
  118. }
  119. else
  120. {
  121. while(lee)
  122. {
  123. std::string Archivo;
  124. getline(lee, Archivo);
  125. cout << Archivo << endl;
  126. // Paramos el programa para que se pueda ver el archivo en consola
  127. cin.get();
  128. }
  129. lee.close();
  130. }
  131.  
  132. Final();
  133. }
  134. break;
  135.  
  136. case 3:
  137. {
  138. ifstream eliminaArch(nombArchivo);
  139. if(eliminaArch.fail())
  140. {
  141. cerr << "El archivo no existe! (Que querias eliminar?)" << endl;
  142. Sleep(5000);
  143. }
  144. else
  145. {
  146. cout << "Estas seguro/a que quieres eliminar el archivo? (S - Si | N - No)" << endl;
  147. char elim = '0';
  148. cin >> elim;
  149.  
  150. if(elim == 'S' || elim == 's')
  151. {
  152. eliminaArch.close();
  153. cout << endl << "Eliminando... " << endl;
  154. ProgressBar();
  155. Sleep(1000);
  156.  
  157. if (remove(nombArchivo) != 0)
  158. cout << endl << "Hubo un error tratando de eliminar el archivo" << endl;
  159. else
  160. cout << "ELIMINADO" << endl;
  161. }
  162. }
  163.  
  164. eliminaArch.close();
  165.  
  166. Final();
  167. }
  168. break;
  169.  
  170. case 4:
  171. {
  172. // Si no se puede abrir, ni siquiera escribas...
  173. ifstream haceCuenta(nombArchivo);
  174. if (!haceCuenta)
  175. {
  176. cerr << "ERROR. No se puede abrir el archivo o no existe" << endl;
  177. Sleep(4000);
  178. break;
  179. }
  180. cout << "Cuanto cobras por hora? (solo se guardara en el archivo, nadie se enterara ;) )" << endl;
  181. float cobroHora;
  182. cin >> cobroHora;
  183. if(cobroHora <= 20.70)
  184. cout << endl << "Bueno, como los ishiros. Hay que ponerse a estudiar!" << endl;
  185. else if(cobroHora > 20.70 && cobroHora < 25.0)
  186. cout << endl <<  "Sueldo razonable" << endl;
  187. else if(cobroHora > 25.0)
  188. cout << endl <<  "Ojala todos cobraran eso" << endl;
  189.  
  190.  
  191. vector<int> vint;
  192. int n;
  193. string str;
  194. while(!haceCuenta.eof() && !haceCuenta.fail())
  195. {
  196. if(!isdigit(haceCuenta.peek()))
  197. {
  198. getline(haceCuenta, str);
  199. continue;
  200. }
  201. haceCuenta >> n;
  202. vint.push_back(n);
  203. getline(haceCuenta, str);
  204. }
  205. if(!haceCuenta.eof())
  206. {
  207. cout << "Error leyendo el archivo" << endl;
  208. return -1;      
  209. }
  210. int totalHoras=0;
  211. for(vector<int>::size_type x=0; x<vint.size(); ++x)
  212. {
  213. cout << setw(2) << vint[x] << endl;
  214. totalHoras += vint[x];
  215. }
  216. cout << endl << "Haciendo cuenta... " << endl;
  217. ProgressBar();
  218. Sleep(1000);
  219. ofstream escribe (nombArchivo, ios::app);
  220. escribe << endl << "----------------------------" << endl;
  221. escribe << "TOTAL HORAS: " << totalHoras << endl;
  222. escribe << "HORA: " << cobroHora << " shekel" << endl;
  223. escribe << "SUELDO TOTAL: " << static_cast<float>(totalHoras * cobroHora) << " shekel";
  224.  
  225. cout << "HORAS: " << totalHoras << endl;
  226. cout << "SUELDO TOTAL: " << static_cast<float>(totalHoras * cobroHora) << endl;
  227.  
  228.  
  229. Final();
  230. }
  231. break;
  232.  
  233. case 5:
  234. system("cls");
  235. system("COLOR A");
  236. Raya();
  237. cout << "\a\t\t\tLICENCIA" << endl;
  238. Raya();
  239. //setlocale(LC_ALL, "spanish");
  240. cout << "AdPa " << versionPrograma <<
  241. " es freeware, lo cual implica que es distribuido gratuitamente. " <<
  242. "\nPuedes copiar, distribuir, modificar (si sabes, claro) total o parcialmente" <<
  243. " este programa, siempre y cuando reserves derechos de autor.\n\n" <<
  244. "\nDudas? Sugerencias? Escribeme... <leo.jr90@yahoo.com>\n\n" <<
  245. "\t (c) Leonardo Juszkiewicz";
  246. cin.ignore();
  247. cin.get();
  248. break;
  249.  
  250. default:
  251. // Si presiona 6 (salir) no mostrar esto
  252. cin.ignore();
  253. if(Opcion != 6)
  254. {
  255. cerr << "Opcion no valida";
  256. Sleep(4000);
  257. }
  258. break;
  259.  
  260. }
  261.  
  262. } while(Opcion != 6);
  263.  
  264. cout << endl << "Gracias por usar AdPa " << versionPrograma << endl;
  265. Sleep(2500);
  266.  
  267. return 0;
  268. }

Functions.h
Código
  1. // Funciones y declaraciones de ellas para main.cpp
  2. #ifndef FUNC_H
  3. #define FUNC_H
  4.  
  5.  
  6. #include "stdafx.h"
  7. #include <iostream>
  8. #include <windows.h>
  9.  
  10. using namespace std;
  11.  
  12. int Opcion = 400;
  13.  
  14. // Imprime una raya para dividir (-)
  15. void Raya()
  16. {
  17. for(int i = 0; i <= 60; i++)
  18. {
  19. cout << "-";
  20.  
  21. if (i == 60)
  22. cout << endl;
  23. }
  24. }
  25.  
  26. // Progress bar
  27. void ProgressBar()
  28. {
  29. char cargador[] = {'\\','|','/','-','|'};
  30.  
  31. for(int i = 0; i < 3; i++)
  32. {
  33. for(int j = 0; j < 5; j++)
  34. {
  35. cout << cargador[j] << "\r";
  36. Sleep(100);
  37. }
  38. }
  39.  
  40. }
  41.  
  42.  
  43. // Mensaje al final de la operacion
  44. void Final()
  45. {
  46. cout << endl << "\n[Presiona 6 para salir. Una tecla diferente para otra operacion]" << endl;
  47. cin >> Opcion;
  48. }
  49.  
  50. #endif
73  Programación / Programación C/C++ / Re: Obtener primer integer de cada linea en: 28 Noviembre 2010, 20:57 pm
Bueno pongo el código:
Código
  1. vector<int> vint;
  2. int n;
  3. string str;
  4. while(!haceCuenta.eof() && !haceCuenta.fail())
  5. {
  6. if(!isdigit(haceCuenta.peek()))
  7. {
  8. getline(haceCuenta, str);
  9. continue;
  10. }
  11. haceCuenta >> n;
  12. vint.push_back(n);
  13. getline(haceCuenta, str);
  14. }
  15. if(!haceCuenta.eof())
  16. {
  17. cout << "Error leyendo el archivo" << endl;
  18. return -1;      
  19. }
  20. int totalHoras=0;
  21. for(vector<int>::size_type x=0; x<vint.size(); ++x)
  22. {
  23. cout << setw(2) << vint[x] << endl;
  24. totalHoras += vint[x];
  25. }
74  Programación / Programación C/C++ / Re: [C] !!! Hacer un programa multiplataforma con ifdef !!! en: 28 Noviembre 2010, 19:08 pm
Código
  1. #ifdef __WIN32__
  2. system("cls");
  3. #elif defined __LINUX__
  4. system("clear");
  5. #endif
  6.  

O también puede ser WINBUILD (en vez de __WIN32__) y LINUX (en vez de __LINUX__), depende el compilador.
75  Programación / Programación C/C++ / Re: Corregir ejercicio CEREALES en: 28 Noviembre 2010, 19:02 pm
Y también seguro tendrás un warning porque pierdes los decimales por guardar la cantidad en un int y no en un double.
76  Seguridad Informática / Hacking Wireless / Re: Conectarse a una red después de que pusieron clave en: 24 Noviembre 2010, 10:47 am
Troyano no lo creo porque las 3 pc's están bien (una de ellas acaba de ser formateada). La contraseña es alfanumérica (hexadecimal para ser exacto).
Intentaré esconderla, pero ¿qué es lo de la dirección MAC?. Vi la opción pero como no entiendo, no toqué.
77  Programación / Programación General / Re: Lenguajes de Programacion en: 23 Noviembre 2010, 21:54 pm
En cuanto a lo de en qué lenguaje empezar a programar... yo en la facultad empecé con C++... pero la verdad esque es un lenguaje poco útil, para lo complicado que es... así que apoyo la sabiduría popular diciendote que empieces con python, y que no te desanimes :)
Poco útil no, en C++ se puede hacer de todo, pero como dices es un poco complicado (a comparación de VB o Python).
78  Sistemas Operativos / GNU/Linux / Re: Algun MSN? en: 23 Noviembre 2010, 21:45 pm
eMeSeNe me va muy bien (tengo Gentoo). Si nada te anda, intenta los clientes web tipo meebo, ebuddy...

¿Podrías ejecutar los programas (emesene, amsn, kmess...) desde la consola y poner la salida acá?
79  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Poner cuadro de Busqueda rápida en todas las páginas en: 23 Noviembre 2010, 21:19 pm
Si sería en ajax al estilo facebook estaría genial. :D
80  Programación / Programación General / Re: Cual crees que es la mejor forma de aprender programacion? en: 23 Noviembre 2010, 20:42 pm
Programando, leyendo (libros, pdf's no importa qué), preguntando en foros.
Páginas: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 49
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines