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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20
111  Programación / Programación C/C++ / Re: Problema en agenda con ficheros en: 11 Febrero 2012, 21:45 pm
Este es el código que me ha quedado al hacer el programa:

Código
  1. /*  Una agenda que maneje los siguientes datos: nombre, dirección, tlf móvil, email, y día,
  2.     mes y año de nacimiento (estos tres últimos datos deberán ser números enteros
  3.     cortos). Deberá tener capacidad para 100 fichas. Se deberá poder añadir un dato
  4.     nuevo, visualizar los nombres de las fichas existentes, o mostrar todos los datos de una
  5.     persona (se preguntará al usuario cual es el nombre de esa persona que quiere
  6.     visualizar). Al empezar el programa, leerá los datos de un fichero llamado “agenda.dat”
  7.     (si existe). Al terminar, guardará todos los datos en ese fichero. */
  8.  
  9.    #include <stdio.h>
  10.    #include <stdlib.h>
  11.    #include <string.h>
  12.  
  13.    int main()
  14.    {
  15.        struct
  16.        {
  17.          char nombre[10];
  18.          char direccion[15];
  19.          int movil;
  20.          char email[20];
  21.           int dia, mes, ano;
  22.        }datos[100];
  23.        char lineas[500],comprobar[10];
  24.        FILE* fichero;
  25.        int opcion,posicion,tamano,i=0,j,aux;
  26.       int c;
  27.        fichero = fopen("agenda.dat", "r+b");
  28.        if(fichero != NULL)
  29.        {
  30.  
  31.        while(!feof(fichero)) //Leemos los datos que contiene el archivo y los almacenamos en datos[100]
  32.        {
  33.          c=fscanf(fichero,"%s",datos[i].nombre);
  34.          fscanf(fichero,"%s",datos[i].direccion);
  35.          fscanf(fichero,"%d",&datos[i].movil);
  36.          fscanf(fichero,"%s",datos[i].email);
  37.          fscanf(fichero,"%d",&datos[i].dia);
  38.          fscanf(fichero,"%d",&datos[i].mes);
  39.          fscanf(fichero,"%d",&datos[i].ano);
  40.          if(c!=-1)i++; // evita incrementar erroneamente
  41.        }
  42.  
  43.  
  44.       rewind(fichero);
  45.  
  46.        do
  47.        {
  48.        do
  49.        {
  50.        printf("Fichas guardadas: %i\n",i);
  51.        printf("Elija una opcion\n");
  52.        printf("1. Introducir datos\n");
  53.        printf("2. Visualizar nombres de las fichas existentes\n");
  54.        printf("3. Mostrar todos los datos de una persona\n");
  55.        printf("4. Salir\n");
  56.        scanf("%d",&opcion);
  57.        getchar();
  58.  
  59.        switch(opcion)
  60.        {
  61.          case 1:
  62.               printf("Introduce un nombre: ");
  63.               scanf("%s",datos[i].nombre);
  64.  
  65.               printf("Introduce una direccion: ");
  66.  
  67.               scanf("%s",datos[i].direccion);
  68.               printf("Introduce un movil: ");
  69.               scanf("%d",&datos[i].movil);
  70.               while(getchar() != '\n');
  71.               printf("Introduce correo electronico: ");
  72.  
  73.               scanf("%s",datos[i].email);
  74.               printf("Introduce dia de nacimiento: ");
  75.               scanf("%d",&datos[i].dia);
  76.               while(getchar() != '\n');
  77.               printf("Introduce mes de nacimiento: ");
  78.               scanf("%d",&datos[i].mes);
  79.               while(getchar() != '\n');
  80.               printf("Introduce ano de nacimiento: ");
  81.               scanf("%d",&datos[i].ano);
  82.               i++;
  83.               break;
  84.          case 2:
  85.               for(j=0;j<i;j++)
  86.               {
  87.                 printf("%s\n",datos[j].nombre);
  88.               }
  89.  
  90.  
  91.               break;
  92.          case 3:
  93.              printf("Introduce el nombre de la persona de la que desea visualizar los datos:");
  94.             scanf("%s",comprobar);
  95.              for(j=0;j<i;j++)
  96.              {
  97.                if(strcmp(datos[j].nombre,comprobar)==0)
  98.                {
  99.                  printf("Nombre: %s\n",datos[j].nombre);
  100.                  printf("Direccion: %s\n",datos[j].direccion);
  101.                  printf("Movil: %d\n",datos[j].movil);
  102.                  printf("Email: %s\n",datos[j].email);
  103.                  printf("Dia de nacimiento: %d\n",datos[j].dia);
  104.                  printf("Mes de nacimiento: %d\n",datos[j].mes);
  105.                  printf("Ano de nacimiento: %d\n",datos[j].ano);
  106.                }
  107.              }
  108.               break;
  109.          case 4:
  110.               break;
  111.          default:
  112.                  printf("Opcion no valida!\n");
  113.        }
  114.  
  115.        }while(opcion<1||opcion>4);
  116.  
  117.        }while(opcion!=4);
  118.        }
  119.        aux=i;
  120.        for(i=0;i<aux;i++)
  121.        {
  122.          fprintf(fichero, "%s\n", datos[i].nombre);
  123.          fprintf(fichero, "%s\n", datos[i].direccion);
  124.          fprintf(fichero, "%d\n", datos[i].movil);
  125.          fprintf(fichero, "%s\n", datos[i].email);
  126.          fprintf(fichero, "%d\n", datos[i].dia);
  127.          fprintf(fichero, "%d\n", datos[i].mes);
  128.          fprintf(fichero, "%d\n", datos[i].ano);
  129.          }
  130.       fclose(fichero);
  131.  
  132.        printf("\n\nPulse una tecla para continuar");
  133.        getchar();
  134.        return 0;
  135.    }
  136.  

Saludos.

o.O
Exelente, solamente lo que yo talvez agregaria es que a la hora de Agregar un nuevo dato, seria comprobar que no haya mas de 100 datos ya dentro, porque si ya hay 100 e intentas agregar uno nuevo pues dara error, creo que seria lo unico que yo le agregaria.
112  Comunicaciones / Android / Re: Ayuda apliacion android en: 11 Febrero 2012, 00:16 am
No entiendo a que te refieres con pestaña:

- Te refieres a los Tab ?
- A una nueva Actividad ?

Podrias especificar ?
Bueno suponiendo que es otra actividad que inicias con
startActivity(Intent);
Si te da error, checa el haber agregado esa nueva Actividad en el Manifesto.

Sino es eso podrias poner alguna imagen o algo que aclare un poco mas hehe, ya que asi no me da mucha idea de que podria ser.
113  Comunicaciones / Android / Re: Cual es el mejor antivirus para android..?? en: 11 Febrero 2012, 00:13 am
@offtopic:

Android se basa en Linux y por lo tanto no necesita antivirus. Yo por mi parte no me instalaría nada ;)

En Linux si hay virus, que no haya tantos como para Windows es otra cosa, ademas para android como es una nueva tecnologia muy usada los hackers pues tambien aprovecharan y empezaran a hacer virus para android aunque este se base en Linux.

En aplicaciones de escritorio es menos notable puesto que los que usan Linux ya son personas mas experimentadas y los hackers mas que nada atacan a personas que no lo sean para robar informacion y como los celulares tambien estan al asecho y estos llevan Android  pues no hay duda que habra Virus para estos.

Bueno esa es mi opinion.
114  Foros Generales / Dudas Generales / Re: Es posible que lo hackeen a uno por la iP si esta jugando online??? en: 8 Febrero 2012, 07:26 am
Pues si es posible, pero a como lo explicas no creo que el lo haya provocado, sino fue pura coincidencia hehe
115  Seguridad Informática / Bugs y Exploits / Re: Como inyectar una SHELL por el siguiente codigo PHP en: 7 Febrero 2012, 01:38 am
Pues si tiene un login, podrias bajarlo y checar su codigo y de ahi poder ver si puedes bypassearlo con SQL Inyect, o si ves cosas por ahi otros arhivos buscarles fallos o algo para poder filtrarte.
116  Programación / Programación C/C++ / Re: Ayuda por favor!! en: 23 Diciembre 2011, 06:33 am
Estas mal al hacer esto:

 v=cons;

ya que "v" seria el vector y no puedes declararle asi directamente sino seria asi:

 v=cons;

E igual con lo demas que haces
v<30 y eso esta incorrecto porque asi haces referencia directa al vector, y no por cada posicion que hay en el
que tendrai que ser siempre
v[posicionaver]

Y asi sucesivamente!.
117  Programación / Programación C/C++ / Re: Problema en volver la posición del elemento maximo de un vector en: 14 Diciembre 2011, 02:13 am
¡Buenas!

