Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<conio.h>
- #include<string.h>
- #include<stdlib.h>
- using namespace std;
- const int MAX=100;
- typedef char TCadena[20];
- typedef struct{
- float latitud;
- float longitud;
- float area;
- float numerohab;
- }TMunicipio;
- typedef struct{
- TCadena nombre;
- TMunicipio muni;
- }TResumen;
- typedef TResumen TCiudad[MAX];
- //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
- void daralta(TCiudad city, int &tam){
- char darmasaltas;
- do{
- cin.get();
- cout<<"Introduce el nombre de la Ciudad/Pueblo que quieres registrar ";
- cin.getline(city[tam].nombre,19,'\n');
- cout<<"Introduce la Latitud de la Ciudad/Pueblo que quieres registrar ";
- cin>>city[tam].muni.latitud;
- cout<<"Introduce la Longitud de la Ciudad/Pueblo que quieres registrar ";
- cin>>city[tam].muni.longitud;
- cout<<"Introduce el area en (Km2) de la Ciudad/Pueblo que quieres registrar ";
- cin>>city[tam].muni.area;
- do{
- cout<<"Introduce el numero de habitantes de la Ciudad/Pueblo que quieres registrar ";
- cin>>city[tam].muni.numerohab;
- }while(city[tam].muni.numerohab<=0);
- tam+=1;
- cout<<"quieres registrar mas Ciudades/Pueblos(y/n) "; cin>>darmasaltas;
- }while(darmasaltas=='Y'||darmasaltas=='y');
- }
- // 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
- void listarsincriterio(TCiudad city,int &tam){
- cout<<"Acontinuacion se le listaran todos los municipios registrados hasta el momento: "<<endl;
- for(int i=0; i<tam ; i++){
- cout<<"º"<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
- }
- }
- void listarconcriteriohabs(TCiudad city,int &tam,float &filtrohabitantes){
- cout<<"Acontinuacion se le listaran todos los municipios que superen los "<<filtrohabitantes<<" habitantes"<<endl;
- for(int i=0; i<tam ; i++){
- if(city[i].muni.numerohab>=filtrohabitantes){
- cout<<"º"<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
- }
- else{
- cout<<"Lo sentimos, tu criterio de busqueda no cubre a "<<city[i].nombre<<endl;
- }
- }
- }
- void listarconcriterioletra(TCiudad city,int &tam){
- char letracity;
- int tamnombre=1;
- cout<<"Ingrese una letra para buscar ciudades coincidentes "; cin>>letracity;
- for(int i=0; i<tam ; i++){
- for(int s=0; s<tamnombre ; s++){
- if(city[i].nombre[0]==letracity){
- cout<<"º"<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
- }
- else{
- cout<<"Lo sentimos, tu criterio de busqueda no cubre a "<<city[i].nombre<<endl;
- }
- }
- }
- }
- void modificarcitys(TCiudad city,int &tam){
- int numvariante;
- char modificarotra;
- do{
- cout<<"Acontinuacion se le listaran todos los municipios registrados hasta el momento, para que seleccione el que desa nodificar "<<endl;
- for(int i=0; i<tam ; i++){
- cout<<"º"<<i<<" "<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
- }
- cout<<"Conociendo las posiciones de las ciudades ingrese el numero de la que quiere modificar valores: ";
- do{
- cin>>numvariante;
- }while(numvariante<tam);
- for(int t=0; t<tam ; t++){
- if(t==numvariante){
- cin.get();
- cout<<"Introduce el nombre de la Ciudad/Pueblo por el que quieres modificar el anterior ";
- cin.getline(city[t].nombre,19,'\n');
- cout<<endl;
- }
- }
- for(int i=0; i<tam ; i++){
- cout<<"º"<<i<<" "<<city[i].nombre<<" "<<city[i].muni.latitud<<", "<<city[i].muni.longitud<<", "<<city[i].muni.area<<", "<<city[i].muni.numerohab<<"habitantes"<<endl;
- }
- }while(modificarotra=='Y'||modificarotra=='y');
- }
- int main(){
- TCiudad city;
- int tam=0;
- char seguir;
- char volvermenu;
- int opcion;
- float filtrohabitantes;
- char seguirnumerando;
- char seguirnumerando2;
- do{
- cout<<"Buenas bienvenido a la app registradora de municipios"<<endl;
- cout<<"Quieres acceder al menu(y/n)"<<endl;
- cin>>seguir;
- if(seguir=='Y' || seguir=='y'){
- 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;
- cin>>opcion;
- switch(opcion){
- case 1:
- daralta(city,tam);
- break;
- case 2:
- listarsincriterio(city,tam);
- break;
- case 3:
- do{
- cout<<"Ingrese un numero para buscar cuidades con mas habitantes que el registrado "; cin>>filtrohabitantes;
- listarconcriteriohabs( city,tam,filtrohabitantes);
- cout<<"Quieres filtrar con otro numero de habitantes(y/n) "; cin>>seguirnumerando;
- }while(seguirnumerando=='y'||seguirnumerando=='Y');
- break;
- case 4:
- do{
- listarconcriterioletra(city,tam);
- cout<<"Quieres filtrar con otra letra (y/n) "; cin>>seguirnumerando2;
- }while(seguirnumerando2=='y'||seguirnumerando2=='Y');
- break;
- case 5:
- modificarcitys(city,tam);
- break;
- case 6:
- break;
- default:
- break;
- }
- }
- else{
- abort();
- }
- cout<<"Quieres hacer algo mas(y/n)"; cin>>volvermenu;
- }while(volvermenu=='Y'||volvermenu=='y');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement