Sistema de Gestión de Alquileres de Departamentos en C


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);
        }
    }
}

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *