View difference between Paste ID: sFJFrE8A and y77WETHC
SHOW: | | - or go back to the newest paste.
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-
        case 5:
284+
285-
            puts("¡¡¡¡¡ESTA SALIENDO DE LA APLICACION!!!");
285+
286
            
287
            if(bande==0){
288
                puts("No hay propiedades en venta o alquiler por el momento!!");
289-
        /*case 5:
289+
290-
            puts("Todas la relacion de las propiedades a continuacion:");
290+
291
            break;
292-
                mostrarBienes(i, propieda);//llamado a la funcion que recibe i, estrcutura de tipo array
292+
293
            
294
            
295-
            break;*/
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-
    }while(op!=5);///Fin do-whil
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-
    //puts("5-Mostrar listados");
316+
317-
    puts("5-Salir");
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-
 ///Aqui funcion que debera recibir la estructura de tipo array
326+
327-
   void mostrarBienes(int i,struct  propiedades bienes[] ){///?????
327+
328
    puts("5-Mostrar listados");
329-
       struct propieda bienes[TAM];//?????
329+
    puts("6-Salir");
330-
  printf("%d: Codigo:%s  Area construidad: %d Area terreno: %d Caracteristicas: %s Niveles: %d Estrato: %d Barrio:%s "
330+
331-
                            "Direcion:%s Ciudad: %s Precio: %dl Disponibilidad: %c",i+1,bienes2[i].area_construida,bienes2[i].area,bienes2[i].caractersticas
331+
332-
                       /*--->error*/,bienes2[i].niveles,bienes2[i].estrato,bienes2[i].direccion.barrio,bienes2[i].direccion.direcion_casa,bienes2[i].direccion.ciudad,bienes2[i].precio,bienes2[i].Disponibilidad);  
332+
333
    ///termina un scan entonces posiblemente esta el buffer con basura
334
    
335
    return opc;
336
}