/**
* @file Ex2.cpp
* @author Лєонов В.В, гр. 515і2
* @date 15 лютого 2024
* @brief Лабороторна робота N 1, Варіант 11
*
* Розгалуження та вибір завдання 3
*/
// підключення заголовних файлів стандартних бібліотек мови C
#include <stdio.h>
#include <locale.h>
#include "House_info.h"
#include "House_func.cpp"
int main()
{
setlocale(LC_ALL, "rus");//Підключення російської мови
int flat_number, cor_check, searchfloor, rooms, balcons;//Оголошення змінних
//Введеня даних
printf("Введите номер квартиры: ");
scanf("%d", &flat_number);
cor_check = entrance_number_check(flat_number);
switch (cor_check)
{
default: printf("\nНеверный номер квартиры\n"); return ERR;//Виведення помилки
case 1: printf("\nНомер подъезда: 1\n"); break;
case 2: printf("\nНомер подъезда: 2\n"); break;
case 3: printf("\nНомер подъезда: 3\n"); break;
}
searchfloor = floor_searcher(flat_number);
printf("\nКвартира находиться на этаже №: %d\n", searchfloor);
rooms = room_counter(flat_number);
printf("\nВ квартире: %d комнат\n", rooms);
balcons = balc_counter(flat_number);
printf("\nВ квартире: %d балкон(ов)\n", balcons);
return 0;//Завершення роботи
}
#include "House_info.h"
//Функція, яка перевіряє введені дані
PRIVATE int flat_number_check(int flat_number)
{
return flat_number >= FIRST_FLAT && flat_number <= LAST_FLAT;
}
//Функція, яка знаходить під'їзд в якому розташована квартира, чи виводить помилку, якщо данні введені неправильно
PUBLIC int entrance_number_check(int flat_number)
{
int check = flat_number_check(flat_number);
if (!check)
{
return ERR;
}
if (flat_number >= 61 && flat_number <= 120)
{
return 2;
}
if (flat_number >= 121)
{
return 3;
}
else return 1;
}
//Функція, що шукає поверх
PUBLIC int floor_searcher(int flat_number)
{
if(flat_number_check(flat_number)){
int floor = 0;
for (int i = 1; i <= 36; i++)
{
if (flat_number <= i * 5)
{
floor = i;
if (i >= 13)
{
floor = i - 12;
}
if (i >= 25)
{
floor = i - 24;
}
break;
}
}
return floor;
}
else return ERR;
}
//Функція що вираховує кількість кімнат в квартирі залежно від її знаходження
PUBLIC int room_counter(int flat_number)
{
int each_room_fl_list[5] = {7,6,5,6,7};
return each_room_fl_list[(flat_number - 1) % 5];
}
//Функція що вираховує кількість балконів в квартирі залежно від її знаходження
PUBLIC int balc_counter(int flat_number)
{
int each_room_bl_list[5] = {3,1,2,1,3};
return each_room_bl_list[(flat_number - 1) % 5];
}
#ifndef HOUSE_INFO_H
#define ERR -1
#define FIRST_FLAT 1
#define LAST_FLAT 180
#define PUBLIC
#define FLOOR_FLATS 5
#define PRIVATE static
PRIVATE int flat_number_check(int flat_number);
PUBLIC int entrance_number_check(int flat_number);
PUBLIC int floor_searcher(int flat_numer);
PUBLIC int room_counter(int flat_number);
PUBLIC int balc_counter(int flat_number);
#endif