我打算创建一个跟踪银行账户余额的程序。程序应使用一个循环,一直持续到用户选择退出 否 来解决问题 你想继续吗?
在循环中,应要求用户输入金额(存款为正,退出为负)。金额应从账户余额变量中加/减。所有存款/取款都应保存为历史记录,以便我们以后再打印。当用户选择退出循环时,将打印当前帐户余额以及帐户历史记录(来自数组/ ArrayList)。
现在,我想使用一个包含10个广告位的数组作为历史记录功能。
我的问题是如何跟踪所有存款,取款和当前帐户余额(使用包含十个历史记录功能插槽的阵列),以便我可以在用户退出时将其打印出来该计划?
我的代码:
BankApp课程:
package bankapp;
import java.util.Scanner;
public class BankApp {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
askingUser au = new askingUser();
System.out.println("WELCOME TO OUR BANK!\nYou have 100 SEK by default in your account.");
while (true) {
au.userInput();
System.out.println("Do you want to continue? Answer by Yes or No.");
String yesOrNo = input.next();
if (yesOrNo.equalsIgnoreCase("yes")) {
au.userInput();
} else if (yesOrNo.equalsIgnoreCase("no")) {
System.out.println("History: ");
//print out the transaction history
System.exit(0);
} else {
System.out.println("Invalid character input.");
}
}
}
}
askUser class:
package bankapp;
import java.util.Scanner;
public class askingUser {
Scanner input = new Scanner(System.in);
double initialBal = 100;
public void userInput() {
System.out.println("Enter your amount: (+ve for deposit & -ve for withdraw)");
double inputAmount = input.nextDouble();
if (inputAmount >= 0) {
double newPosAm = initialBal + inputAmount;
System.out.println("Your current balance is: " + newPosAm + " SEK");
} else {
double newNegAm = initialBal + inputAmount;
System.out.println("Your current balace is: " + newNegAm + " SEK");
}
}
}
答案 0 :(得分:1)
如果使用数组,则必须跟踪存储在其中的元素数量,并在必要时调整数组大小。最简单的方法是将历史记录保存为ArrayList中的字符串。您将为每个事务向该列表添加一条消息:
ArrayList<String> history = new ArrayList<String>();
void addToHistory(String transaction) {
history.add(transaction);
}
void printHistory() {
for(String s : history) {
System.out.println(s);
}
}
addToHistory("Withdrawal: 100 SEK" );
addToHistory("Deposit: 200 SEK" );
printHistory();
答案 1 :(得分:1)
您需要队列来执行此操作。但是,对于简单,快速和原始的实现,您可以:
Transaction
(deposit - double, withdraw - double, current account balance - double
)List
Transaction
个askingUser
添加到AskingUser
课程中,作为属性。我强烈建议将类名重命名为Transaction
,以使其被视为对象。List
到您刚添加的List
的结尾。askingUser
的最后一个-say-10个元素;您可以通过askingUser
对象访问它。您还可以在Transaction
类中定义一个函数来打印最后10个元素,如果您根据选定的元素数量使函数工作,您可以将{{1}}的数量添加到函数&#39 ; s输入。