void GrafoSocial::aleatorizarGrafo(){
	int cant = (rand() % 95 ) + 5;
	for (int i = 0; i < cant; i++){
		Persona * p1 = new Persona();
		p1->setID(i);
		agregarPersona(p1);
	}
	for (int i = 0; i < cant; i++){
		IPersona * a = getPersonaAleatoria();
		IPersona * b = getPersonaAleatoria();
		if (a != b && !sonAmigos(a,b)){
			establecerAmistad(a, b);
		}
	}

}
int main ( int argc, char *argv[] ){

  srand((int) time(NULL));

  printf("Cuantas personas van a ser: ");
  scanf("%d",&numPersonas);

  struct Persona* personas = (struct Persona*) malloc (numPersonas * sizeof(struct Persona));
  char*** preguntas = (char***) malloc (10 * sizeof(char**));

  agregarPersona(personas);

  agregarPregunta(preguntas);

  llenarEncuesta(personas, preguntas);

  histograma(personas, preguntas);

  histogramaEdades(personas, preguntas);

  Borrar(personas, preguntas);

  return 0;
}
Exemple #3
0
int main()
{
    EPersona persona[20];
    char seguir = 's';
    int op = 0, flag = 0, carga = 0;
    long int auxDni;

    do{
        system("cls");
        printf("1- Agregar persona\n");
        printf("2- Borrar persona\n");
        printf("3- Imprimir lista ordenada por nombre\n");
        printf("4- Imprimir grafico de edades\n\n");
        printf("5- Salir\n");

        scanf("%d",&op);

        switch(op)
        {
            case 1:
                system("cls");

                if(flag == 0){
                    inicializarEstados(persona, TAM);
                    flag = 1;
                }
                    agregarPersona(persona, TAM);
                    carga = 1;
                    system("pause");
                break;
            case 2:
                system("cls");
                if (carga == 0)
                    printf("Debe ingresar algun dato primero\n");
                else{
                    auxDni = getLongInt(auxDni, "Ingrese DNI a eliminar: ", "\n\nERROR. El DNI debe ser entre 1000000 y 99999999.\nReingrese: ", 100000, 99999999);
                    borrarPersona(persona, auxDni, TAM);
                }

                system("pause");
                break;
            case 3:
                system("cls");
                if (carga == 0)
                    printf("Debe ingresar algun dato primero\n");
                else
                    ordenarPersonas(persona, TAM);

                system("pause");
                break;
            case 4:
                system("cls");
                if (carga == 0)
                    printf("Debe ingresar algun dato primero\n");
                else
                    graficoPersonas(persona, TAM);

                system("pause");
                break;
            case 5:
                seguir = 'n';
                break;
            default:
                system("cls");
                printf("Opcion invalida. Elija una opcion entre 1 y 5\n");
                system("pause");
        }

    }while(seguir=='s');

    return 0;
}
int main()
{
  Persona *p;
  int tamP = 0;//tamaño del arreglo dinámico
  int sharmutta = -1; //la opcion de cases

  //sección del arreglo dinámico
  p = (Persona*)malloc(1*sizeof(Persona));

  while(sharmutta != 7)
  {
    printf("Menu\n   1. Agregar Persona\n   2. Promedio\n   3. Entre edades\n   4. El mas viejo\n   5. EL mas joven\n   6. Listar\n   7. Salir\n");
    scanf("%d", &sharmutta);
    
    if(sharmutta == 1)
    {
      p = (Persona*)realloc(p, (tamP+1) * sizeof(Persona));
      agregarPersona(p, tamP);
      tamP++;
    }

    /*sección de promedio de edad, entre edades, el más joven y el más viejo */
    else if(sharmutta == 2)
    {
      //promedio de edad
      float promedio;

      for(i = 0; i < tamP; ++i)
        //printf("%s %s %d leido correctamente\n", (p+i)->nombre, (p+i)->apellido, (p+i)->edad);
        promedio += (p+i)->edad;

      printf("El promedio de edad es %.1f\n", (promedio/i));
    }
    else if(sharmutta == 3)
    {
      //entre edades
      int edad, edad2;
      printf("Entre el primer numero del rango\n");
      scanf("%d", &edad);
      printf("Entre el segundo numero del rango (debe ser mayor al anterior)\n");
      scanf("%d", &edad2);

      for(i = 0; i < tamP; ++i)
      {
        if((p+i)->edad <= edad2 && (p+i)->edad >= edad)
          printf("%s %s %d\n", (p+i)->nombre, (p+i)->apellido, (p+i)->edad);
      }
    
    }
    else if(sharmutta == 4)
    {
      //el más viejo
      Persona *res;

      for (i = 0; i < tamP; ++i)
      {
        if(i+1 != tamP+1 && (p+i)->edad < (p+i+1)->edad && tamP != 0)
          res = (p+i);
        else
          res = p;
      }
      printf("La persona mas vieja es %s %s %d\n", res->nombre, res->apellido, res->edad);
    }
    else if(sharmutta == 5)
    {
      //el más joven
      Persona *res;

      for (i = 0; i < tamP; ++i)
      {
        if(i+1 != tamP+1 && (p+i)->edad > (p+i+1)->edad && tamP != 0)
          res = (p+i);
        else
          res = p;
      }
      printf("La persona mas joven es %s %s %d\n", res->nombre, res->apellido, res->edad);
    }
    else if(sharmutta == 6)
    {
      printf("Las %d personas guardadas son:\n", tamP);
      for(i = 0; i < tamP; ++i)
        printf("%s %s %d\n", (p+i)->nombre, (p+i)->apellido, (p+i)->edad);
    }
    else if(sharmutta == 7)
    {
      printf("BYE!\n");
    }
    else
      printf("No es opcion ¬¬\n");
  }

  limpiar(p,tamP);//no memory leaks
  return 0;
}