Описание объекта:
Функция: Функция этой программы состоит в том, чтобы реализовать функции снятия, пополнения счета, проверки баланса, перевода и т. д. банкомата банкомата банка, но она выполнила только основные функции.
Идеи: во-первых, определите логин, пароль ограничен три раза, и используйте цикл for. Во-вторых, войдите в систему успешно, выберите соответствующую функцию и используйте оператор switch. В-четвертых, для реализации функции повторяющихся операций цикла, поскольку число раз не определено, используйте структуру while. В-пятых, заполните и доработайте каждый функциональный модуль.
Отображение кода:
import java.util.Scanner; public class BankATM < public static void main(String[] args) < Scanner input = new Scanner(System.in); String cardNum = «6228123123»; // номер карты int pwd = 888888; // пароль boolean flag = true; // объявляем логическую переменную double surplus = 1000;// баланс // интерфейс System.
out.println(«——— Добро пожаловать в банкомат ICBC ———«); / ** Ограничивает количество логинов ** / for (int i = 1; i 3; i++) < System.out.println(«Пожалуйста, вставьте свою банковскую карту:»); String inputCard = input.next(); System.
Патент чек квитанция банкомат 2023
out.println(«Пожалуйста, введите ваш пароль:»); int inputPwd = input.nextInt(); // проверяем аккаунт и пароль if (inputCard.equals(cardNum) inputPwd == pwd) < flag = true; break; > else < if (i 2) < System.out.println(«Извините, пароль неверный, у вас все еще есть» + (3 — i) + «Второй шанс!»); > else < System.
out.println(«Извините, ваша карта заблокирована!»); break; > flag = false; > > / ** Выберите функцию после успешного входа в систему * / if (flag) < char answer = ‘y’; while (answer == ‘y’) < System.out.println(«Пожалуйста, выберите функцию: 1. Вывод средств 2. Пополнение счета 3. Проверка баланса 4. Перевод 5. Выход»); int choice = input.nextInt(); switch (choice) < case 1: // Выполнить операцию снятия System.
out.println(«—> Вывод средств»); System.out.println(«Пожалуйста, введите сумму вывода:»); double getMoney = input.nextDouble(); if (getMoney > 0) < if (getMoney if (getMoney % 100 == 0) < System.out.println(«Пожалуйста, возьмите свою банкноту! Баланс ¥» + (surplus — getMoney)); > else < System.
out.println(«Извините, я не могу принять изменения!»); > > else < System.out.println(«Извините, баланс недостаточен!»); > > else < System.out.println(«Пожалуйста, введите правильную сумму:»); > break; case 2: // выполнить депозитную операцию System.out.println(«—> Депозит»); System.
out.println(«Пожалуйста, расположите банкноты и поместите их в депозитный порт:»); double saveMoney = input.nextDouble(); if (saveMoney > 0 saveMoney 10000) < if (saveMoney % 100 == 0) < surplus += saveMoney; System.out.println(«Депозит успешен! Баланс ¥» + surplus); > else < double backMoney = saveMoney % 100; surplus = saveMoney + surplus — backMoney; System.out.println(«Депозит успешен!
⚠️ ВЗЛОМЩИК БАНКОМАТОВ: ЭТО ПРОЩЕ, ЧЕМ ВЫ ДУМАЕТЕ
Баланс ¥» + surplus); System.out.println(«Пожалуйста, заберите сдачу ¥» + backMoney); > > else if (saveMoney > 10000) < System.out.println(«Внесите депозит до 10000 юаней за раз, пожалуйста, внесите депозит партиями!); > else < System.
out.println(«Депонированная банкнота является поддельной банкнотой, и она недействительна и конфискована!»); > break; case 3: // выполнить запрос баланса System.out.println(«—> Проверить баланс»); System.out.println(«Баланс на вашей карте:» + surplus); break; case 4: // выполнить операцию переноса System.
out.println(«—> Трансфер»); System.out.println(«Пожалуйста, введите сумму перевода:»); double goMoney = input.nextDouble(); // сумма перевода if (goMoney > 0) < if (goMoney out.println(«Перевод успешно! Баланс is» + (surplus — goMoney)); > else < System.out.println(«Извините, пожалуйста, убедитесь, что у вас достаточно средств на карте!»); > > else < System.
out.println(«Перевод не выполнен! Пожалуйста, введите правильную сумму:»); > break; case 5: // выполнить операцию выхода // System.out.println («—> Exit»); System.out.println(«Спасибо за ваше использование!»); return; default: System.out.println(«Извините, выбранная вами функция неверна!»); break; >// switch end System.
out.println(«Продолжить? Да / Нет»); answer = input.next().charAt(0); > // while end System.out.println(«Спасибо за ваше использование!»); > > >
Скриншот эффекта:
Источник: russianblogs.com
Реализовать класс Bankomat, моделирующий работу банкомата — C#
Задание: Реализовать класс Bankomat, моделирующий работу банкомата. В классе долж¬ ны содержаться поля для хранения идентификационного номера банкомата, информации о текущей сумме денег, оставшейся в банкомате, минимальной и максимальной суммах, которые позволяется снять клиенту в один день. Сум-¬ ма денег представляется полями-номиналами 10-1000 (см. задание 13).
Реа-¬ лизовать метод инициализации банкомата, метод загрузки купюр в банкомат и метод снятия определенной суммы денег. Метод снятия денег должен вы¬ полнять проверку на корректность снимаемой суммы: она не должна быть меньше минимального значения и не должна превышать максимальное зна¬ чение. Метод toString() должен преобразовать в строку сумму денег, остав¬ шуюся в банкомате. Если возможно то написать код. Буду очень благодарен за любую помощь. Заранее спасибо
Код к задаче: «Реализовать класс Bankomat, моделирующий работу банкомата»
Листинг программы
using System; namespace ConsoleApplication4 < class ATM < class Money : IComparable < private int[] moneyDenomination = new int[3]; public Money( int CountMoney ) < for ( int i = 0; i < 2; i++ ) < moneyDenomination[i] = CountMoney % 10; CountMoney /= 10; >moneyDenomination[2] = CountMoney; > public int GetMoney() < int res = 0; for ( int i = 0; i < 3; i++ ) res += moneyDenomination[i] * 10 * ( i + 1 ); return res; >public override string ToString() < return string.Format( «», moneyDenomination[2], moneyDenomination[1], moneyDenomination[0] ); > public int CompareTo( object obj ) < if ( !(obj is Money) ) throw new ArgumentException( «Аргумент должен быть экземпляром класса Money.» ); for ( int i = 2; i >= 0; i— ) < if ( this.moneyDenomination[i] >( obj as Money ).moneyDenomination[i] ) return 1; else if ( this.moneyDenomination[i] < ( obj as Money ).moneyDenomination[i] ) return -1; >return 0; > public static Money operator+( Money arg1, Money arg2 ) < Money tmp = new Money( 0 ); for ( int i = 0; i < 3; i++ ) tmp.moneyDenomination[i] = arg1.moneyDenomination[i] + arg2.moneyDenomination[i]; return tmp; >public static Money operator+( Money arg1, int arg2 ) < return arg1 + new Money( arg2 ); >public static Money operator-( Money arg1, Money arg2 ) < Money tmp = new Money( 0 ); for ( int i = 0; i < 3; i++ ) tmp.moneyDenomination[i] = arg1.moneyDenomination[i] — arg2.moneyDenomination[i]; return tmp; >public static Money operator-( Money arg1, int arg2 ) < return arg1 — new Money( arg2 ); >> private int ID; private Money countOfMoney; private int min = 10; private int max; public ATM( int ID, int CountOfMoney, int Min, int Max ) < if ( Min < 10 ) throw new ArgumentException( «Минимальная сумма не может быть менее 10.» ); if ( Max >1000 ) throw new ArgumentException( «Максимальная сумма не может быть более 1000.» ); if ( ID < 0 ) throw new ArgumentException( «Идентификационый номер не может быть менее 0.» ); if ( CountOfMoney < 10 ) throw new ArgumentException( «Кол-во денег не может быть меньше 10.» ); this.ID = ID; countOfMoney = new Money( CountOfMoney ); min = Min; max = Max; >public int GetCurrentMoney() < return countOfMoney.GetMoney(); >public int GetMinWithdrawalAmount() < return min; >public int GetMaxWithdrawalAmount() < return max; >public int LoadMoney( int Money ) < if ( Money % 10 != 0 ) throw new ArgumentException( «Вносиая сумма должна быть кратна 10.» ); countOfMoney += Money; return countOfMoney.GetMoney(); >public int Unloading( int Money ) < if ( Money % 10 != 0 ) throw new ArgumentException( «Снимаемая сумма должна быть кратна 10.» ); if ( countOfMoney.CompareTo( new Money( Money ) ) == -1 ) throw new ArgumentException( «Недостаточно средств.» ); if ( Money < min || Money >max ) throw new ArgumentException( «Некорректная сумма денег.» ); countOfMoney -= Money; return countOfMoney.GetMoney(); > public override string ToString() < return int.Parse( countOfMoney.ToString() ).ToString( «C» ); >> class Program < static void Main( string[] args ) < ATM a = new ATM( 0, 200, 10, 1000 ); Console.WriteLine( a.ToString() ); a.LoadMoney( 500 ); Console.WriteLine( a.ToString() ); a.Unloading( 200 ); Console.WriteLine( a.ToString() ); >> >
Источник: studassistent.ru
Код для программы банкомата
Сообщений: 32
Python. Программа «Банкомат»
Напишите программу, имитирующую работу банкомата. Выберите структуру данных для хранения купюр разного достоинства в заданном количестве. При вводе пользователем запрашиваемой суммы денег, скрипт должен вывести на консоль количество купюр подходящего достоинства. Если имеющихся денег не хватает, то необходимо напечатать сообщение «Операция не может быть выполнена!». Например, при сумме 5370 рублей на консоль должно быть выведено «5*1000 + 3*100 + 1*50 + 2*10».
Участник клуба
: 1,833
Банкоматы мелочь не выдают.
Если чуть-чуть подумаете, то поймете, что это просто.
Достаточно написать несколько циклов или подпрограмму с параметрами цикла и несколько вызовов
account = int(input(«Введите сумму: «).strip()) outputStr = «Операция не может быть выполнена!» # Первый элемент — номинал купюры # Второй элемент — количество купюр этого номинала в банкомате # Третий элемент — количество купюр для выдачи bankomat = [[5000, 10, 0], [1000, 10, 0], [500, 10, 0], [100, 10, 0], [50, 10, 0], [10, 10, 0], [5, 10, 0], [2, 10, 0], [1, 10, 0]] for i in range(len(bankomat)): bankomat[i][2] = 0 while (account >= bankomat[i][0]) and (bankomat[i][1] > 0): account, bankomat[i][2] = account — bankomat[i][0], bankomat[i][2] + 1 if account == 0: break # Если сумму удалось собрать, тогда значение переменной будет равно 0 if account == 0: j = 0 # Пропускаем первые номиналы, которые не выдаются (количество равно 0) while (j < len(bankomat)) and (bankomat[j][2] == 0): j += 1 if j < len(bankomat): outputStr = str(bankomat[j][2]) + «*» + str(bankomat[j][0]) for i in range(j + 1, len(bankomat)): if bankomat[i][2] != 0: outputStr += » + » + str(bankomat[i][2]) + «*» + str(bankomat[i][0]) # Иначе ОБХСС загребет for i in range(len(bankomat)): bankomat[i] = [bankomat[i][0], bankomat[i][1] — bankomat[i][2], 0] print(outputStr)
$ python3 test.py Введите сумму: 62999 10*5000 + 10*1000 + 1*500 + 4*100 + 1*50 + 4*10 + 1*5 + 2*2 $ python3 test.py Введите сумму: 99999 Операция не может быть выполнена!
Последний раз редактировалось macomics; 27.02.2023 в 14:30 .
Источник: www.programmersforum.ru