Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/55: Рейтинг темы: голосов - 55, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 40

Банкомат

12.09.2014, 10:27. Показов 11259. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать класс Банкомат и класс Наличная карта (поля: Фамилия, пароль карты, сумма на карте). В классе банкомат задать три карты, которые будут использоваться система. Описать последовательность действий которую нужно провести для того чтобы снять деньги.
1 Вставить карточку.
2 Ввести фамилию.
3 Ввести пин. (Пин код для карты уже заданный в классе карта, если не будет найдено ни одной соответствия по сущностях Фамилия + Пин, отказать в операции, и выбросить карточку).
4 Ввести сумму для снятия, если сумма превышает допустимую, заданной на карте, то выдать сообщение о недопустимости операции. Если сумма меньше то списать ее с данной карты.
5 Спросить о дальнейших действиях (1 Снять наличные. 2 Закончить операцию и выдать карточку).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.09.2014, 10:27
Ответы с готовыми решениями:

Задача Класс, объект Банкомат
Создать класс и объекты описывающие Банкомат. Набор купюр находящихся в банкомате должен задаваться тремя свойствами: количеством купюр...

Банкомат, написанный в Паскале нужно переделать под Java
Всем привет! Я написал банкомат, в Паскале АБС.НЕТ, но вот задание перехожу на Java и нужно полностью его переделать под JAVA, если...

Программа "банкомат"
Ошибка в том, что я нажимаю "снять деньги", например 1000(на счету у меня 10000)-высвечивается -9000.Нажимаю"пополнить" на 500,...

6
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
12.09.2014, 16:21
Это приказ?
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
12.09.2014, 21:20
Цитата Сообщение от mr_kaznachey Посмотреть сообщение
Наличная карта
Такого понятия нет. Зато, спасибо Google, это название продукта некоторого банка. Бан за рекламу!
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
13.09.2014, 22:58
Цитата Сообщение от Somebody Посмотреть сообщение
Такого понятия нет. Зато, спасибо Google, это название продукта некоторого банка. Бан за рекламу!
Какой-то юмор у вас специфический ...
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
Это приказ?
Похоже на то, видимо автору товарищи сказали что пишешь сюда задачу, а тебе дают готовое решение .
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 40
14.09.2014, 20:38  [ТС]
Нет я прошу помочь начать сделать.Очень прошу
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
15.09.2014, 10:21
mr_kaznachey, чтобы начать делать, определите все вышеописанные классы. Вы знаете что такое класс?
0
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311
17.09.2014, 20:04
Выкладываю.

ATM - это банкомат по английски

Исключение когда недостаточно бабок
Java
1
2
3
4
5
6
7
8
9
10
public class NotEnoughMoneyException extends Exception {
 
    public NotEnoughMoneyException(String message) {
        super(message);
    }
 
    public NotEnoughMoneyException() {
        super();
    }
}
Описание класса для пластиковой карточки
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
public class CashCard {
    private String lastName;
    private int pinCode;
    private int balance;
 
    public String getLastName() {
        return lastName;
    }
 
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
 
    public int getPinCode() {
        return pinCode;
    }
 
    public void setPinCode(int pinCode) {
        this.pinCode = pinCode;
    }
 
    public int getBalance() {
        return balance;
    }
 
    public int takeMoney(int money) throws NotEnoughMoneyException {
        if (money > balance)
            throw new NotEnoughMoneyException();
 
        balance -= money;
        return money;
    }
 
    public int putMoney(int money) {
        balance += money;
        return money;
    }
 
    public CashCard(String lastName, int pinCode, int balance) {
        this.lastName = lastName;
        this.pinCode = pinCode;
        this.balance = balance;
    }
 
    public CashCard(String lastName, int pinCode) {
        this(lastName, pinCode, 0);
    }
 
    @Override
    public boolean equals(Object o) {
        if (o == null || o.getClass() != this.getClass())
            return false;
        if (o == this)
            return true;
        CashCard that = (CashCard) o;
        return this.lastName.equals(that.lastName) && this.pinCode == that.pinCode;
    }
 
    @Override
    public int hashCode() {
        int result = 17;
        int prime = 31;
 
        result = result * prime + lastName.hashCode();
        result = result * prime + pinCode;
 
        return result;
    }
}
Описание банкомата
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.util.Scanner;
import java.util.Set;
 
public class ATM {
    // делаем сет так как все карты разные
    private Set<CashCard> cashCards;
 
    public ATM(Set<CashCard> cashCards) {
        this.cashCards = cashCards;
    }
 
    public void setCashCards(Set<CashCard> cashCards) {
        this.cashCards = cashCards;
    }
 
    public void run() {
        do {
            // вечно горящая надпись на екране банкомата
            System.out.println("Вставьте карту");
            Scanner inputCardScanner = new Scanner(System.in);
 
            // симулируем вставку карточки нажатием клавиши Enter
            String inputCard = inputCardScanner.nextLine();
 
            System.out.println("Введите фамилию");
            String lastName = inputCardScanner.nextLine();
 
            System.out.println("Введите пинкод");
            int pinCode = inputCardScanner.nextInt();
 
            CashCard cashCardToCheck = new CashCard(lastName, pinCode, 0);
 
            if (!cashCards.contains(cashCardToCheck)) {
                System.out.println("Неправильно введена фамилия или пинкод!");
 
                // выплюнуть карту
                continue;
            } else {
                // основное меню, которое можно расширять, но тогда использовать
                // шаблон команда
                do {
                    System.out.println("Введите сумму для снятия или 0 для выхода");
                    int moneyAmount = inputCardScanner.nextInt();
                    if (moneyAmount == 0)
                        break;
                    try {
                        for (CashCard cashCard : cashCards) {
                            if (cashCard.equals(cashCardToCheck)) {
                                System.out.println("С вашего счета было снято " +
                                        cashCard.takeMoney(moneyAmount));
 
                                System.out.println("На вашем счету осталось "
                                        + cashCard.getBalance());
                                break;
                            }
                        }
                    } catch (NotEnoughMoneyException e) {
                        System.out.println("На вашем счету недостаточно денег");
                    }
                } while (true);
            }
        } while (true);
    }
}
Запускаем банкомат работать

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.*;
 
public class Test {
 
    public static void main(String[] args) {
        CashCard card1 = new CashCard("Goldman", 1111, 9000);
        CashCard card2 = new CashCard("Miranda", 1234, 100);
        CashCard card3 = new CashCard("Grey", 6969, 1000000);
 
        Set<CashCard> cashCards = new HashSet<CashCard>();
        cashCards.add(card1);
        cashCards.add(card2);
        cashCards.add(card3);
 
        new ATM(cashCards).run();
    }
}
Добавлено через 2 минуты

Не по теме:

p.s. Goldman - обычный офисный планктон, Miranda - бомж, Grey - Сашка Серенькая :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.09.2014, 20:04
Помогаю со студенческими работами здесь

Приложение - "Банкомат"
1. Два режима: администратор и пользователь. Логин-пароль администратора хранится в коде, данные пользователей (логин, PIN-код, сумма на...

Програмка "Банкомат"
Всем привет! Столкнулся с небольшой проблемой: нужно сделать простую программу &quot;банкомат&quot;. Т.е. есть некоторый класс Card и...

Написать программу банкомат
Задание. Банкомат Два режима: администратор и пользователь. Логин-пароль администратора хранятся в коде, данные пользователей (логин,...

Написать класс, описывающий банкомат
Создать класс, описывающий банкомат. Набор купюр, находящихся в банкомате должен задаваться тремя свойствами: количеством купюр...

Банкомат
заданиеВ некотором государстве в обращении находятся банкноты определенных номиналов. Национальный банк хочет, чтобы банкомат выдавал любую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru