Advertisement
Guest User

harvol lol help3

a guest
Dec 15th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.01 KB | None | 0 0
  1. #include<iostream>
  2. #include<conio.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5. using namespace std;
  6.  
  7. const int MAX=100;
  8.  
  9. typedef char TCadena[20];
  10.  
  11. typedef struct{
  12.     float latitud;
  13.     float longitud;
  14.     float area;
  15.     float numerohab;
  16. }TMunicipio;
  17.  
  18. typedef struct{
  19.     TCadena nombre;
  20.     TMunicipio muni;
  21. }TResumen;
  22.  
  23. typedef TResumen TCiudad[MAX];
  24.  
  25. //El modulo este tiene la funcion de dar de alta nuevos municipios,comprobando que los habitantes sean mas que 0, ya que si no no se considera pueblo ni cuidad
  26.  
  27. void daralta(TCiudad city,  int &tam){
  28.    
  29. char darmasaltas;
  30.  
  31.     do{
  32.        
  33.         cin.get();
  34.         cout<<"Introduce el nombre de la Ciudad/Pueblo que quieres registrar ";
  35.         cin.getline(city[tam].nombre,19,'\n');
  36.        
  37.         cout<<"Introduce la Latitud de la Ciudad/Pueblo que quieres registrar ";
  38.         cin>>city[tam].muni.latitud;
  39.        
  40.         cout<<"Introduce la Longitud de la Ciudad/Pueblo que quieres registrar ";
  41.         cin>>city[tam].muni.longitud;
  42.        
  43.         cout<<"Introduce el area en (Km2) de la Ciudad/Pueblo que quieres registrar ";
  44.         cin>>city[tam].muni.area;
  45.    
  46.         do{
  47.            
  48.             cout<<"Introduce el numero de habitantes de la Ciudad/Pueblo que quieres registrar ";
  49.             cin>>city[tam].muni.numerohab;
  50.        
  51.         }while(city[tam].muni.numerohab<=0);
  52.        
  53.     tam+=1;
  54.  
  55.     cout<<"quieres registrar mas Ciudades/Pueblos(y/n) "; cin>>darmasaltas;
  56.    
  57.        
  58.     }while(darmasaltas=='Y'||darmasaltas=='y');
  59. }
  60.  
  61. // ESTE MODULO SIRVE PARA MOSTRAR LAS CUIDADES QUE SUPEREN UN NUMERO DE HABITANTES INTRODUCIDOS POR EL USUARIO,PERMITIENDO DAR MAS FLEXSIBILIDAD A LA HORA DE HACER LA BUSQUEDA
  62.  
  63. void listarsincriterio(TCiudad city,int &tam){
  64.    
  65.     cout<<"Acontinuacion se le listaran todos los municipios registrados hasta el momento: "<<endl;
  66.    
  67.     for(int i=0; i<tam ; i++){
  68.        
  69.         cout<<"º"<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
  70.        
  71.    
  72.     }
  73.    
  74. }
  75.  
  76. void listarconcriteriohabs(TCiudad city,int &tam,float &filtrohabitantes){
  77.    
  78.     cout<<"Acontinuacion se le listaran todos los municipios que superen los "<<filtrohabitantes<<" habitantes"<<endl;
  79.    
  80.     for(int i=0; i<tam ; i++){
  81.        
  82.         if(city[i].muni.numerohab>=filtrohabitantes){
  83.            
  84.             cout<<"º"<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
  85.            
  86.         }
  87.        
  88.         else{
  89.            
  90.             cout<<"Lo sentimos, tu criterio de busqueda no cubre a "<<city[i].nombre<<endl;
  91.            
  92.         }
  93.    
  94.     }
  95.    
  96. }
  97.  
  98. void listarconcriterioletra(TCiudad city,int &tam){
  99.    
  100.     char letracity;
  101.     int tamnombre=1;
  102.                                
  103.     cout<<"Ingrese una letra para buscar ciudades coincidentes "; cin>>letracity;
  104.                            
  105.     for(int i=0; i<tam ; i++){
  106.        
  107.         for(int s=0; s<tamnombre ; s++){
  108.            
  109.             if(city[i].nombre[0]==letracity){
  110.                
  111.                 cout<<"º"<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
  112.                
  113.             }
  114.            
  115.             else{
  116.            
  117.             cout<<"Lo sentimos, tu criterio de busqueda no cubre a "<<city[i].nombre<<endl;
  118.            
  119.             }              
  120.         }  
  121.     }
  122. }
  123.  
  124. void modificarcitys(TCiudad city,int &tam){
  125.  
  126. int numvariante;
  127. char modificarotra;
  128. do{
  129.  
  130.         cout<<"Acontinuacion se le listaran todos los municipios registrados hasta el momento, para que seleccione el que desa nodificar "<<endl;
  131.    
  132.     for(int i=0; i<tam ; i++){
  133.        
  134.         cout<<"º"<<i<<" "<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
  135.        
  136.     }
  137.    
  138.         cout<<"Conociendo las posiciones de las ciudades ingrese el numero de la que quiere modificar valores: ";
  139.     do{
  140.    
  141.         cin>>numvariante;
  142.    
  143.     }while(numvariante<tam);
  144.    
  145.     for(int t=0; t<tam ; t++){
  146.        
  147.         if(t==numvariante){
  148.            
  149.             cin.get();
  150.             cout<<"Introduce el nombre de la Ciudad/Pueblo por el que quieres modificar el anterior ";
  151.             cin.getline(city[t].nombre,19,'\n');
  152.             cout<<endl;
  153.            
  154.         }      
  155.     }
  156.    
  157.     for(int i=0; i<tam ; i++){
  158.        
  159.         cout<<"º"<<i<<" "<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
  160.        
  161.     }
  162.    
  163.     }while(modificarotra=='Y'||modificarotra=='y');
  164. }          
  165.                            
  166.  
  167. int main(){
  168.    
  169.     TCiudad city;
  170.     int tam=0;
  171.     char seguir;
  172.     char volvermenu;
  173.     int opcion;
  174.     float filtrohabitantes;
  175.     char seguirnumerando;
  176.     char seguirnumerando2;
  177.    
  178.    
  179.     do{
  180.    
  181.         cout<<"Buenas bienvenido a la app registradora de municipios"<<endl;
  182.         cout<<"Quieres acceder al menu(y/n)"<<endl;
  183.         cin>>seguir;
  184.    
  185.             if(seguir=='Y' || seguir=='y'){
  186.                
  187.                 cout<<"Acontinuacion se le mostrara el menu:\n 1.Introduccion de datos Municipio \n 2.Listar todos los municipios \n 3.Listar municipios con un determinado numero de habitantes \n 4.Listar municipios por letra \n 5.Modificar Datos \n 6.Salir"<<endl;
  188.                 cin>>opcion;
  189.                
  190.                 switch(opcion){
  191.            
  192.        
  193.                     case 1:
  194.                        
  195.                         daralta(city,tam);
  196.                         break;
  197.                
  198.                     case 2:
  199.                        
  200.                         listarsincriterio(city,tam);
  201.                         break;
  202.                
  203.                     case 3:
  204.                        
  205.                         do{
  206.                            
  207.                             cout<<"Ingrese un numero para buscar cuidades con mas habitantes que el registrado "; cin>>filtrohabitantes;
  208.                            
  209.                             listarconcriteriohabs( city,tam,filtrohabitantes); 
  210.                            
  211.                             cout<<"Quieres filtrar con otro numero de habitantes(y/n) "; cin>>seguirnumerando;
  212.                            
  213.                         }while(seguirnumerando=='y'||seguirnumerando=='Y');
  214.                
  215.                         break;
  216.                    
  217.                     case 4:
  218.    
  219.                         do{
  220.                            
  221.                             listarconcriterioletra(city,tam);
  222.                            
  223.                             cout<<"Quieres filtrar con otra letra (y/n) "; cin>>seguirnumerando2;
  224.                        
  225.                         }while(seguirnumerando2=='y'||seguirnumerando2=='Y');
  226.                        
  227.                         break;
  228.                
  229.                     case 5:
  230.                        
  231.                         modificarcitys(city,tam);
  232.                    
  233.                         break;
  234.                
  235.                     case 6:
  236.                    
  237.                         break;
  238.                    
  239.                     default:
  240.                    
  241.                         break;
  242.                    
  243.                 }
  244.                
  245.                
  246.             }
  247.            
  248.             else{
  249.                
  250.                 abort();
  251.                
  252.             }
  253.            
  254.             cout<<"Quieres hacer algo mas(y/n)"; cin>>volvermenu;
  255.        
  256.     }while(volvermenu=='Y'||volvermenu=='y');
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement