如何遍历每个帐户?

时间:2015-03-14 08:45:58

标签: java

规格 创建银行帐户,并从用户读入初始余额。它提供了一个菜单,用户可以存款和取款,并查看余额。它也引起了日常的兴趣。帐户菜单选项是

d:存钱:在山上读 w:取款:读取金额并验证 s:看到平衡 x:退出任何东西 否则:帮助 客户有三个银行账户,分别是信用,储蓄和期限;年利率分别为0%,1.2%和3.4%。客户菜单允许用户选择帐户添加兴趣,或查看所有余额。菜单选项包括: a:选择一个帐户:输入名称 我:增加所有帐户的兴趣 s:显示所有帐户 X:退出 其他:帮助 增加兴趣。每天将利息添加到运行总计中,并且在每个月末将该总利息添加到余额中。该 银行每天都会在利息领域增加利息,并在每个月末将这笔金额加到余额中并设定利息 回到零。 菜单选项会为每个帐户增加每日兴趣30天,然后在30天结束时将余额添加到余额中。 利率以年率百分比表示,例如每年3.4%。 您必须将其转换为每日利率。 正常年份为365天。闰年每四年发生一次,共有366天。处理闰年的标准方法是使用365.25天的一年。

以下是我到目前为止的情况;我的问题是我如何完成字符串toString方法()并选择方法,

import java.util.*;

public class Customer
{   public static void main(String[] args)
    {   new Customer();  }


    public Customer()
    {
        setup();
    }

    private void setup()
    {
        accounts.add(new Account("",0.0));
        accounts.add(new Account("",0.0));
        accounts.add(new Account("",0.0));
    }

    public void use()
    {
        char choice;
        while((choice = readChoice()) != 'x')
        {
            switch(choice)
            {
                case 'a': choose(); break;
                case 'i': addInterest(); break;
                case 's': show(); break;
                default: help();
            }
        }   
    }

    private char readChoice()
    {   return 'x'; }


    private void choose()
    {
        // ask for acount
        // search for that ;particular accounts using account(name)

        // use the newly found account (given that it is found)
    }

    private String readName()
    {
        //gives accountName you are searching for
        System.out.print("??? account ???; ");
        return In.nextLine();

    }

    private Account account(String name)
    {   return null;    }

    private void addInterest()
    {   for (Account account: accounts)
        {   for (int i = 0; i < 30; i++)
                account.addDailyInterest();
            account.addMonthlyInterest();   }}

    private void help()
    {   String s = "The menu choices are";
        s += "\n  a: choose an account";
        s += "\n  i: add interest to all accounts";
        s += "\n  s show";
        s += "\n  x exit";
        System.out.println(s);   }

    private void show()
    {
        System.out.println(this);
    }

    public String toString()
    {   String s = "";
        // loop through each account
        // add each account toString();
        // seperate each account object using a new line.
        return s;
    }
}

1 个答案:

答案 0 :(得分:0)

好吧,根本没有编译吗?通常情况下,我会选择具有private List<Account> accountList的Customer类,这将很容易扩展(我看到accounts.add(new Account("",0.0));但没有列表声明)

然后在Account中覆盖toSting方法,以便打印最适合您的方法。最后在Customer中只需遍历accountList,如:

public String toString()
{   String s = "";
    for (Account account:accountList){
        s += account.toString() + "\n";
    }
    return s;
}