자바 ATM 기능 코드 봐주실 수 있을까요?(+Arraylist)
-
게시물 수정 , 삭제는 로그인 필요
안녕하세요. 자바의 ATM 문제 를 풀고 있습니다.
대부분 코드를 짠것(?) 같은데, account 의 Array 부분에서 막혀서 도저히 진도를 나가질 않습니다.
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_50/1677188462438WOb3X_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.37.21.png)
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_282/1677188463596wKIgQ_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.43.55.png)
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_292/1677188464245qPqOQ_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.44.08.png)
문제는
1. ATM 은 돈을 입출금 가능하다.
2. 각각의 금융업무는 분류되어있으며, 현재의 상태를 보여줘한다.
3. ATM 은 제한된 돈이 있다.
입니다.
저는 Account 파일에서 deposit 입금과, withdraw 출금 메소드를 각각 써주면 될거라 생각했는데, 2가지의 힌트를 얻었는데도 잘 모르겠습니다.
1. ProcessTransaction 에서 arrayList 를 쓰면 된다.
2. 제 코드는 아니지만, 저는 - 를 적어주지 않아 더하기만 하기 때문에, 이런식으로 - 마이너스를 써야한다고 했습니다.
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_256/1677189130676WzzPG_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.46.57.png)
4일이상 여기서 고민 중인데, 혹시 도와주실 수 있을까요?
public class Main {
public static void main(String[] args) {
Account account = new Account(1000, null);
Atm atm = new Atm(300);
Transaction transcation = new Transaction(100, account);
}
}
===================================================================
import java.util.ArrayList;
public class Account {
private int availableBlance;
private ArrayList<Transaction> history;
public Account(int availableBlance, ArrayList<Transaction> history) {
this.availableBlance = availableBlance;
this.history = new ArrayList<>();
}
public int getAvailableBlance() {
return availableBlance;
}
public int processTransaction(Transaction transaction){
availableBlance = availableBlance - transaction.getMoneyChange();
history.add(transaction);
return availableBlance;
}
}
===================================================================
public class Atm {
private int atmMoney;
public Atm(int availableATMmoney){
this.atmMoney = availableATMmoney;
}
public int deposit(Account account, Transaction transaction){
atmMoney = (atmMoney + transaction.getMoneyChange());
System.out.println("ATM 에서 얼마나 입금하고싶습니까?"+transaction.getMoneyChange());
System.out.println("ATM 돈 의 총 합계 :" + atmMoney);
return atmMoney;
}
public void withdraw(Account account, Transaction transaction){
if (atmMoney<=0) {
System.out.println("ATM에 현금이 충분하지 않습니다");
} else if(account.getAvailableBlance()<= transaction.getMoneyChange()){
System.out.println("당신의 통장에 돈이 충분하지 않습니다");
} else {
atmMoney =(atmMoney - transaction.getMoneyChange());
System.out.println("ATM에서 얼마나 인출할것입니까"+ transaction.getMoneyChange());
System.out.println("ATM 돈 의 총 합계 :" + atmMoney);
}
}
}
===================================================================
public class Transaction {
private int moneyChange;
private Account account;
public Transaction(int moneyChange, Account account){
this.account = account;
this.moneyChange = moneyChange;
}
public int getMoneyChange() {
return moneyChange;
}
public Account getAccount() {
return account;
}
public void withdraw (Account account, int money){
Transaction transaction = new Transaction(-money, account);
}
}
안녕하세요. 자바의 ATM 문제 를 풀고 있습니다.
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_50/1677188462438WOb3X_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.37.21.png)
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_282/1677188463596wKIgQ_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.43.55.png)
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_292/1677188464245qPqOQ_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.44.08.png)
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_300/1677188465252CMfjI_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.44.17.png)
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20230224_256/1677189130676WzzPG_PNG/%BD%BA%C5%A9%B8%B0%BC%A6_2023-02-23_%BF%C0%C8%C4_10.46.57.png)
public class Main {
public static void main(String[] args) {
Account account = new Account(1000, null);
Atm atm = new Atm(300);
Transaction transcation = new Transaction(100, account);
}
}
===================================================================
import java.util.ArrayList;
public class Account {
private int availableBlance;
private ArrayList<Transaction> history;
public Account(int availableBlance, ArrayList<Transaction> history) {
this.availableBlance = availableBlance;
this.history = new ArrayList<>();
}
public int getAvailableBlance() {
return availableBlance;
}
public int processTransaction(Transaction transaction){
availableBlance = availableBlance - transaction.getMoneyChange();
history.add(transaction);
return availableBlance;
}
}
===================================================================
public class Atm {
private int atmMoney;
public Atm(int availableATMmoney){
this.atmMoney = availableATMmoney;
}
public int deposit(Account account, Transaction transaction){
atmMoney = (atmMoney + transaction.getMoneyChange());
System.out.println("ATM 에서 얼마나 입금하고싶습니까?"+transaction.getMoneyChange());
System.out.println("ATM 돈 의 총 합계 :" + atmMoney);
return atmMoney;
}
public void withdraw(Account account, Transaction transaction){
if (atmMoney<=0) {
System.out.println("ATM에 현금이 충분하지 않습니다");
} else if(account.getAvailableBlance()<= transaction.getMoneyChange()){
System.out.println("당신의 통장에 돈이 충분하지 않습니다");
} else {
atmMoney =(atmMoney - transaction.getMoneyChange());
System.out.println("ATM에서 얼마나 인출할것입니까"+ transaction.getMoneyChange());
System.out.println("ATM 돈 의 총 합계 :" + atmMoney);
}
}
}
===================================================================
public class Transaction {
private int moneyChange;
private Account account;
public Transaction(int moneyChange, Account account){
this.account = account;
this.moneyChange = moneyChange;
}
public int getMoneyChange() {
return moneyChange;
}
public Account getAccount() {
return account;
}
public void withdraw (Account account, int money){
Transaction transaction = new Transaction(-money, account);
}
}
#자바 atm 만들기 #자바 atm