调试java银行帐户程序(1个错误)

调试java银行帐户程序(1个错误),java,debugging,Java,Debugging,线程“main”java.lang中出现异常。错误:未解决的编译问题: 类型数据库中的add(BankAccount)方法不适用于BankAccount.TestBankAccount.main(TestBankAccount.java:92)中的参数(void) 第92行是案例3中的db.add。(.add作为错误加下划线) 一揽子银行账户; 导入java.text.DateFormat; 导入java.util.Date; 导入java.text.NumberFormat; 导入javax.

线程“main”java.lang中出现异常。错误:未解决的编译问题: 类型数据库中的add(BankAccount)方法不适用于BankAccount.TestBankAccount.main(TestBankAccount.java:92)中的参数(void)

第92行是案例3中的db.add。(.add作为错误加下划线)

一揽子银行账户;
导入java.text.DateFormat;
导入java.util.Date;
导入java.text.NumberFormat;
导入javax.swing.JOptionPane;
导入javax.swing.JTextArea;
导入javax.swing.JScrollPane;
导入java.util.ArrayList;
公共类TestBankAccount
{
公共静态void main(字符串参数[])
{
Database db=new Database();//为活动帐户创建数据库
数据库关闭=新建数据库();//为非活动帐户创建数据库
DateFormat Df=DateFormat.getDateInstance(DateFormat.LONG);
现在日期=新日期();
NumberFormat nf=NumberFormat.getCurrencyInstance();
布尔完成=假;
而(!完成)
{
int menu=GetData.getInt(“\tUnited Bank of Java\n”+“\t”+Df.format(现在)+”\n”
+“\n请从以下选项中选择:“+”\n1.创建新帐户\n2.更新现有帐户“+”\n3.关闭帐户\n4.查看帐户信息\n5.退出”);
开关(菜单)
{
案例1://创建BankAccount对象并将其存储在数据库中
//创建名称对象
字符串f=GetData.getString(“输入名字”);
字符串l=GetData.getString(“输入姓氏”);
名称n=新名称(f,l);
//创建地址对象
String str=GetData.getString(“输入街道名称”);
String city=GetData.getString(“输入城市”);
String st=GetData.getString(“输入状态”);
String zip=GetData.getString(“输入zip”);
//创建客户对象
地址addr=新地址(str、city、st、zip);
String accNo=GetData.getString(“输入帐号”);
客户c=新客户(n,账号,地址);
//创建BankAccount对象
double amount=GetData.getDouble(“输入第一笔存款”);
银行账户ba=新银行账户(c,金额);
//将BankAccount对象添加到数据库
db.add(ba);
打破
案例2://更新帐户
accNo=GetData.getString(“输入您要更新的帐户的帐号”);
数据库检索(账号);
如果(!db.inList())
showMessageDialog(null,“找不到帐户”);
其他的
{
int option=GetData.getInt(“您想(1)存款,(2)取款吗”);
开关(选件)
{
案例1:
double amt=GetData.getDouble(“输入您想存入的金额”);
BankAccount b=db.getAccount();
b、 存款(金额);
打破
案例2:
double amnt=GetData.getDouble(“输入您要提取的金额”);
BankAccount bnk=db.getAccount();
如果(!bnk.发行效率(amnt))
showMessageDialog(null,“资金不足,无法提取”);
其他的
提取bnk(amnt);
打破
违约:
JOptionPane.showMessageDialog(null,“选择无效。若要返回主菜单,请存款或取款$0”);
打破
}
}
打破
案例3://结帐
accNo=GetData.getString(“Cose账户-请输入账号”);
数据库检索(账号);
如果(!db.inList())
showMessageDialog(null,“找不到帐户”);
其他的
{
BankAccount b=db.getAccount();
int index=db.getIndex();
db.add(db.delete(index));
showMessageDialog(null,“帐户”+accNo+“已关闭”);
}
打破
案例4://查看帐户
int view=GetData.getInt(“您想查看什么信息?\n1.单个帐户\n2.所有活动帐户\n3.所有非活动帐户\n”);
开关(视图)
{
案例1://查看单个帐户
accNo=GetData.getString(“查看–帐户。请输入帐户号”);
数据库检索(账号);
如果(!db.inList())
showMessageDialog(null,“找不到帐户”);
其他的
{
BankAccount bb=db.getAccount();
字符串s=“Customer\t”+bb.getCustomer().getName().getFirst()+“\t”+bb.getAmount();
JOptionPane.showMessageDialog(null,s,“银行账户”+bb.getCustomer().getAccountNumber(),JOptionPane.INFORMATION_消息);
}
打破
案例2://查看所有活动帐户
ArrayList=db.getList();
package BankAccount;

import java.text.DateFormat;
import java.util.Date;
import java.text.NumberFormat;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.util.ArrayList;



public class TestBankAccount 
{
    public static void main(String args[])
    {
        Database db = new Database();  // Creating database for active accounts
        Database close = new Database();   // Creating database for inactive accounts  
        DateFormat Df = DateFormat.getDateInstance(DateFormat.LONG);
        Date now = new Date();
        NumberFormat nf = NumberFormat.getCurrencyInstance();
        boolean done = false;

        while (!done)
        {
            int menu = GetData.getInt("\tUnited Bank of Java\n" + "\t" + Df.format(now) + "\n"
                    + "\nPlease Choose From the Following:" + "\n1. Create New Account\n2. Update Existing Account Account "+ "\n3. Close an Account\n4. View Account Information\n5. Exit");
            switch(menu)
            {
                case 1: //Creating a BankAccount object and storing it in the database
                    // Creating Name object
                    String f = GetData.getString("Enter First Name") ;
                    String l = GetData.getString("Enter Last Name") ;
                    Name n = new Name(f,l);

                    // Creating Address object
                    String str = GetData.getString("Enter Street Name") ;
                    String city = GetData.getString("Enter City") ;
                    String st = GetData.getString("Enter State") ;
                    String zip = GetData.getString("Enter Zip") ;

                    // Creating Customer object
                    Address addr = new Address(str,city,st,zip);
                    String accNo = GetData.getString("Enter Account Number") ;
                    Customer c = new Customer(n,accNo,addr);    

                    // Creating BankAccount object
                    double amount = GetData.getDouble("Enter First Deposit") ;
                    BankAccount ba = new BankAccount(c, amount);

                    // Add BankAccount object to the database
                    db.add(ba);
                    break;
                case 2: //Update Account
                    accNo = GetData.getString("Enter Account Number of Account you'd like to update")  ;
                    db.search(accNo);
                    if (!db.inList())
                        JOptionPane.showMessageDialog(null, "Account not found.");
                    else
                    {
                        int option = GetData.getInt("Would you like to (1) Deposit, (2) Withdraw");
                        switch(option)
                        {
                        case 1:
                            double amt = GetData.getDouble("Enter amount you'd like to deposit");
                            BankAccount b = db.getAccount();
                            b.deposit(amt);
                            break;
                        case 2:
                            double amnt = GetData.getDouble("Enter amount you'd like to withdraw") ;
                            BankAccount bnk = db.getAccount();
                            if (!bnk.isSufficient(amnt))
                                JOptionPane.showMessageDialog(null, "Insufficient funds, withdrawal cannot be done.");
                            else
                                bnk.withdraw(amnt);
                            break;
                        default:             
                            JOptionPane.showMessageDialog(null, "Invalid selection. To return to main menu, please deposit or withdraw $0");
                            break;
                        }
                    }
                    break;
                case 3: //Close Account
                    accNo = GetData.getString("Cose account - Please enter Account No.)");
                    db.search(accNo);
                    if (!db.inList())
                        JOptionPane.showMessageDialog(null, "Account not found.");
                    else
                    {
                        BankAccount b = db.getAccount();
                        int index = db.getIndex();
                        db.add( db.delete(index) );
                        JOptionPane.showMessageDialog(null, "The Account " + accNo + " has been closed.");
                    }
                    break;
                case 4: //View Account
                    int view = GetData.getInt("What information would you like to view?\n1. Single account\n2. All active accounts\n3. All inactive accounts\n");

                    switch(view)
                    {
                    case 1:  // View a single account
                        accNo = GetData.getString("View – account. Please enter Account No.");
                        db.search(accNo);                   
                        if(!db.inList())
                            JOptionPane.showMessageDialog(null, "Account not found.");
                        else
                        {
                            BankAccount bb = db.getAccount();
                            String s = "Customer\t" + bb.getCustomer().getName().getFirst() + "\t" + bb.getAmount() ;
                            JOptionPane.showMessageDialog(null, s, "Bank Account " + bb.getCustomer().getAccountNumber(), JOptionPane.INFORMATION_MESSAGE); 
                        }
                        break;
                    case 2: // View all active accounts
                        ArrayList list = db.getList();
                        if(list.isEmpty())
                            JOptionPane.showMessageDialog(null, "List is empty");
                        else
                        {
                            int i = 0, length = db.getSize();
                            String s = "";
                            while(i < length)
                            {
                                BankAccount b = (BankAccount)list.get(i);
                                s = s + "Customer Name: " + b.getCustomer().getName().getFirst() + "  " + b.getCustomer().getName().getLast() + "\nAccount number: " + b.getCustomer().getAccountNumber() + "\n"
                                        + b.getCustomer().getAddress().getStreet() + ", " + b.getCustomer().getAddress().getCity() + ", " +  b.getCustomer().getAddress().getState() + ", " 
                                        + b.getCustomer().getAddress().getZip() + "\n" + nf.format(b.getAmount()) + 
                                        "\n";
                                i++;
                            }
                            display(s, "Active Accounts", JOptionPane.INFORMATION_MESSAGE);
                        }
                        break;
                    case 3: // View all closed accounts
                        ArrayList closed = db.getList();

                        if(closed.isEmpty())
                            JOptionPane.showMessageDialog(null, "List is empty");
                        else
                        {
                            int i = 0, length = db.getSize();
                            String s = "";
                            while(i < length)
                            {
                                BankAccount b = (BankAccount)closed.get(i);
                                s = s + "Name " + b.getCustomer().getName().getFirst() + "  " + b.getCustomer().getName().getLast() + "\tAccount number: " + b.getCustomer().getAccountNumber() + "\n";
                                i++;
                            }
                            display(s, "Closed Accounts", JOptionPane.INFORMATION_MESSAGE);
                        }
                        break;
                    default:
                        JOptionPane.showMessageDialog(null, "Invalid option.");
                        break;
                    }// End view
                    break;
                case 5: //Exit 
                    done = true;    
                    break;
                default:    
                    JOptionPane.showMessageDialog(null, "Account not found.");
                    break;   
            }
        }
    }
    static void display(String s, String heading, int MESSAGE_TYPE)
    {
        JTextArea text = new JTextArea(s, 20, 30);
        JScrollPane pane = new  JScrollPane(text);
        JOptionPane.showMessageDialog(null, pane, heading, MESSAGE_TYPE);
    }
}
package BankAccount;
import java.util.ArrayList;
import java.util.Scanner;
class Database 
{
    ArrayList<BankAccount> list;
    BankAccount ba;
    int index;
    boolean found;

    Database()
    {
        list = new ArrayList<BankAccount>();
    }
    void search(String key)  
    {
        found = false;
        int i = 0;

        while(!found && i < list.size())
        {
            BankAccount b = list.get(i);
            if(b.getCustomer().getAccountNumber().equalsIgnoreCase(key))
            {
                ba = b;
                found = true;
                index =i;
            }
            else 
                i++;
        }
    }
    void add(BankAccount b) { list.add(b); }
    void delete(int i) { list.remove(i); }
    int getIndex(){ return index; }
    boolean inList(){  return found; }
    BankAccount getAccount() { return ba; }
    boolean isInList() { return found; }
    int size()  { return list.size(); }
    boolean isEmpty()  { return list.isEmpty(); }
    public ArrayList getList() {
        Scanner readBoard = new Scanner(System.in);
        return null;
    }
    public int getSize() {
        Scanner readBoard = new Scanner(System.in);
        return 0;
    }
}
class Database {

    ...

    void add(BankAccount b) { list.add(b); }

    void delete(int i) { list.remove(i); }

    ...
}
Database db = new Database();
...
db.add( db.delete(index) );