Java 如何循环使用每个帐户?
规格 创建一个银行账户,并从用户处读取初始余额。它提供了一个菜单,用户可以存款和取款,并查看余额。它也有每日利息。帐户菜单选项如下: d:押金:请看挂载 w:取款:读入金额,并进行验证 s:请看余额 x:退出任何东西 其他:帮助 客户有三个银行账户,分别为信用账户、储蓄账户和定期账户;年利率分别为0%、1.2%和3.4%。客户菜单允许用户选择一个帐户添加利息,或查看所有余额。菜单选项包括: a:选择帐户:输入名称 i:给所有账户加利息 s:显示所有帐户 x:退出 还有什么:救命 增加兴趣。利息每天被加到一个总金额中,这个总利息在每个月底被加到余额中。这个 银行每天将利息添加到利息字段,并在每个月底将该金额添加到余额并设置利息 回到零。 菜单选项为每个帐户添加30天的每日利息,然后在30天的月末将利息添加到余额中。 利率以年利率百分比表示,例如每年3.4%。 你必须把它转换成日利率。 正常年份有365天。闰年每四年发生一次,有366天。处理闰年的标准方法是使用365.25天的年份 以下是我到目前为止的情况;我的问题是如何完成string-toString方法()并选择方法Java 如何循环使用每个帐户?,java,Java,规格 创建一个银行账户,并从用户处读取初始余额。它提供了一个菜单,用户可以存款和取款,并查看余额。它也有每日利息。帐户菜单选项如下: d:押金:请看挂载 w:取款:读入金额,并进行验证 s:请看余额 x:退出任何东西 其他:帮助 客户有三个银行账户,分别为信用账户、储蓄账户和定期账户;年利率分别为0%、1.2%和3.4%。客户菜单允许用户选择一个帐户添加利息,或查看所有余额。菜单选项包括: a:选择帐户:输入名称 i:给所有账户加利息 s:显示所有帐户 x:退出 还有什么:救命 增加兴趣。利息每
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;
}
}
import java.util.*;
公共类客户
{公共静态void main(字符串[]args)
{新客户();}
公众客户()
{
设置();
}
私有无效设置()
{
账户。添加(新账户(“,0.0”);
账户。添加(新账户(“,0.0”);
账户。添加(新账户(“,0.0”);
}
公共用途()
{
字符选择;
而((choice=readChoice())!='x')
{
开关(选择)
{
案例“a”:选择();中断;
案例“i”:addInterest();break;
案例:show();break;
默认值:help();
}
}
}
私有字符readChoice()
{返回'x';}
私有void choose()
{
//请款
//搜索该帐户;使用帐户(名称)搜索特定帐户
//使用新找到的帐户(假定已找到)
}
私有字符串readName()
{
//提供您正在搜索的accountName
系统输出打印(“???账户;”);
在.nextLine()中返回;
}
私人帐户(字符串名称)
{返回null;}
私有void addInterest()
{for(账户:账户)
{for(int i=0;i<30;i++)
account.addDailyInterest();
account.addMonthlyInterest();}
私人助理
{String s=“菜单选项为”;
s+=“\n a:选择一个帐户”;
s+=“\n i:向所有帐户添加利息”;
s+=“\n s show”;
s+=“\n x退出”;
System.out.println(s);}
私人电视节目()
{
System.out.println(本文件);
}
公共字符串toString()
{String s=”“;
//循环检查每个帐户
//将每个帐户添加到字符串();
//使用新行分隔每个帐户对象。
返回s;
}
}
那么,它到底编译了吗?通常我会使用Customer类,它有一个私有列表accountList
,很容易扩展(我看到accounts.add(newaccount(“,0.0));
但没有列表声明)
然后覆盖帐户中的toSting
方法,以便打印最适合您的内容。最后,在Customer中,只需迭代accountList,如下所示:
public String toString()
{ String s = "";
for (Account account:accountList){
s += account.toString() + "\n";
}
return s;
}
这个问题很奇怪。。。您已经知道如何迭代数组,以及如何使用行分隔符追加字符串。你真正的问题是什么?你读过我的问题吗?如何完成choose and toString()方法?是的,我已经读过了,但我仍然不知道为什么您不能自己实现
toString()
方法。这里的choose()
可能有点不同,但是您没有先尝试过什么吗?是的,我的客户类中有这个。私有LinkedList帐户=新建LinkedList();因此,只需在Account类中覆盖toString
,并使用发布的代码即可。同样考虑到choose
方法,它将以类似的方式循环整个accountList,如果任何帐户与您的姓名匹配,只需返回它。