Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 1st, 2012  |  syntax: None  |  size: 4.32 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include "nodos21.h"
  6. #define max 40
  7. using namespace std;
  8. int main(){
  9.   FILE *loc, *rst;
  10.   loc=fopen("localidades.dat", "r");
  11.   rst=fopen("resultados.out", "a");
  12.   listady lista;
  13.   arbol abb;
  14.    int prod;
  15.   if (loc==NULL){
  16.     cout<<("Error al abrir el archivo")<<endl;
  17.     exit (EXIT_FAILURE);
  18.   }else{
  19.     int n, m;
  20.     char local[max], orig[max], dest[max];
  21.     float coord1, coord2;
  22.     fscanf(loc, "%d", &n);
  23.     if ((n<=1) || (n>=10000)){
  24.         cout<<("ERROR CON CANTIDAD DE LOCALIDADES ")<<endl;
  25.     }else{
  26.         for (int i=0; i<n; i++){
  27.             fscanf(loc, "%s", local);
  28.             fscanf(loc, "%f", &coord1);
  29.             fscanf(loc, "%f", &coord2);
  30.             lista.insertarlocalidad(local, coord1, coord2, prod);
  31.             insertararb(abb.prima, local, coord1, coord2);
  32.         }
  33.     }
  34.     fscanf(loc,"%d", &m);
  35.     int limite= (n*(n-1)/2);
  36.     if ((m<=1) || (m>limite)){
  37.         cout<<("ERROR CON CANTIDAD DE RELACIONES ")<<endl;
  38.     }else{
  39.         for (int j=0; j<m; j++){
  40.             fscanf(loc, "%s", orig);
  41.             fscanf(loc, "%s", dest);
  42.             lista.insertarrelacion(orig, dest, prod);
  43.         }
  44.     }
  45.   }
  46.     string nombreo, nombred;
  47.     float cx1, cy1,cx2, cy2;
  48.     vertarb *o, *d;
  49.     bool l1, l2;
  50.     int opc1;
  51.     //MENU PRINCIPAL
  52.  
  53.       cout<<(" ---------------------------------------------- ")<<endl;
  54.       cout<<("|            Escuela de Computacion            |")<<endl;
  55.       cout<<("|          GPS de uso simple portatil          |")<<endl;
  56.       cout<<("|                                              |")<<endl;
  57.       cout<<("|              Menu de opciones:               |")<<endl;
  58.       cout<<("|                                              |")<<endl;
  59.       cout<<("| 1. Agregar localidad.                        |")<<endl;
  60.       cout<<("| 2. Eliminar localidad.                       |")<<endl;
  61.       cout<<("| 3. Agregar relacion.                         |")<<endl;
  62.       cout<<("| 4. Eliminar relacion.                        |")<<endl;
  63.       cout<<("| 5. Buscar ruta.                              |")<<endl;
  64.       cout<<("| 6. Buscar ruta dada por dos coordenadas.     |")<<endl;
  65.       cout<<("| 7. Salir de la Aplicacion.                   |")<<endl;
  66.       cout<<(" ---------------------------------------------- ")<<endl;
  67.  
  68.       cout<<"Ingrese su opcion y luego presione Enter:"<<endl;
  69.       do{
  70.       cin>>opc1;
  71.       switch(opc1){
  72.         case 1:
  73.             cout<<opc1<<" ";
  74.             cin>>nombreo>>cx1>>cy1;
  75.             lista.insertarlocalidad(nombreo, cx1, cy1, prod);
  76.             insertararb(abb.prima, nombreo, cx1, cy1);
  77.             fprintf(rst, "%d", prod);
  78.           break;
  79.         case 2:
  80.           cout<<opc1<<" ";
  81.           cin>>nombreo;
  82.           eliminararb(abb.prima, nombreo, prod);
  83.           fprintf(rst, "%d", prod);
  84.           break;
  85.         case 3:
  86.           cout<<opc1<<" ";
  87.           cin>>nombreo>>nombred;
  88.           lista.insertarrelacion(nombreo, nombred, prod);
  89.           fprintf(rst, "%d", prod);
  90.           break;
  91.         case 4:
  92.           cout<<opc1<<" ";
  93.           cin>>nombreo>>nombred;
  94.           lista.eliminarrelacion(nombreo, nombred, prod);
  95.           fprintf(rst, "%d", prod);
  96.           break;
  97.         case 5:
  98.           cout<<opc1<<" ";
  99.           cin>>nombreo>>nombred;
  100.           l1=buscar(abb.prima, nombreo, o);
  101.           l2=buscar(abb.prima, nombred, d);
  102.           //if ((l1==true)&&(l2==true)){
  103.               bfs(nombreo,nombred);
  104.               //fprintf(rst, "%d", 1);
  105.           //}else if ((l1==false)&&(l2==true)){
  106.               //  fprintf(rst, "%d", -3);
  107.           //}else if ((l1==true)&&(l2==false)){
  108.             //    fprintf(rst, "%d", -2);
  109.           //}else if ((l1==false)&&(l2==false)){
  110.               //  fprintf(rst, "%d", -1);
  111.           //}else{
  112.               //      fprintf(rst, "%d", 0);
  113.                 //}
  114.           break;
  115.         case 6:
  116.           cout<<opc1<<" ";
  117.           cin>>cx1>>cy1>>cx2>>cy2;
  118.           //distancia();
  119.           break;
  120.         case 7:
  121.           cout<<("Salida exitosa")<<endl;
  122.           break;
  123.         default:
  124.           cout<<(" Opcion invalida, suministre una opcion entre 1 y 7 ")<<endl;
  125.       }
  126.     }while (opc1!=7);
  127.     fclose(loc);
  128.     fclose(rst);
  129.   return 0;
  130. }