Untitled

 avatar
unknown
plain_text
2 years ago
6.6 kB
4
Indexable
#include <iostream>
#include <vector>
#include <string>
using namespace std;

class Auction {
public:
    string item_name;
    int auctioneer_code;
    double start_price;
    double sale_price;
    string sale_date;

    // Конструктор
    Auction(string name, int code, double start, double sale = 0, string date = "") {
        item_name = name;
        auctioneer_code = code;
        start_price = start;
        sale_price = sale;
        sale_date = date;
    }
};

int main() {
    vector<Auction> auctions = {
    Auction("Vaza",1,5000,50000,"23.10.2023"),
    Auction("House",1,1000000,4000000,"23.10.2023"),
    Auction("Car",1,1200000,1250000,"23.10.2023")
    };
    setlocale(0, "");
    int choice;
    while (true) {
        cout << "1. Добавить запись\n";
        cout << "2. Изменить запись\n";
        cout << "3. Удалить запись\n";
        cout << "4. Получить список предметов, проданных по цене продажи, которая больше стартовой в 2 раза\n";
        cout << "5. Найти разницу между стартовой ценой и ценой продажи по каждому лоту аукциона\n";
        cout << "6. Рассчитать сколько раз каждый из аукционеров что-то покупал\n";
        cout << "7. Вывод всех записей\n";
        cout << "Выберите действие (или 0 для выхода): ";
        cin >> choice;

        if (choice == 0) {
            break;
        }
        else if (choice == 1) {
            // Добавление записи
            string name, date;
            int code;
            double start, sale;
            cout << "Введите название предмета: ";
            cin >> name;
            cout << "Введите код аукциониста: ";
            cin >> code;
            cout << "Введите стартовую цену: ";
            cin >> start;
            cout << "Введите цену продажи (если не продано, введите 0): ";
            cin >> sale;
            cout << "Введите дату продажи (если не продано, введите пустую строку): ";
            cin >> date;
            auctions.push_back(Auction(name, code, start, sale, date));
        }
        else if (choice == 2) {
            // Изменение записи
            int index;
            cout << "Введите индекс записи, которую хотите изменить: ";
            cin >> index;
            if (index < auctions.size()) {
                Auction& auction = auctions[index];
                cout << "Введите новое название предмета: ";
                cin >> auction.item_name;
                cout << "Введите новый код аукциониста: ";
                cin >> auction.auctioneer_code;
                cout << "Введите новую стартовую цену: ";
                cin >> auction.start_price;
                cout << "Введите новую цену продажи (если не продано, введите 0): ";
                cin >> auction.sale_price;
                cout << "Введите новую дату продажи (если не продано, введите пустую строку): ";
                cin >> auction.sale_date;
            }
            else {
                cout << "Некорректный индекс записи\n";
            }
        }
        else if (choice == 3) {
            // Удаление записи
            int index;
            cout << "Введите индекс записи, которую хотите удалить: ";
            cin >> index;
            if (index < auctions.size()) {
                auctions.erase(auctions.begin() + index);
            }
            else {
                cout << "Некорректный индекс записи\n";
            }
        }
        else if (choice == 4) {
            // Список предметов, проданных по цене продажи, которая больше стартовой в 2 раза
            for (const Auction& auction : auctions) {
                if (auction.sale_price > auction.start_price * 2) {
                    cout << auction.item_name << "\n";
                }
            }
        }
        else if (choice == 5) {
            // Разница между стартовой ценой и ценой продажи по каждому лоту аукциона
            for (const Auction& auction : auctions) {
                double difference = auction.sale_price - auction.start_price;
                cout << auction.item_name << ": " << difference << "\n";
            }
        }
        else if (choice == 6) {
            // Количество покупок для каждого аукциониста
            vector<int> auctioneer_counts;
            for (const Auction& auction : auctions) {
                if (auction.auctioneer_code >= auctioneer_counts.size()) {
                    auctioneer_counts.resize(auction.auctioneer_code + 1);
                }
                auctioneer_counts[auction.auctioneer_code]++;
            }
            for (int i = 0; i < auctioneer_counts.size(); i++) {
                cout << "Аукционист " << i << " совершил " << auctioneer_counts[i] << " покупок\n";
            }
        }
        else if (choice == 7) {
            // Вывод всех записей
            cout << "Список записей:\n";
            for (const Auction& auction : auctions) {
                cout << "Предмет: " << auction.item_name << endl;
                cout << "Аукционист: " << auction.auctioneer_code << endl;
                cout << "Стартовая цена: " << auction.start_price << endl;
                cout << "Цена продажи: " << auction.sale_price << endl;
                cout << "Дата продажи: " << auction.sale_date << endl;
                cout << endl;
            }
        }
        else {
            cout << "Некорректный выбор\n";
        }
    }
    return 0;
}
Editor is loading...