Sistema de Gestión de Alquileres de Departamentos
struct ubicacion {
char calle[40];
int numero;
char colonia[50];
int codigo_postal;
char ciudad[20];
char estado[20];
};
typedef struct {
int clave;
struct ubicacion ubicacion_depa;
int piso;
int num_dep;
float extension; // mtrs_cuad
float precio_renta;
char estatus[1];
int num_recam;
int num_banios;
char clasificacion[1];
} Departamento;
/////////////////////////////////////////////////////////////////////////////////////////////////////////
int encuestas; // Variable global para el numero de departamentos
char ciudad_a_buscar[50];
char colonia_a_buscar[50];
float ext1 = 0.0, ext2 = 0.0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////
void llenar_datos(Departamento[]);
void mostrar_menu();
void departamento_rentados(Departamento[]);
void departamento_disponibles(Departamento[]);
void departamento_disponibles_ciudad(Departamento[], char ciudad[]);
void departamento_disponibles_colonia(Departamento[], char colonia[]);
void departamento_disponibles_extension(Departamento[], float extension1, float extension2);
////////////////////////////////////////////////////////////////////////////////////////////////////////
int main() {
printf("\nCuantas encuestas desea llenar? ");
scanf("%d", &encuestas);
system("cls");
Departamento departamentos[encuestas];
llenar_datos(departamentos);
int opcion;
do {
mostrar_menu();
printf("\nSeleccione la opcion: ");
scanf("%d", &opcion);
switch (opcion) {
case 1:
departamento_rentados(departamentos);
system("pause");
break;
case 2:
departamento_disponibles(departamentos);
system("pause");
break;
case 3:
printf("\nIngrese la ciudad donde desea un Departamento: ");
fflush(stdin);
gets(ciudad_a_buscar);
departamento_disponibles_ciudad(departamentos, ciudad_a_buscar);
break;
case 4:
printf("\nIngrese la colonia donde desea un departamento: ");
fflush(stdin);
gets(colonia_a_buscar);
departamento_disponibles_colonia(departamentos, colonia_a_buscar);
break;
case 5:
printf("\nIngrese el primer parametro de la extension: ");
scanf("%f", &ext1);
printf("\nIngrese el segundo parametro de la extension: ");
scanf("%f", &ext2);
departamento_disponibles_extension(departamentos, ext1, ext2);
break;
case 6:
opcion = 6;
printf("\nADIOS!!!");
break;
default:
opcion = 6;
break;
}
system("cls");
} while (opcion != 6);
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
void llenar_datos(Departamento x[]) {
int w;
for (w = 0; w < encuestas; w++) {
do {
printf("\nIngrese la clave del departamento: ");
scanf("%d", &x[w].clave);
} while (x[w].clave < 0);
fflush(stdin);
printf("\nIngresa la calle:\t");
gets(x[w].ubicacion_depa.calle);
printf("\nIngresa el numero:\t");
scanf("%d", &x[w].ubicacion_depa.numero);
fflush(stdin);
printf("\nIngresa colonia:\t");
gets(x[w].ubicacion_depa.colonia);
printf("\nIngresa el Codigo Postal:\t");
scanf("%d", &x[w].ubicacion_depa.codigo_postal);
fflush(stdin);
printf("\nIngresa la Ciudad:\t");
gets(x[w].ubicacion_depa.ciudad);
fflush(stdin);
printf("\nIngresa el Estado:\t");
gets(x[w].ubicacion_depa.estado);
do {
printf("\nIngrese el piso:\t");
scanf("%d", &x[w].piso);
} while (x[w].piso < 0);
do {
printf("\nIngrese el numero de departamento (entero):\t");
scanf("%d", &x[w].num_dep);
} while (x[w].num_dep < 0);
printf("\nIngrese el numero de metros cuadrados del departamento:\t");
scanf("%f", &x[w].extension);
do {
printf("\nIngrese el precio de renta:\t");
scanf("%f", &x[w].precio_renta);
} while (x[w].precio_renta < 0.0);
printf("\nEstado del departamento Rentado || Sin rentar (r o s):\t");
fflush(stdin);
gets(x[w].estatus);
do {
printf("\nIngrese el numer de recamaras:\t");
scanf("%d", &x[w].num_recam);
} while (x[w].num_recam < 0);
do {
printf("\nIngrese la cantidad de banios:\t");
scanf("%d", &x[w].num_banios);
} while (x[w].num_banios < 0);
printf("\nIngrese la clasificacion Amueblado || Sin amueblar (a o s):\t");
fflush(stdin);
gets(x[w].clasificacion);
}
system("cls");
}
void mostrar_menu() {
printf("\n\n1.- Mostrar Informacion de los departamentos rentados");
printf("\n2.- Mostrar Informacion de los departamentos disponibles");
printf("\n3.- Mostrar Informacion de los departamentos disponibles segun ciudad dada");
printf("\n4.- Mostrar Informacion de los departamentos disponibles segun colonia dada");
printf("\n5.- Mostrar la informacion de los departamentos disponibles dentro de un rango de extension dada");
printf("\n6.- Salir.");
}
void departamento_rentados(Departamento x[]) {
// estatus
int i = 0, j = 0;
char band = 'r';
int banda = 0;
for (i; i < encuestas; j++) {
if (band == x[i].estatus) {
printf("\nLa clave del departamento rentado es:\t%d", x[i].clave);
fflush(stdin);
printf("\nLa ubicacion del departamento rentado es:\n\n %s \t \n%d", x[i].ubicacion_depa.calle, x[i].ubicacion_depa.numero);
fflush(stdin);
printf("\n%s \n%s \n%s", x[i].ubicacion_depa.colonia, x[i].ubicacion_depa.ciudad, x[i].ubicacion_depa.estado);
banda = 1;
}
i++;
}
if (banda == 0) {
printf("\nNo hay departamentos rentados");
}
}
void departamento_disponibles(Departamento x[]) {
// estatus
int i = 0, j = 0;
char band = 'd';
int banda = 0;
for (i; i < encuestas; j++) {
if (band == x[i].estatus) {
printf("\nLa clave del departamento disponible es:\t%d", x[i].clave);
fflush(stdin);
printf("\nLa ubicacion del departamento disponible es:\n\n %s \t \n%d", x[i].ubicacion_depa.calle, x[i].ubicacion_depa.numero);
fflush(stdin);
printf("\n%s \n%s \n%s", x[i].ubicacion_depa.colonia, x[i].ubicacion_depa.ciudad, x[i].ubicacion_depa.estado);
banda = 1;
}
i++;
}
if (banda == 0) {
printf("\nNo hay departamentos disponibles");
}
}
void departamento_disponibles_ciudad(Departamento x[], char y[]) {
int i = 0, banda = 0;
for (i; i < encuestas; i += 1) {
if (strcmp(y, x[i].ubicacion_depa.ciudad) == 0) {
printf("\nDepartamentos disponible en %s: \n", y);
fflush(stdin);
printf("\nclave: %d, calle: %s, numero: %d", x[i].clave, x[i].ubicacion_depa.calle, x[i].ubicacion_depa.numero);
printf("\ncolonia: %s", x[i].ubicacion_depa.colonia);
banda = 1;
}
}
if (banda == 0) {
printf("\nNo hay departamentos en esa ciudad");
}
}
void departamento_disponibles_colonia(Departamento x[], char y[]) {
int i = 0, banda = 0;
for (i; i < encuestas; i += 1) {
if (strcmp(y, x[i].ubicacion_depa.colonia) == 0) {
printf("\nDepartamentos disponible en %s: \n", y);
fflush(stdin);
printf("\nclave: %d, calle: %s, numero: %d", x[i].clave, x[i].ubicacion_depa.calle, x[i].ubicacion_depa.numero);
banda = 1;
}
}
if (banda == 0) {
printf("\nNo hay departamentos en esa colonia");
}
}
void departamento_disponibles_extension(Departamento x[], float y, float z) {
int i = 0;
for (i; i < encuestas; i++) {
if ((y <= x[i].extension) && (z >= x[i].extension) && x[i].estatus == 'd') {
printf("\nclave: %d, calle: %s, numero: %d", x[i].clave, x[i].ubicacion_depa.calle, x[i].ubicacion_depa.numero);
printf("\n, codigo postal: %d, ciudad: %s", x[i].ubicacion_depa.codigo_postal, x[i].ubicacion_depa.ciudad);
}
}
}