Java-银行系统+交易功能
我正在尝试创建一个银行系统面向对象,它可以保存/存储用户必须输入的帐户信息。创建帐户后,可以使用用于取款、存款、查看交易和删除的帐号来定位/找到该帐户 我遇到的问题是交易部分。对于每个帐户,您必须只能按升序存储最后6个交易,并且必须打印此交易。你能告诉我我应该寻找哪些方面吗Java-银行系统+交易功能,java,Java,我正在尝试创建一个银行系统面向对象,它可以保存/存储用户必须输入的帐户信息。创建帐户后,可以使用用于取款、存款、查看交易和删除的帐号来定位/找到该帐户 我遇到的问题是交易部分。对于每个帐户,您必须只能按升序存储最后6个交易,并且必须打印此交易。你能告诉我我应该寻找哪些方面吗 class BankAccount{ private int accountNumber; private String holderName; private String holderAddress; private
class BankAccount{
private int accountNumber;
private String holderName;
private String holderAddress;
private String openDate;
private double balance;
private double[] transactions;
private String[] transactionsSummary;
private int numOfTransactions;
private static int noOfAccounts=0;
public String getAccountInfo(){
return "Account number: " + accountNumber + "\nCustomer Name: " + holderName + "\nHolder's Address: " + holderAddress + "\nOpen Date: " + openDate + "\nBalance:" + balance +"\n";
}
public String getTransactionInfo(int n)
{
String transaction = transactionsSummary[n];
if (transaction == null) {
return "No transaction exists with that number.";
}
else {
return transaction;
}
}
public BankAccount(String abc, double xyz, String address, String open){
holderName = abc;
balance = xyz;
holderAddress = address;
openDate = open;
noOfAccounts ++;
accountNumber = noOfAccounts;
transactions = new double[100];
transactionsSummary = new String[100];
transactions[0] = balance;
transactionsSummary[0] = "A balance of : $" + Double.toString(balance) + " was deposited.";
numOfTransactions = 1;
}
public int getAccountNum(){
return accountNumber;
}
public int getNumberOfTransactions() {
return numOfTransactions;
}
public void deposit(double amount){
if (amount<=0) {
System.out.println("Amount to be deposited should be positive");
} else {
balance = balance + amount;
transactions[numOfTransactions] = amount;
transactionsSummary[numOfTransactions] = "$" + Double.toString(amount) + " was deposited.";
numOfTransactions++;
}
}
public void withdraw(double amount)
{
if (amount<=0){
System.out.println("Amount to be withdrawn should be positive");
}
else
{
if (balance < amount) {
System.out.println("Insufficient balance");
} else {
balance = balance - amount;
transactions[numOfTransactions] = amount;
transactionsSummary[numOfTransactions] = "$" + Double.toString(amount) + " was withdrawn.";
numOfTransactions++;
}
}
}
}//end of class
class BankAccount{
private int accountNumber;
private String holderName;
private String holderAddress;
private String openDate;
private double balance;
private double[] transactions;
private String[] transactionsSummary;
private int numOfTransactions;
private static int noOfAccounts=0;
public String getAccountInfo(){
return "Account number: " + accountNumber + "\nCustomer Name: " + holderName + "\nHolder's Address: " + holderAddress + "\nOpen Date: " + openDate + "\nBalance:" + balance +"\n";
}
public String getTransactionInfo(int n)
{
String transaction = transactionsSummary[n];
if (transaction == null) {
return "No transaction exists with that number.";
}
else {
return transaction;
}
}
public BankAccount(String abc, double xyz, String address, String open){
holderName = abc;
balance = xyz;
holderAddress = address;
openDate = open;
noOfAccounts ++;
accountNumber = noOfAccounts;
transactions = new double[100];
transactionsSummary = new String[100];
transactions[0] = balance;
transactionsSummary[0] = "A balance of : $" + Double.toString(balance) + " was deposited.";
numOfTransactions = 1;
}
public int getAccountNum(){
return accountNumber;
}
public int getNumberOfTransactions() {
return numOfTransactions;
}
public void deposit(double amount){
if (amount<=0) {
System.out.println("Amount to be deposited should be positive");
} else {
balance = balance + amount;
transactions[numOfTransactions] = amount;
transactionsSummary[numOfTransactions] = "$" + Double.toString(amount) + " was deposited.";
numOfTransactions++;
}
}
public void withdraw(double amount)
{
if (amount<=0){
System.out.println("Amount to be withdrawn should be positive");
}
else
{
if (balance < amount) {
System.out.println("Insufficient balance");
} else {
balance = balance - amount;
transactions[numOfTransactions] = amount;
transactionsSummary[numOfTransactions] = "$" + Double.toString(amount) + " was withdrawn.";
numOfTransactions++;
}
}
}
}//end of class
我只给你一些提示 首先,Java是一种OO语言,因此应该使用对象。您不应该使用两个数组来保存交易金额和交易摘要,而应该使用一个数组来保存类型为transaction的对象。事务处理类应具有字段金额和字段摘要 第二:您可以使用列表,而不是使用数组。每次新事务进入时,您都会将其添加到列表的末尾。如果列表大小大于6,则删除列表的第一个元素—最旧的元素。对于此功能,LinkedList是一个不错的选择。因为列表有一个大小,所以您不需要自己维护一个NUMOF事务。这个列表可以帮你做到这一点 您正在使用字符串来保存日期。这不是合适的类型。你应该用日期
您正在使用一个静态字段来保存已创建帐户的数量。这是个糟糕的设计。你应该有一个银行对象,包含银行的所有账户,例如地图,它允许根据账户编号查找账户。我只给你一些提示 首先,Java是一种OO语言,因此应该使用对象。您不应该使用两个数组来保存交易金额和交易摘要,而应该使用一个数组来保存类型为transaction的对象。事务处理类应具有字段金额和字段摘要 第二:您可以使用列表,而不是使用数组。每次新事务进入时,您都会将其添加到列表的末尾。如果列表大小大于6,则删除列表的第一个元素—最旧的元素。对于此功能,LinkedList是一个不错的选择。因为列表有一个大小,所以您不需要自己维护一个NUMOF事务。这个列表可以帮你做到这一点 您正在使用字符串来保存日期。这不是合适的类型。你应该用日期
您正在使用一个静态字段来保存已创建帐户的数量。这是个糟糕的设计。你应该有一个银行对象,包含银行的所有账户,例如一个映射,它允许根据账户的编号来查找账户。如果你想用数组来查找账户,你必须编写额外的方法,并且应该将交易和汇总放在一个类中,如@JB Nizet所说。最好是使用列表。否则,您必须自己编写所有方法。这些方法应该如下所示:
import java.util.*;
private List<Transaction> transactions = new ArrayList<Transaction>();
public void addTransaction (Transaction t) {
if (transactions.size() + 1 > 6)
transactions.remove(0); // deletes the list element on the first place
transactions.add(t);
}
如果你真的想使用数组,打电话给我,我可以帮你,但我建议你使用列表
我希望这对你有帮助 如果要对数组执行此操作,则必须编写其他方法,并且应该将事务和摘要放在一个类中,如@JB Nizet所说。最好是使用列表。否则,您必须自己编写所有方法。这些方法应该如下所示:
import java.util.*;
private List<Transaction> transactions = new ArrayList<Transaction>();
public void addTransaction (Transaction t) {
if (transactions.size() + 1 > 6)
transactions.remove(0); // deletes the list element on the first place
transactions.add(t);
}
如果你真的想使用数组,打电话给我,我可以帮你,但我建议你使用列表
我希望这对你有帮助 是的,对于像这样的小东西,您真的应该使用任何类似于列表接口类的列表:最大的问题是数组的大小是固定的。这意味着您必须移动数组中的每个元素,或者每次创建一个新数组时都要创建一个。我想使用列表实现类将有助于更好地理解OOP。是的,对于这样的小东西,您真的应该使用类似列表接口类的任何列表:最大的问题是数组的大小是固定的。这意味着您必须移动数组中的每个元素,或者每次创建一个新数组时都要创建一个。我想使用列表实现类将有助于更好地理解OOP。非常感谢你的帮助。我应该如何进行?我是否需要完全删除帐户和事务的数组?我在哪里实现地图和链表?您好。非常感谢你的帮助。我应该如何进行?我是否需要完全删除帐户和事务的数组?我在哪里实现地图和链表?您好。非常感谢你的帮助。我是否需要为项目完全删除阵列并将其替换为列表?我如何存储帐户和交易以便链接?BankAccount类应该有一个列表类型的字段latestTransactions。类别银行应具有Map类型的字段帐户。您没有实现Map和LinkedList。这些是JDK提供的类
他在银行里的账户到地图上了吗?accounts.putcount.getNumber,account,你看过地图的javadoc吗?如果没有,那就去做。这就是你学习如何使用课堂的方法。对不起,如果我打扰了你,但是在概念上有困难。要存储帐户,我应该在哪个类中使用哪个数据结构。我应该在事务中使用哪个数据结构,它应该在哪个类中?您好。非常感谢你的帮助。我是否需要为项目完全删除阵列并将其替换为列表?我如何存储帐户和交易以便链接?BankAccount类应该有一个列表类型的字段latestTransactions。类别银行应具有Map类型的字段帐户。您没有实现Map和LinkedList。这些是JDK提供的类。我如何将银行账户添加到地图中?accounts.putcount.getNumber,account,你读过地图的javadoc吗?如果没有,那就去做。这就是你学习如何使用课堂的方法。对不起,如果我打扰了你,但是在概念上有困难。要存储帐户,我应该在哪个类中使用哪个数据结构。我应该在事务中使用哪个数据结构,它应该在哪个类中?