AlexisRuiz

manejo bienes raices

Dec 6th, 2013
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define TAM 3
  4.  
  5. struct ubicacion_geografica {
  6.      char barrio[50];
  7.      char direcion_casa[60];
  8.      char ciudad[60];
  9. };
  10.  
  11. struct propieda{
  12.     char codigo[60];
  13.      int area;
  14.      int area_construida;
  15.      char caractersticas[70];
  16.      int niveles;
  17.      int estrato;
  18.      struct ubicacion_geografica direccion;
  19.      long precio;
  20.      char disponibilidad;
  21. };
  22.  
  23.  
  24.  
  25. ///Aqui funcion que debera recibir la estructura de tipo array
  26.    void mostrarBienes(int i, struct propieda bienes[i] ){///?????
  27.        
  28.        printf("codigo %s",bienes[i].codigo);
  29.        
  30.   printf("%d: Codigo:%s  Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles: %d Estrato: %d Barrio:%s ",
  31.                             "Direcion:%s Ciudad: %s Precio: %dl Disponibilidad: %c",i+1,bienes[i].area_construida,bienes[i].area,bienes[i].caractersticas,bienes[i].niveles,bienes[i].estrato,bienes[i].direccion.barrio,bienes[i].direccion.direcion_casa,bienes[i].direccion.ciudad,bienes[i].precio,bienes[i].disponibilidad);  
  32.      
  33. }
  34.  
  35.  
  36. //____________________________________________________________________________________________________________________
  37.  
  38. void limpiaBuffer() {
  39.    
  40.     int c;
  41.     while ((c = getchar()) != '\n' && c != EOF);
  42. }
  43. //La función getchar() devuelve el carácter que se halle en la entrada estándar
  44. //esta funcion devuelve un entero
  45.  
  46.  
  47. //********************************************************************************************
  48. int main(){
  49.   puts("BIENVENIDO\n ___________SISTEMAS ADMINISTRACION BIENES RAICES DE PEREIRA 2013___________");
  50.    
  51.     struct propieda bienes[TAM];
  52.     int op;///Contendra char opcion
  53.       int bandera=0;
  54.     do{
  55.     op=menu();///Funcion menu principal
  56.      limpiaBuffer();
  57.      puts(" ");
  58.     int i;
  59.      
  60.        
  61.      
  62.     switch (op){
  63.         char barri[50];
  64.         int area_a,area_b,valor_a,valor_b;
  65.         char city[80];
  66.             int estra;
  67.        
  68.         case 1:
  69.             ///Cargar informacion
  70.             puts("INGRESAR DATOS BIENES:");
  71.             for(i=0;i<TAM;i++){
  72.                 printf("Te quedan %d registros por hacer\n",TAM-i);
  73.                 puts(" ");
  74.                 printf("Datos %da propiedad\n",i+1);
  75.                 puts("Ingrese codigo:");
  76.                 gets(bienes[i].codigo);
  77.                
  78.                
  79.                 puts("Ingrese area:");
  80.                 scanf("%d",&bienes[i].area);
  81.                  
  82.                
  83.                 puts("Ingrese area construida:");
  84.                 scanf("%d",&bienes[i].area_construida);
  85.                 limpiaBuffer();
  86.                
  87.                 puts("Ingrese caracteristicas:");
  88.                 gets(bienes[i].caractersticas);
  89.                  
  90.                 puts("Ingrese nivel:");
  91.                 scanf("%d",&bienes[i].niveles);
  92.                  
  93.                 puts("Ingrese estrato:");
  94.                 scanf("%d",&bienes[i].estrato);
  95.                 limpiaBuffer();
  96.                  
  97.                 puts("Ingrese barrio:");
  98.                 fgets(bienes[i].direccion.barrio,50,stdin);
  99.                  
  100.                
  101.                 puts("Ingrese ciudad:");
  102.                 gets(bienes[i].direccion.ciudad);
  103.                
  104.                 puts("Ingrese el estado de disponibilidad: v:venta,a:arrendo");
  105.                 scanf("%c",&bienes[i].disponibilidad);
  106.                 limpiaBuffer();
  107.                
  108.                 puts("Ingrese direccion casa:");
  109.                 gets(bienes[i].direccion.direcion_casa);
  110.                  
  111.                 puts("Ingrese valor:");
  112.                 scanf("%ld",&bienes[i].precio);
  113.                
  114.                 limpiaBuffer();
  115.                
  116.                 bandera=1;
  117.                
  118.                }///Fin for
  119.            
  120.            
  121.             ///mostrar propiedades
  122.             puts("__________________________________________________________________________________________________");
  123.             for(i=0;i<TAM;i++){
  124.                     printf("%d: Codigo:%s  Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles: %d Estrato: %d Barrio:%s "
  125.                             "Direcion:%s Ciudad: %s Precio: %ld Disponibilidad: %c",i+1,bienes[i].codigo,bienes[i].area_construida,bienes[i].area,bienes[i].caractersticas
  126.                        ,bienes[i].niveles,bienes[i].estrato,bienes[i].direccion.barrio,bienes[i].direccion.direcion_casa,bienes[i].direccion.ciudad,bienes[i].precio,bienes[i].disponibilidad);
  127.                     puts(" ");
  128.              }
  129.              puts("__________________________________________________________________________________________________");
  130.              puts(" ");
  131.             break;
  132.             puts(" ");
  133.              
  134.                    
  135.            
  136.            
  137.            
  138.         case 2:
  139.            // b-Propiedades Disponibles para la venta segun barrio y rango de $350-600.
  140.             if(bandera!=1){
  141.                 puts("¡¡¡ERROR, DEBE INGRESAR LOS DATOS!!!");
  142.             }else{
  143.                
  144.              
  145.            
  146.              
  147.             puts("LISTADO DE BARRIOS");
  148.             for(i=0;i<TAM;i++){
  149.                 printf(" %s ",bienes[i].direccion.barrio);///colocar contador|
  150.             }
  151.             puts(" ");
  152.              ///limpiaBuffer();
  153.             puts("Ingrese barrio:");
  154.             fgets(barri,50,stdin);
  155.             puts("Ha ingresado el stg barrio:");
  156.             puts(barri);
  157.            
  158.            
  159.             int conta;
  160.              puts("Las propiedades que estan a la venta, segun el barrio ingresado, con un costo en un rango de 350 a 600000 son:");
  161.             for(i=0;i<TAM;i++){
  162.                
  163.              int compareLimit=60;
  164.              int result = strncmp(bienes[i].direccion.barrio,barri,compareLimit);
  165.            
  166.                
  167.                 if( result!=0){
  168.                     conta++;
  169.                      
  170.                    
  171.                 }else if(result==0 && bienes[i].disponibilidad=='v' && bienes[i].precio>=350000 && bienes[i].precio<=600000){
  172.                     //printf("%d\n",result);
  173.                              
  174.                     printf("%d- Codigo: %s Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles %d \n"
  175.                             "Barrio %s Direccion:%s Ciudad %s ",i+1,bienes[i].codigo,bienes[i].area_construida,bienes[i].area
  176.                             ,bienes[i].caractersticas,bienes[i].niveles,bienes[i].direccion.barrio,bienes[i].direccion.direcion_casa,bienes[i].direccion.ciudad);
  177.                     puts(" ");
  178.                    
  179.                    
  180.                    
  181.                 }//fin sino
  182.                
  183.             }//fin for
  184.             if(conta==0)puts("No hay propiedades que cumplan con los requerimientos");
  185.             }//Fin else
  186.            
  187.             break;
  188.            
  189.         case 3 :
  190.             /*Al recibir un cierto rango de área construida y un cierto rango respecto al precio, genere
  191.              * el listado de todas las propiedades disponibles para alquiler
  192.             */
  193.             ///int area_a,area_b,valor_a,valor_b;
  194.             if(bandera!=1){
  195.                 puts("¡¡¡ERROR, DEBE INGRESAR LOS DATOS!!!");
  196.             }else{
  197.            
  198.             puts("***ESTABLEZCA EL RANGO PARA UN AREA CONTRUIDA***");
  199.                
  200.             puts("Ingrese el valor minimo de area:");
  201.             scanf("%d",&area_a);
  202.             puts("Ingrese el valor maximo de area:");
  203.             scanf("%d",&area_b);
  204.             puts(" ");
  205.             puts("***AHORA ESTABLEZCA UN RANGO DE PRECIO***");
  206.             puts(" ");
  207.             puts("Ingrese el valor minimo de precio:");
  208.             scanf("%d",&valor_a);
  209.             puts("Ingrese el valor maximo de precio:");
  210.             scanf("%d",&valor_b);
  211.            
  212.            
  213.             int con;
  214.             for(i=0;i<TAM;i++){
  215.                  
  216.                 if(bienes[i].disponibilidad=='a'){
  217.                    
  218.                     if(bienes[i].area_construida >= area_a && bienes[i].area_construida<= area_b && bienes[i].precio
  219.                         >=valor_a && bienes[i].precio<=valor_b){
  220.                     printf("El listado de las propiedades en alquiler que cumplen con estos requisitos son\n"
  221.                             "%d: Codigo:%s \nArea construidad: %d \nArea terreno: %d \nCaracteristicas: %s \nNiveles: %d \nBarrio:%s \n"
  222.                             "Direcion:%s \nCiudad: %s ",i,bienes[i].codigo, bienes[i].area_construida,bienes[i].area,bienes[i].caractersticas,bienes[i].niveles,bienes[i].direccion.barrio,bienes[i].direccion.direcion_casa,bienes[i].direccion.ciudad);
  223.                     puts(" ");
  224.                     con++;
  225.                 }///Fin si  
  226.             }
  227.             }///Fin for
  228.             if(con==0){
  229.                 puts("NO HAY PROPIEDADES EN ALQUILER!!");
  230.             }
  231.             }//Fin sino
  232.             break;
  233.            
  234.         case 4:
  235.             /*Al recibir una ciudad y un estrato mostrar las propiedades para venta y las propiedades para
  236.              * alquiler que cumplen con esas condiciones
  237.                 */
  238.             ///error comparando la ciudad = que la opcion 2
  239.            
  240.             if(bandera!=1){
  241.                 puts("¡¡¡ERROR, DEBE INGRESAR LOS DATOS!!!");
  242.             }else{
  243.            
  244.             puts("LISTADO DE CIUDADES REGISTRADAS");
  245.             int contc=1;///podria utilizar el otro contador anterior!!
  246.             for(i=0;i<TAM;i++){
  247.                 printf("%d %s \n",contc++,bienes[i].direccion.ciudad);
  248.                
  249.             }
  250.             fflush(stdin);
  251.             puts(" ");
  252.             puts("Ingrese una ciudad");
  253.             gets(city);
  254.            
  255.             puts("Ingrese un estrato");
  256.             scanf("%d",&estra);
  257.             limpiaBuffer();
  258.            
  259.             int bande;
  260.             bande=0;
  261.             for(i=0;i<TAM;i++){
  262.                
  263.                 int compareLimit=60;
  264.              int result = strncmp(bienes[i].direccion.ciudad,city,compareLimit);
  265.                
  266.                     if(bienes[i].disponibilidad=='a' && bienes[i].estrato==estra && result==0){
  267.                         puts("PROPIEDAD A ALQUILAR :");
  268.                         printf("*Codigo:%s, Area construidad: %d, Area terreno: %d, Caracteristicas: %s, Niveles: %d, Barrio:%s, "
  269.                             "Direcion:%s Ciudad: %s. ",bienes[i].codigo, bienes[i].area_construida,bienes[i].area,bienes[i].caractersticas
  270.                        ,bienes[i].niveles,bienes[i].direccion.barrio,bienes[i].direccion.direcion_casa,bienes[i].direccion.ciudad);  
  271.                         bande=1;
  272.                         puts(" ");
  273.                     }else{
  274.                        
  275.                     if(bienes[i].disponibilidad=='v' && bienes[i].estrato==estra && result==0){
  276.                         puts(" ");
  277.                         puts("PROPIEDAD A VENDER :");
  278.                         printf(" Codigo:%s Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles: %d Barrio:%s "
  279.                             "Direcion:%s Ciudad: %s ",bienes[i].codigo, bienes[i].area_construida,bienes[i].area,bienes[i].caractersticas
  280.                             ,bienes[i].niveles,bienes[i].direccion.barrio,bienes[i].direccion.direcion_casa,bienes[i].direccion.ciudad);
  281.                         bande=1;
  282.                               puts(" ");                                                    }
  283.                          }
  284.                     puts(" ");
  285.                   }//fin for
  286.            
  287.             if(bande==0){
  288.                 puts("No hay propiedades en venta o alquiler por el momento!!");
  289.             }
  290.             }//Fin sino
  291.             break;
  292.             //limpiaBuffer();
  293.            
  294.            
  295.            case 5:
  296.                  puts("Todas la relacion de las propiedades a continuacion:");
  297.             for(i=0;i<TAM;i++){
  298.                 mostrarBienes(i, bienes[i]);//llamado a la funcion que recibe i, estrcutura de tipo array
  299.                               }
  300.             break;
  301.            
  302.             case 6:
  303.                puts("¡¡¡¡¡ESTA SALIENDO DE LA APLICACION!!!");
  304.            
  305.             break;
  306.            
  307.        
  308.      
  309.          
  310.         default: ("!!!!ERROR, OPCION INCORRECTA!!!");
  311.            
  312.            
  313.     }///Fin switch
  314.    
  315.     }while(op!=6);///Fin do-whil
  316. }
  317. //*************************************************************************************************************
  318.  
  319. int  menu(){
  320.     int opc;
  321.     puts(" ");
  322.     puts(" ");
  323.     puts("1-Registro propiedades");
  324.     puts("2-Propiedades Disponibles para la venta segun barrio y en un rango de $350-600.");
  325.     puts("3-Propiedades disponibles para alquiler segun rango area_contruida y rango precio");
  326.     puts("4-Propiedades a la venta y alquiler segun ciudad y estrato");
  327.    
  328.     puts("5-Mostrar listados");
  329.     puts("6-Salir");
  330.     puts(" ");
  331.     scanf("%d",&opc);
  332.     ///cada listado debera mostrar codigo,area construida,area terreno,caracteristicas,niveles,barrio,direccion y ciuda
  333.     ///termina un scan entonces posiblemente esta el buffer con basura
  334.    
  335.     return opc;
  336. }
Advertisement
Add Comment
Please, Sign In to add comment