Untitled
unknown
plain_text
3 years ago
6.6 kB
7
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...