C/C++

Помощь с заданием на c++

Задача: Напишите робота для коллекторов. В самом начале он спрашивает имя должника и сумму долга, а затем начинает требовать у него погашения долга до тех пор, пока тот не будет погашен полностью. Сумма долга должна уменьшаться, если пользователь ввёл сумму, меньшую чем сумма долга. Если пользователь внёс большую сумму, чем требуется для погашения, выведите сообщение о том, какой у него остаток на счету после такой операции. Обеспечьте контроль ввода.

Код у меня есть, но с ошибкой, а что за ошибка понять не могу.
 #include  
#include

using namespace std;

struct Money {
using money_t = long long;
};

class Credit : public Money {
public:
Credit() : credit(0) {}
void issued(const money_t value) {
credit += value;
}
void redeemed(const money_t value) {
credit -= value;
}
money_t remainder()const {
return credit;
}
private:
money_t credit;
};

class Account : public Money {
public:
void credited(const money_t value) {
money += value;
}
money_t balance()const {
return money;
}
void withdraw(money_t value) {
if (money money = money;
}
string client()const {
return name;
}
void approved(const money_t money) {
credit.issued(money);
}
money_t collector() {
auto remainder = credit.remainder();
auto balance = this->balance();
if (balance 0;
}
money_t debt()const {
return credit.remainder();
}
private:
string name;
Credit credit;
};

int main() {
PersonDebtor slava({ "Слава", 189 });
cout > money;
slava.approved(money);
do {
const auto balance = slava.balance();
if (!balance) {
puts("Недостаточно средств!");
break;
}
cout
Антон Макаров
Антон Макаров
98 906
Лучший ответ
Задание не предусматривает обработку счета, с которого погашается задолженность.
В программе нет проверки вводимых данных.

cin >> debt_amount;
//вводим сумму долга
while (debt_amount > 0) //цикл запроса погашения идет пока сумма долга положительна
{
//вывод текущей суммы долга
cout << "ваш долг составляет " << debt_amount << endl;
//запрос на введение
cout << "введите сумму, которую вы хотите внести" << endl;
cin >> payment;
//проверка введенной суммы, если она нулевая или отрицательная - вернуться в начало цикла
if (payment<=0) {cout "вы там что курите? гоните бабки!"; continue;}
//обновить долг
debt_amount -= payment;
//вывести сообщение о успешном платеже и верунться в начало цикла
cout << "Платеж успешный" << endl;
}
//если долг стал нулевым или отрицательным, цикл завершается, выводим профит.
cout << "Спасибо за сотрудничество и погашение долга. На вашем счету: " << 0 - debt_amount << endl;

Контроль правильности введенных данных осушествляется отдельной функцией,
которая не входит в текущий тарифный план. Погасите вашу задолженность.
Это был пример алгоритма без проверки корректности введенных данных.
Андрей Оленич
Андрей Оленич
51 416
Не понимаю, в чём конкретно ошибка, но если шутка юмора в том, что он сначала пишет "Вы погасили долг, но на самом деле хрен там плавал - у вас кредит аж на 10 рублей", то уберите строчку "Вы погасили долг!" на в место, где долга уже действительно нет, а не сразу после внесения платежа. + заранее сделайте проверку после ввода суммы погашения долга проверку, а есть ли у него эта сумма