Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define TAM 3
- struct ubicacion_geografica {
- char barrio[50];
- char direcion_casa[60];
- char ciudad[60];
- };
- struct propieda{
- char codigo[60];
- int area;
- int area_construida;
- char caractersticas[70];
- int niveles;
- int estrato;
- struct ubicacion_geografica direccion;
- long precio;
- char disponibilidad;
- };
- ///Aqui funcion que debera recibir la estructura de tipo array
- void mostrarBienes(int i, struct propieda bienes[i] ){///?????
- printf("codigo %s",bienes[i].codigo);
- printf("%d: Codigo:%s Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles: %d Estrato: %d Barrio:%s ",
- "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);
- }
- //____________________________________________________________________________________________________________________
- void limpiaBuffer() {
- int c;
- while ((c = getchar()) != '\n' && c != EOF);
- }
- //La función getchar() devuelve el carácter que se halle en la entrada estándar
- //esta funcion devuelve un entero
- //********************************************************************************************
- int main(){
- puts("BIENVENIDO\n ___________SISTEMAS ADMINISTRACION BIENES RAICES DE PEREIRA 2013___________");
- struct propieda bienes[TAM];
- int op;///Contendra char opcion
- int bandera=0;
- do{
- op=menu();///Funcion menu principal
- limpiaBuffer();
- puts(" ");
- int i;
- switch (op){
- char barri[50];
- int area_a,area_b,valor_a,valor_b;
- char city[80];
- int estra;
- case 1:
- ///Cargar informacion
- puts("INGRESAR DATOS BIENES:");
- for(i=0;i<TAM;i++){
- printf("Te quedan %d registros por hacer\n",TAM-i);
- puts(" ");
- printf("Datos %da propiedad\n",i+1);
- puts("Ingrese codigo:");
- gets(bienes[i].codigo);
- puts("Ingrese area:");
- scanf("%d",&bienes[i].area);
- puts("Ingrese area construida:");
- scanf("%d",&bienes[i].area_construida);
- limpiaBuffer();
- puts("Ingrese caracteristicas:");
- gets(bienes[i].caractersticas);
- puts("Ingrese nivel:");
- scanf("%d",&bienes[i].niveles);
- puts("Ingrese estrato:");
- scanf("%d",&bienes[i].estrato);
- limpiaBuffer();
- puts("Ingrese barrio:");
- fgets(bienes[i].direccion.barrio,50,stdin);
- puts("Ingrese ciudad:");
- gets(bienes[i].direccion.ciudad);
- puts("Ingrese el estado de disponibilidad: v:venta,a:arrendo");
- scanf("%c",&bienes[i].disponibilidad);
- limpiaBuffer();
- puts("Ingrese direccion casa:");
- gets(bienes[i].direccion.direcion_casa);
- puts("Ingrese valor:");
- scanf("%ld",&bienes[i].precio);
- limpiaBuffer();
- bandera=1;
- }///Fin for
- ///mostrar propiedades
- puts("__________________________________________________________________________________________________");
- for(i=0;i<TAM;i++){
- printf("%d: Codigo:%s Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles: %d Estrato: %d Barrio:%s "
- "Direcion:%s Ciudad: %s Precio: %ld Disponibilidad: %c",i+1,bienes[i].codigo,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);
- puts(" ");
- }
- puts("__________________________________________________________________________________________________");
- puts(" ");
- break;
- puts(" ");
- case 2:
- // b-Propiedades Disponibles para la venta segun barrio y rango de $350-600.
- if(bandera!=1){
- puts("¡¡¡ERROR, DEBE INGRESAR LOS DATOS!!!");
- }else{
- puts("LISTADO DE BARRIOS");
- for(i=0;i<TAM;i++){
- printf(" %s ",bienes[i].direccion.barrio);///colocar contador|
- }
- puts(" ");
- ///limpiaBuffer();
- puts("Ingrese barrio:");
- fgets(barri,50,stdin);
- puts("Ha ingresado el stg barrio:");
- puts(barri);
- int conta;
- puts("Las propiedades que estan a la venta, segun el barrio ingresado, con un costo en un rango de 350 a 600000 son:");
- for(i=0;i<TAM;i++){
- int compareLimit=60;
- int result = strncmp(bienes[i].direccion.barrio,barri,compareLimit);
- if( result!=0){
- conta++;
- }else if(result==0 && bienes[i].disponibilidad=='v' && bienes[i].precio>=350000 && bienes[i].precio<=600000){
- //printf("%d\n",result);
- printf("%d- Codigo: %s Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles %d \n"
- "Barrio %s Direccion:%s Ciudad %s ",i+1,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);
- puts(" ");
- }//fin sino
- }//fin for
- if(conta==0)puts("No hay propiedades que cumplan con los requerimientos");
- }//Fin else
- break;
- case 3 :
- /*Al recibir un cierto rango de área construida y un cierto rango respecto al precio, genere
- * el listado de todas las propiedades disponibles para alquiler
- */
- ///int area_a,area_b,valor_a,valor_b;
- if(bandera!=1){
- puts("¡¡¡ERROR, DEBE INGRESAR LOS DATOS!!!");
- }else{
- puts("***ESTABLEZCA EL RANGO PARA UN AREA CONTRUIDA***");
- puts("Ingrese el valor minimo de area:");
- scanf("%d",&area_a);
- puts("Ingrese el valor maximo de area:");
- scanf("%d",&area_b);
- puts(" ");
- puts("***AHORA ESTABLEZCA UN RANGO DE PRECIO***");
- puts(" ");
- puts("Ingrese el valor minimo de precio:");
- scanf("%d",&valor_a);
- puts("Ingrese el valor maximo de precio:");
- scanf("%d",&valor_b);
- int con;
- for(i=0;i<TAM;i++){
- if(bienes[i].disponibilidad=='a'){
- if(bienes[i].area_construida >= area_a && bienes[i].area_construida<= area_b && bienes[i].precio
- >=valor_a && bienes[i].precio<=valor_b){
- printf("El listado de las propiedades en alquiler que cumplen con estos requisitos son\n"
- "%d: Codigo:%s \nArea construidad: %d \nArea terreno: %d \nCaracteristicas: %s \nNiveles: %d \nBarrio:%s \n"
- "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);
- puts(" ");
- con++;
- }///Fin si
- }
- }///Fin for
- if(con==0){
- puts("NO HAY PROPIEDADES EN ALQUILER!!");
- }
- }//Fin sino
- break;
- case 4:
- /*Al recibir una ciudad y un estrato mostrar las propiedades para venta y las propiedades para
- * alquiler que cumplen con esas condiciones
- */
- ///error comparando la ciudad = que la opcion 2
- if(bandera!=1){
- puts("¡¡¡ERROR, DEBE INGRESAR LOS DATOS!!!");
- }else{
- puts("LISTADO DE CIUDADES REGISTRADAS");
- int contc=1;///podria utilizar el otro contador anterior!!
- for(i=0;i<TAM;i++){
- printf("%d %s \n",contc++,bienes[i].direccion.ciudad);
- }
- fflush(stdin);
- puts(" ");
- puts("Ingrese una ciudad");
- gets(city);
- puts("Ingrese un estrato");
- scanf("%d",&estra);
- limpiaBuffer();
- int bande;
- bande=0;
- for(i=0;i<TAM;i++){
- int compareLimit=60;
- int result = strncmp(bienes[i].direccion.ciudad,city,compareLimit);
- if(bienes[i].disponibilidad=='a' && bienes[i].estrato==estra && result==0){
- puts("PROPIEDAD A ALQUILAR :");
- printf("*Codigo:%s, Area construidad: %d, Area terreno: %d, Caracteristicas: %s, Niveles: %d, Barrio:%s, "
- "Direcion:%s Ciudad: %s. ",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);
- bande=1;
- puts(" ");
- }else{
- if(bienes[i].disponibilidad=='v' && bienes[i].estrato==estra && result==0){
- puts(" ");
- puts("PROPIEDAD A VENDER :");
- printf(" Codigo:%s Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles: %d Barrio:%s "
- "Direcion:%s Ciudad: %s ",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);
- bande=1;
- puts(" "); }
- }
- puts(" ");
- }//fin for
- if(bande==0){
- puts("No hay propiedades en venta o alquiler por el momento!!");
- }
- }//Fin sino
- break;
- //limpiaBuffer();
- case 5:
- puts("Todas la relacion de las propiedades a continuacion:");
- for(i=0;i<TAM;i++){
- mostrarBienes(i, bienes[i]);//llamado a la funcion que recibe i, estrcutura de tipo array
- }
- break;
- case 6:
- puts("¡¡¡¡¡ESTA SALIENDO DE LA APLICACION!!!");
- break;
- default: ("!!!!ERROR, OPCION INCORRECTA!!!");
- }///Fin switch
- }while(op!=6);///Fin do-whil
- }
- //*************************************************************************************************************
- int menu(){
- int opc;
- puts(" ");
- puts(" ");
- puts("1-Registro propiedades");
- puts("2-Propiedades Disponibles para la venta segun barrio y en un rango de $350-600.");
- puts("3-Propiedades disponibles para alquiler segun rango area_contruida y rango precio");
- puts("4-Propiedades a la venta y alquiler segun ciudad y estrato");
- puts("5-Mostrar listados");
- puts("6-Salir");
- puts(" ");
- scanf("%d",&opc);
- ///cada listado debera mostrar codigo,area construida,area terreno,caracteristicas,niveles,barrio,direccion y ciuda
- ///termina un scan entonces posiblemente esta el buffer con basura
- return opc;
- }
Advertisement
Add Comment
Please, Sign In to add comment