Название
Информатика

Как можно организовать программу на языке C++, которая будет являться контейнером для картотеки в бюро обмена квартир?

Как можно организовать программу на языке C++, которая будет являться контейнером для картотеки в бюро обмена квартир? Каждая запись включает в себя следующую информацию: 1. Количество комнат в квартире. 2. Этаж, на котором находится квартира. 3. Площадь квартиры. 4. Адрес квартиры. Каким образом можно реализовать следующие функции: 1. Создание начальной картотеки. 2. Ввод запроса на обмен квартирами. 3. Поиск подходящего варианта в картотеке: если количество комнат и этаж совпадают, а разница в площади не превышает 10%, то выводится соответствующая запись и она удаляется из списка, в противном случае запрос добавляется в список. 4. Вывод всего списка записей. 5. Гарантия диалога с пользователем с помощью меню и контроль ошибок.
Верные ответы (1):
  • Искрящийся_Парень
    Искрящийся_Парень
    38
    Показать ответ
    Название: Реализация картотеки в языке C++
    Пояснение: Для реализации программы на языке C++, которая является контейнером для картотеки в бюро обмена квартир, мы можем использовать структуру или класс для хранения информации о каждой квартире. В структуре или классе будут содержаться поля, соответствующие каждому из требуемых параметров, то есть количество комнат, этаж, площадь и адрес. Определив структуру или класс, мы можем создать контейнер для хранения объектов этого типа, например, вектор.

    1. Создание начальной картотеки:
    - Создадим вектор, который будет представлять картотеку квартир.
    - Позволим пользователю вводить информацию о каждой квартире с помощью функции ввода данных.
    - Создаем экземпляр структуры или класса для каждой квартиры.
    - После ввода всех данных добавляем экземпляр вектора.

    2. Ввод запроса на обмен квартирами:
    - Позволяет пользователю вводить параметры квартиры, которую он хочет обменять.
    - Создаем экземпляр структуры или класса для параметров запроса.
    - Проверяем наличие совпадений с параметрами квартир в картотеке.

    3. Поиск подходящего варианта в картотеке:
    - Проходим по всем квартирам вектора картотеки.
    - Сравниваем количество комнат и этаж с параметрами запроса и проверяем, чтобы разница в площади не превышала 10%.
    - Если найдено совпадение, выводим соответствующую запись на экран и удаляем ее из вектора.

    Совет: Для облегчения процесса реализации программы, рекомендуется разбить ее на несколько функций, каждая из которых будет выполнять определенную задачу, например, функцию ввода данных, функцию поиска и функцию вывода результатов.

    Дополнительный материал:
    cpp
    #include
    #include
    #include

    struct Apartment {
    int roomCount;
    int floor;
    double area;
    std::string address;
    };

    void createInitialCatalog(std::vector& catalog) {
    // Функция для создания начальной картотеки
    int n;
    std::cout << "Введите количество квартир в картотеке: ";
    std::cin >> n;

    for (int i = 0; i < n; i++) {
    Apartment a;
    std::cout << "Квартира №" << i+1 << std::endl;
    std::cout << "Количество комнат: ";
    std::cin >> a.roomCount;
    std::cout << "Этаж: ";
    std::cin >> a.floor;
    std::cout << "Площадь: ";
    std::cin >> a.area;
    std::cout << "Адрес: ";
    std::cin.ignore();
    std::getline(std::cin, a.address);

    catalog.push_back(a);
    }
    }

    void searchAndRemoveApartments(std::vector& catalog, int roomCount, int floor, double area) {
    // Функция для поиска подходящего варианта и его удаления из картотеки
    for (auto it = catalog.begin(); it != catalog.end(); it++) {
    if (it->roomCount == roomCount && it->floor == floor && std::abs(it->area - area) / area <= 0.1) {
    std::cout << "Найдена подходящая квартира:" << std::endl;
    std::cout << "Количество комнат: " << it->roomCount << std::endl;
    std::cout << "Этаж: " << it->floor << std::endl;
    std::cout << "Площадь: " << it->area << std::endl;
    std::cout << "Адрес: " << it->address << std::endl;

    catalog.erase(it);
    return;
    }
    }

    std::cout << "Подходящий вариант не найден." << std::endl;
    }

    int main() {
    std::vector catalog;

    createInitialCatalog(catalog);

    int roomCount, floor;
    double area;

    std::cout << "Введите параметры квартиры для обмена:" << std::endl;
    std::cout << "Количество комнат: ";
    std::cin >> roomCount;
    std::cout << "Этаж: ";
    std::cin >> floor;
    std::cout << "Площадь: ";
    std::cin >> area;

    searchAndRemoveApartments(catalog, roomCount, floor, area);

    return 0;
    }


    Упражнение: Напишите программу на языке C++, которая реализует функцию добавления новой квартиры в картотеку. Программа должна запросить у пользователя информацию о новой квартире (количество комнат, этаж, площадь и адрес) и добавить ее в существующую картотеку. После добавления выведите на экран обновленную картотеку.
Написать свой ответ: