Напишите тесты для данного класса при помощи googletest. А также напишите отчет о тестирование сколько успешных тестов, сколько неуспешных и т.д.
Пользователь создает объект класса Wallet, указывая начальный баланс (по умолчанию 0).
Пользователь может добавлять деньги на счет, используя метод add_cash(amount), где amount - сумма для добавления.
Пользователь может расходовать деньги со счета, используя метод spend_cash(spend_sum), где spend_sum - сумма для расходования.
Если на счету недостаточно средств для расходования, метод spend_cash бросает исключение InsufficientAmount.
Пользователь может получать текущий баланс с помощью метода get_balance().
Класс обеспечивает контроль над доступом к данным о балансе, предоставляя только методы для их изменения и получения.
Класс содержит константу для хранения курса конвертации рублей в доллары для упрощения операций с валютой.
#include <iostream>
#include <stdexcept>
// Класс для исключения, которое будет брошено в случае недостаточного количества средств
class InsufficientAmount : public std::exception {
public:
// Переопределение метода what() для возврата сообщения об ошибке
const char* what() const noexcept override {
return "Недостаточно средств на счету.";
}
};
// Класс для кошелька
class Wallet {
private:
int balance; // баланс в рублях
static const int usd = 64; // статическое поле для курса доллара к рублю
public:
// Конструктор, принимающий начальный баланс (по умолчанию 0)
Wallet(int balance = 0) : balance(balance) {}
// Метод для получения текущего баланса
int get_balance() const {
return balance;
}
// Метод для добавления денег на счет
void add_cash(int amount) {
balance += amount;
std::cout << "Баланс карты: " << balance << std::endl;
}
// Метод для расходования средств
void spend_cash(int spend_sum) {
// Проверяем, есть ли достаточное количество средств на счету
if (spend_sum < balance) {
// Если есть, уменьшаем баланс на сумму расхода
balance -= spend_sum;
std::cout << "Баланс карты: " << balance << std::endl;
} else {
// Если недостаточно средств, бросаем исключение
throw InsufficientAmount();
}
}
};
// Функция main для демонстрации использования
int main() {
try {
// Создаем объект кошелька с начальным балансом 100 рублей
Wallet wallet(100);
std::cout << "Текущий баланс: " << wallet.get_balance() << std::endl;
// Добавляем на счет 50 рублей
wallet.add_cash(50);
// Расходуем 70 рублей
wallet.spend_cash(70);
// Пытаемся расходовать 1000 рублей (что больше, чем есть на счету)
wallet.spend_cash(1000);
} catch (const std::exception& e) {
// Обрабатываем исключения (например, если недостаточно средств на счету)
std::cerr << "Ошибка: " << e.what() << std::endl;
}
return 0;
}