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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Relaciones diagramas UML a JAVA (código) en: 14 Agosto 2020, 10:53 am
Hola buenos días, intento tratar de entender las relaciones de clases con UML hasta alli todo bien, el problema empieza cuando tengo las cardinalidades *(muchos) entre dos clases, el problema es que no entiendo donde se deberá declarar el array y luego como utilizarlo, no se si depende de la relación si es agregación o compuesta va de una forma u otra.

un ejemplo:

tengo clase hotel
tengo clase cliente
tengo clase reservas

Un cliente solo puede estar en un hotel, mientras que un hotel puede tener muchos clientes la cardinalidad es 1...*

Un cliente puede hacer una reserva, mientras que una reserva la pueden hacer muchos clientes la cardinalidad 1..*

Un hotel puede tener muchas reservas, mientras que una reserva solo puede estar en un hotel la cardinalidad 1...*

pues necesito entender donde va el array y como se utiliza luego, otra duda que tengo en una relación de composición como es en este caso cliente-hotel la clase cliente se deberá declarar en la clase hotel?? entiendo que si porque al ser composición si la clase hotel se elimina cliente también desaparecerá no? si estoy diciendo alguna barbaridad me lo deciis sin problemas, ya que estoy empezando con java.

Espero que alguien me pueda indicar alguna pagina web o con un ejemplo practico para poderlo entender.

Muchas gracias.

Saludos.
2  Programación / Programación C/C++ / Re: Pasar datos de una función a otra en: 21 Julio 2020, 10:37 am
Buenas K-YreX, te agradezco una vez más por ayudarme, la cuestión es que me piden que el programa sea modular, estás funciones la función pingMediaDNS la hice en la pasada práctica para que se introducirán las DNS con un scanf (creo que me he explicado mal) con la entrada manual toda va bien, pero ahora me piden que no sea una entrada por teclado si no que se leerá desde el fichero, claro de alguna manera ahora yo tengo que pasar el valor que está leyendo la función ipContestan para pasarla a pingMediaDNS que será el valor leído del fichero, de esta manera no debería tocar ni la función ni nada ya que de la lectura del archivo devolvería el dato que le tengo que pasar a la función pingMediaDNS que es el Char*DNS, tal vez la función está mal planteada para el propósito de modulación o mi pensamiento es erróneo al hacerlo de esta manera, ando bastante perdido y seguro que me estoy complicando la vida.

Muchas gracias
Saludos
3  Programación / Programación C/C++ / Pasar datos de una función a otra en: 20 Julio 2020, 17:11 pm
Buenas a ver si alguien me puede ayudar, en esta función para resumir simplemente lo que hace es abrir el ficheroIpOK.txt donde contienen las ips y las muestra por pantalla, ahora tengo una segunda función que se llama pingMediaDNS, está función esta preparada para la inserción de una ip dns por teclado (scanf) pero ahora necesito que la función ipContestan le envie el valor que lee del fichero para que haga la media del ping, no se si me explico bien.

Muchas gracias.
saludos.

Código
  1. void ipContestan() {
  2.  
  3. char lectura[800];
  4.  
  5. char ruta[] = "ficheroIpOK.txt";
  6.  
  7.  
  8. FILE* ficheroIpOK; // Declaramos el nuevo fichero
  9. ficheroIpOK = fopen(ruta, "r"); // Abrimos el fichero en el modo de añadir
  10. if (ficheroIpOK == NULL) {
  11. printf("Error al abrir el fichero ficheroIpOK");
  12. }
  13. else
  14. {
  15. printf("*********************************Lectura de fichero %s********************************\n",ruta);
  16.  
  17. while (fgets(lectura, 100, ficheroIpOK)!=NULL) {
  18. printf("%s", lectura);
  19.  
  20.  
  21. }
  22.  
  23. }
  24. fclose(ficheroIpOK);
  25.  
  26. }
  27.  
  28. int pingMediaDNS(char* dns, const char* rutaFichero) {
  29.  
  30. char command[100];
  31. char dnsRuta[100];
  32. char lectura[100];
  33. char mediaMs[100];
  34. bool pingOK = false;
  35. int length, newlength, j = 0, media = -1;
  36.  
  37.  
  38. /* Construcción del comando ping para los dns introducidos*/
  39.  
  40. strcpy(command, "ping -n 10 "); // Copiamos ping -n 10 a command <<El parametro de -n es para el número de pings totales>>
  41. strcat(command, dns); // concatenamos ping -n 10 + dns
  42. strcat(command, " > "); // concatenamos > a ping -n 10 + dns
  43. strcpy(dnsRuta, rutaFichero); // Copiamos la ruta del fichero dns1.txt o dns2,txt a dnsruta
  44. strcat(command, dnsRuta); // concatenamos dnsruta a ping -n 10 + dns + > + dnsruta
  45. system(command); // Ejecutamos el comando ya construido
  46.  
  47. FILE* ficheroDns;
  48. ficheroDns = fopen(rutaFichero, "r");
  49. if (ficheroDns == NULL) {
  50. printf("El fichero %s no existe o no se puede abrir", rutaFichero);
  51. }
  52. else {
  53. while (fscanf(ficheroDns, "%s", lectura) != EOF)
  54. {
  55. if (strstr(lectura, "Media") != NULL) {
  56. pingOK = true;
  57. }
  58. }
  59. length = strlen(lectura);
  60. newlength = length - 2;
  61. for (int i = 0; i < newlength; i++)
  62. {
  63. mediaMs[j++] = lectura[i];
  64. }
  65. mediaMs[j] = '\0';
  66. media = -1;
  67. media = atoi(mediaMs);
  68.  
  69. if (pingOK) {
  70. printf("\nPing correcto %s \n", dns);
  71. }
  72. else
  73. {
  74. printf("\nPing incorrecto %s \n", dns);
  75. }
  76. }
  77. return(media);
  78. }
  79.  
  80.  
  81.  
4  Programación / Programación C/C++ / Re: Ayuda Run-time Failure stack around the variable ping was corrupted en: 2 Julio 2020, 15:35 pm
Hola YreX-DwX ante todo muchas gracias por invertir parte de tu tiempo para que los demás también podemos ir aprendiendo, he aplicado la parte de lectura con el código de ejemplo pero antes de llegar allí como bien dices no contempló el fin de cadena de la IP \0 y le añadido uno más para que pueda obtenerlo,  luego si te fijas char ping[] = "ping"; no le pongo cuántos caracteres va a recoger ese array pues luego ese array deberá concatenar con IP con strcat ahora he probado char ping[21] = "ping"; los 5 de ping + los 16 de IP y funciona no sé si es la mejor forma de solucionar el problema pero de esta funciona, rectificame en cualquier cosa lo importante es aprender, gracias
5  Programación / Programación C/C++ / Ayuda Run-time Failure stack around the variable ping was corrupted en: 2 Julio 2020, 01:51 am
Muy buenas, tengo que realizar un ejercicio que me dice que tengo que leer una ruta de un fichero introducido por teclado para ver su contenido,el contenido trata de ips (esto ya esta realizado y funciona) luego me pide que ejecute un ping de las ips leidas y aquí al final es donde tengo el run-time evidentemente hay algo que no hago bien y se descontrola pero no soy capaz de resolver el error. Espero que alguien me pueda ayudar y así poder aprender de estos errores. Muchas gracias.

Código
  1. void leerFichero() {
  2. #define SIZE_IP 15
  3. char nombreFichero[256]; //declaramos una array de char para poder introducir la ruta con un máximo de 256 carcateres
  4. char caracter; // declaramos caracter para recoger caracter a caracter
  5. char ip[SIZE_IP]; // declaramos un array de 15 ya que el maximo de una ip es 255.255.255.255
  6. char ping[] = "ping";
  7. //int final = 0;
  8. FILE* miFichero; // declaramos el file como miFichero
  9.  
  10. printf("Escriba la ruta del fichero a visualizar: \n");
  11.  
  12. scanf("%s",&nombreFichero); // recogemos la ruta del archivo donde se abrirá
  13. miFichero = fopen(nombreFichero,"r"); //abrimos el fichero en modo lectura "r"
  14. if (miFichero == NULL) { // si el fichero no existe printamos un error
  15. printf("Error al abrir el fichero\n");
  16. }
  17. else
  18. {
  19. printf("\n**************************Lectura del fichero****************************\n\n"); //printamos el contenido del fichero
  20. caracter = fgetc(miFichero); //recoge caracter a caracter y lo almacena en caracter
  21. while (feof(miFichero)==0) // mientras no llegue al final del archivo printará por consola el contenido del fichero
  22. {
  23. printf("%c", caracter);
  24. caracter = fgetc(miFichero);
  25. }
  26. rewind(miFichero);
  27. printf("\n**************************Lectura de las IPs****************************\n\n");
  28.  
  29. //final=fscanf(miFichero, "%s", ip);
  30.  
  31. while (!feof(miFichero))
  32. {
  33. fgets(ip, SIZE_IP, miFichero);
  34.  
  35. //fscanf(miFichero, "%s", ip);
  36. //printf("variable ping: %s variable ip: %s", ping, ip);
  37. strcpy(ping, "ping ");
  38. system(strcat(ping, ip));
  39. }
  40. fclose(miFichero); //cerramos el fichero
  41. }
  42. fflush(stdin); //borramos la memoria
  43. //printf("Presione enter para salir \n");
  44. // getchar();
  45. }

MOD: Corregidas las etiquetas de Código GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines