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

Програмка "Банкомат"

03.10.2014, 15:43. Показов 4384. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Столкнулся с небольшой проблемой: нужно сделать простую программу "банкомат". Т.е. есть некоторый класс Card и нужно определите два подкласса CreditCard и DebitCard которые реализуют соотв. поведение:

- дебитная карта не допускает снятие денег (уменьшение баланса) если это приводит к отрицательному остатку на карте.
- кредитная карта допускает снятие со счета, даже если баланс не положительный. Т.о., у владельца карты накапливается долг.

Также, реализуйте класс Банкомат (Atm) который, используя переданную ему карту, позволяет проводить операции пополнения/снятия.

Каким образом можно передать классу Atm тип карты ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.10.2014, 15:43
Ответы с готовыми решениями:

Банкомат
Создать класс Банкомат и класс Наличная карта (поля: Фамилия, пароль карты, сумма на карте). В классе банкомат задать три карты, которые...

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

Java програмка из символами
Помогите написать программу на Java: Надо пройтись по тексту (текст может быть в какой-то переменной) и найти количество иных символов....

5
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
03.10.2014, 16:10
Пусть карты реализуют интерфейс BankCard и метод withdraw. В класс Атм передавайте интерфейс.
1
0 / 0 / 1
Регистрация: 03.10.2014
Сообщений: 41
04.10.2014, 15:48  [ТС]
А данную задачу же можно решить при помощи наследования ?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
04.10.2014, 16:48
можно. но лучше с интерфейсом
0
0 / 0 / 1
Регистрация: 03.10.2014
Сообщений: 41
04.10.2014, 16:55  [ТС]
Хорошо. Я прошу прощение, возможно, за глупые вопросы, т.к. ещё только изучаю джаву: где должен быть объявлен интерфейс BankCard ? В классе Card() или нет? И главный вопрос: как банкомат определит какой подкласс использовать? или ему нужно передавать подкласс с нужной картой ?
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import java.util.Scanner;
import java.io.*;
 
 
class Card{
 
           public String name;
           public double balance, balanceA, balanceD;
           public int menu;
           Scanner sc = new Scanner(System.in);
 
            
      Card(){
             name = "";
             balance = 0;
        }
        
      public void info(){
      System.out.print("\nCard holder: "+name);
      System.out.print("\nBalance on card: "+balance);
      System.exit(0);
      //mainmenu();
      }
      
      public double update (){
      Scanner sc = new Scanner(System.in);
      System.out.print("Updating balance for: "+name+"\nAdd balance: ");
      balanceA = sc.nextDouble();
      balance = balance + balanceA;
      System.out.print("Balance of card holder "+name+" successfully changed to "+balance);
      
      return  balance;
      }
      
      public double decrease (){
      System.out.print("Updating balance for: "+name+"\nDec balance: ");
      balanceD = sc.nextDouble();
      if(balanceD>balance){System.out.print("You make a mistake.\nPlease, try again.\n"); decrease();}else{
      balance = balance - balanceD;
      System.out.print("Balance of card holder "+name+" successfully changed to "+balance);}
      
      return  balance;
      }
      
      public double currency(double usd){
      return balance = balance / usd;
      }
      
      public int mainmenu(){
      System.out.print("\nFor continue work with system input:\n");
      System.out.print("0 - For exit\n1 - For get information\n2 - For update balance\n3 - For the decrease balance.\n4 - For the currency conversion.\n");
      System.out.print("5 - Cash withdrawal\n");      
      return menu = sc.nextInt();
      }
}
 
public class Task3{
       public static void main(String[] args) throws IOException{
       
       Card c = new Card();
       Scanner sc = new Scanner(System.in);
       BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));
       String input;
       
       do{
       System.out.print("\nWelcome to the program!\nInput 'yes' to continue work and 'exit', to exit in the program: ");
       input = inp.readLine();
       if(input.equals("exit") || input.equals("Exit")){System.out.print("You came out of the program!");
                                System.exit(0);}
       } while (!input.equals("yes") && !input.equals("Yes"));
       
       
       System.out.print("\n\nEnter the name of the card holder: ");
       c.name = inp.readLine();
       System.out.print("Enter the start balance (optional): ");
       do{
       c.balance = sc.nextDouble();
       if(c.equals(""))c.balance=0;
       }
       while(c.equals(""));
       
       c.mainmenu();
       
       switch(c.menu){
       
       case 0:System.out.print("You came out of the program!");System.exit(0);break;
       case 1:c.info(); break;
       case 2:c.update();break;
       case 3:c.decrease();break;
       case 4:c.currency(10300); System.out.print("You balance in USD: "+c.balance);break;
       case 5:System.out.print("Menu for Card");break;
       default: System.out.print("Error!\nSession close.\n");
       
       }
       
       }
 
}
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
04.10.2014, 18:13
Интерфейс должен лежать отдельным файлом. Так же карта не должна спрашивать о новом балансе. Это должен делать атм
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.10.2014, 18:13
Помогаю со студенческими работами здесь

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

Простая програмка. Что не так? почему полностью не работает?
Когда запускаю программу, она работает до ввода choice, а после пытается считать, что-то, а ввести значение не получается. Почему при вводе...

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

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

Банкомат
Эта программка имитирует работу банкомата....есть баланс и есть сумма ...и две кнопки:снять и пополнить.....не получается связать кнопки с...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru