• Domingo 15 de Diciembre de 2024, 04:55

Autor Tema:  PROBLEMA...  (Leído 930 veces)

el_funa

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
PROBLEMA...
« en: Jueves 23 de Julio de 2009, 19:41 »
0
bien tengo este codigo a medio armar el problema es que al momento de vender un departamento tengo que verificar que primero existe, segundo si esta ocupado o desocupado, y al estar desocupado asignarlo como ocupado para que no se vuelva a vender.

el problema esta en que no puedo hacer eso del case 3
lo que me explicaron es que se asignaba al principio donde creaba los deptos desocupado y al momento de venderlos ivan cambiando a ocupado pero esa parte no la pude hacer por que me confundi :S
 
espero que me puedan ayudar con este problemita...

saludos.


Código: C++
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct str_departamento
  5. {
  6. int n_habitaciones;
  7. int n_banos;
  8. float precio_dpto;
  9. int n_dpto;
  10.  
  11.  
  12. }departamento;
  13.  
  14.  
  15. typedef struct str_deuda
  16. {
  17. float cancelado;
  18. float debe;
  19. }deuda;
  20.  
  21.  
  22.  
  23. typedef struct str_persona
  24. {
  25. char nombre[20];
  26. int edad;
  27. char rut[9];
  28.  
  29.  
  30. }persona;
  31.  
  32.  
  33. typedef struct str_edificio
  34. {
  35. char nombre[20];
  36. int pisos;
  37.  
  38. departamento dpto[3];
  39. persona habitante;
  40. deuda deuda_cliente;
  41. }edificio;
  42.  
  43.  
  44.  
  45. edificio crear_edificio(edificio);
  46. edificio crear_dpto(edificio);
  47. edificio vender_dpto(edificio);
  48. edificio pagar_dpto(edificio);
  49. void pago_mayor(edificio);
  50. void dpto_ocupados(edificio);
  51. void dpto_desocupados(edificio);
  52.  
  53.  
  54. int main()
  55. {
  56. int op;
  57.  
  58. edificio edif;
  59. persona dueno;
  60.  
  61.  
  62. do{
  63. printf("----------------MENU--------------");
  64. printf("n----------------------------------n");
  65. printf("-----1> crear_edificio------------n");
  66. printf("-----2> agregar departamento------n");
  67. printf("-----3> vender departamento-------n");
  68. printf("-----4> pagar departamento--------n");
  69. printf("-----5> mostrar persona >50-------n");
  70. printf("-----6> departamentos ocupados----n");
  71. printf("-----7> departamentos desocupados-n");
  72. printf("-----8> salir---------------------n");
  73.  
  74. printf("elija una opcion: nn");
  75. scanf(" %d",&op);
  76.  
  77. switch(op)
  78. {
  79. case 1: crear_edificio(edif);
  80.         break;
  81.  
  82. case 2: crear_dpto(edif);
  83.         break;
  84.  
  85. case 3: vender_dpto(edif);
  86.         break;
  87.  
  88. case 4: pagar_dpto(edif);
  89.         break;
  90.  
  91. case 5: pago_mayor(edif);
  92.         break;
  93.  
  94. case 6: dpto_ocupados(edif);
  95.         break;
  96.  
  97. case 7: dpto_desocupados(edif);
  98.         break;
  99.                        
  100. default :
  101.     printf("opcion invalida");
  102.     break;
  103.  
  104. }
  105.  
  106. }while(op!=8);
  107.  
  108. return EXIT_SUCCESS;
  109. }
  110.  
  111.  
  112.  
  113.  
  114. edificio crear_edificio(edificio a )
  115. {
  116.  
  117. printf("ingrese nombre del edificionn");
  118. scanf("%s",&a.nombre);
  119.  
  120. return a;
  121. }
  122.  
  123.  
  124. edificio crear_dpto(edificio a)
  125. {
  126. int i;
  127.  
  128. for(i=1;i<=3;i++)
  129. {
  130. printf("nningrese numero departamenton");
  131. scanf("%d",&a.dpto[i].n_dpto);
  132. printf("ningrese numero de habitacionesn");
  133. scanf("%d",&a.dpto[i].n_habitaciones);
  134. printf("ningrese numero de banosn");
  135. scanf("%d",&a.dpto[i].n_banos);
  136. printf("ningrese precio del departamenton");
  137. scanf("%f",&a.dpto[i].precio_dpto);
  138. }
  139.  
  140. return a;
  141. }
  142.  
  143. edificio vender_dpto(edificio a)
  144. {
  145.          int i,p;
  146. printf("ingrese nombre del compradornn");
  147. scanf("%s",a.habitante.nombre);
  148. printf("ingrese rut del compradorn");
  149. scanf("%s",a.habitante.rut);
  150. printf("ingrese edad del compradorn");
  151. scanf(" %d",&a.habitante.edad);
  152. printf("que departamento decea comprarn");
  153. scanf(" %d",&p);
  154.  
  155. //------------------------------------  es aqui el PROBLEMA---------------------------------
  156. for(i=1;i<=3;i++){    
  157.                      }            
  158. if(p==a.dpto[i].n_dpto)
  159. {
  160.                         printf("es suyo el dpton");
  161.                         }  
  162.                         else{
  163.                              printf("no existe el dpton");
  164.                              }  
  165. //-----------------------------------------------------------------
  166. return a;
  167. }
  168.  
  169.  
  170. edificio pagar_dpto(edificio a)
  171. {
  172. int i;
  173.  
  174.  
  175.  
  176. printf("ingrese numero de dpto a pagarnn");
  177. scanf("%d",&i);
  178. printf("el valor del dpto es:   ");
  179. printf("%f",a.dpto[i].precio_dpto);
  180. printf("nningrese monto cancelado del departamentonn");
  181. scanf("%f",&a.deuda_cliente.cancelado);
  182.  
  183. return a;
  184. }
  185.  
  186. void pago_mayor(edificio a)
  187. {
  188.   printf("%sn",a.habitante.nombre);
  189.   printf("%sn",a.habitante.rut);
  190.  
  191. }        
  192.  
  193. void dpto_ocupados(edificio a)
  194. {
  195.      
  196. }    
  197.  
  198.  
  199. void dpto_desocupados(edificio a)
  200. {
  201.  
  202. }
  203.  
  204.  
  205.  
  206.