Untitled
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...