AlexisRuiz

Bienes raices manejo de informacion en C

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