Estais planteando mal el algoritmo. En ningun momento se pide calcular el minimo del vector. Haceis bien en asumir el primer elemento y la primera posicion como maximo y posicion del maximo, pero luego solo teneis que aseguraros de encontrar valores mayores, ya que de forma automatica se iran actualizando los datos a la posicion mas pequeña de las posibles repeticioines del mayor de los valores:

Código
  1. int posicio_maxim(const vector<double>& v)
  2. {
  3.    int indice;
  4.    double max;
  5.  
  6.    if(!v.size())
  7.        return -1;
  8.  
  9.    //asumimos que el primer valor es el mayor
  10.    max = v[0];
  11.    indice = 0;
  12.  
  13.    for(int i = 1 ; i < v.size() ; i++)
  14.    {
  15.        //modificamos los datos solo si el valor actual es mayor que el maximo provisional
  16.        //al hacer la comparacion con un menor estricto, nos aseguramos de que el maximo
  17.        //provisional es el de menor indice de las posibles repeticiones
  18.        if(max < v[i])
  19.        {
  20.            max = v[i];
  21.            indice = i;
  22.        }
  23.    }
  24.  
  25.    return indice;
  26. }
  27.  

¡Saludos!

PD: En caso de empate se tiene que devolver la posición minima. NO la posicion del elemento minimo. Por lo tanto se refiere a la posicion del primer elemento maximo, que sera la posicion minima de todas las repeticiones del maximo.


hahaha que tonto soy, yo me guie con su codigo y no a como se planteaba el problema, pues si en ese caso es mas sencillo n_n
118  Programación / Programación C/C++ / Re: Problema en volver la posición del elemento maximo de un vector en: 14 Diciembre 2011, 01:52 am
porque pones

<= m

?

No entiendo porque el = , en mi opinion eso esta incorrect ya que pides un rango no? pero si el tamaño es 6 y a , le envias 6
los numeros comienzan desde el 0, el vector seria
0 1 2 3 4 5
y la m checaria por
0 1 2 3 4 5 6

Por colocar ese = .
119  Programación / .NET (C#, VB.NET, ASP) / Re: Mi programa no funciona en otros equipos URGE lo entrego mañana en: 14 Diciembre 2011, 01:49 am
Tambien al crear el ejecutable en las propiedades viene con que quieres que sea compilado bajalo hasta el framework 2.0, luego si deceas mayor seguridad o nose, puedes crear un instalador que cheque los prerrequisitos y asi checa si tiene el framework 2.0 y si no lo tiene se le descarga e instal :P
120  Programación / Programación C/C++ / Re: Problema en volver la posición del elemento maximo de un vector en: 13 Diciembre 2011, 17:18 pm
Primero antes de iniciar el segundo para minimo, deberia preguntar si hubo empate si no hubo regresar el valor, sino ya empezar con el de minimo.

Otra cosa en este tipo de casos no es bueno darle el valor a uno a comparar por 0 o algun otro, la mejor opcion en esto es asignarle el primer valor del vector y ya el for iniciar desde 1 hasta su longitud, que esta se puede obtener con v.size();

Tampoco puedes hacer a max o a min del tipo int, puesto que no puedes asignarle un double a int (sin hacer casto claro).

Quedando algo asi:

Código
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int posicio_maxim(const vector<double>& v)
  6. {
  7.    if(v.size() == 0)
  8.            return -1;
  9.    int pos = 0;
  10.    double valor = v[0];
  11.    bool flag = false;
  12.    for(int i = 1; i < v.size() && !flag; i++)
  13.    {
  14.            if(v[i] > valor)
  15.            {
  16.                    valor = v[i];
  17.                    pos = i;
  18.            }else if(v[i] == valor)
  19.            {
  20.                 flag = true;
  21.            }
  22.    }
  23.    if(!flag)
  24.             return pos;
  25.  
  26.    pos = 0;
  27.    valor = v[0];
  28.    for(int i = 1; i < v.size(); i++)
  29.    {
  30.            if(valor > v[i])
  31.            {
  32.                    valor = v[i];
  33.                    pos = i;
  34.            }
  35.    }
  36.    return pos;
  37. }
  38.  
  39. int main(){
  40.    int n;
  41.    cout << "Total de Elementos: ";
  42.    cin >> n;
  43.    vector<double> v(n);
  44.    for(int i = 0; i < n; i++){
  45.        cin >> v[i];
  46.    }
  47.    cout << "Posicion: " << posicio_maxim(v) << endl;
  48.    system("pause");
  49. }
  50.  
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines