设计一个名称为Account的类,具体包括:
- id:账号,私有属性,整型,默认值为0;
- balance:余额,私有属性,实型,默认值为0;
- annualInterestRate:当前利率,私有属性,实型,默认值为0,假设所有帐户均有相同的利率;
- dateCreated:账户开户时间,私有属性,LocalDate类型,默认为2020年7月31日;
- 一个能创建默认账户的无参构造方法;
- 一个能创建带特定id和初始余额的账户的构造方法;
- id、balance、annualInterstRate的getter及setter方法;
- dateCreated的getter方法;
- 一个名为getMonthlyInterestRate()的方法返回月利率(月利率计算公式:余额*(年利率/1200));
- 一个名为withDraw的方法从账户提取特定数额,当提取数额大于余额或为负数系统返回
WithDraw Amount Wrong
提示; - 一个名为deposit的方法向账户存储特定数额,当存储数额大于20000元或为负数系统返回
Deposit Amount Wrong
提示。
编写一个测试程序:
- 创建一个账户,其账户id、余额及利率分别有键盘输入,账户开户时间取系统当前时间;
- 输入取钱金额,系统进行取钱操作,如果取钱金额有误,则输出提示信息后系统继续运行;
- 输入存钱金额,系统进行存钱操作,如果存钱金额有误,则输出提示信息后系统继续运行;
- 系统输出,以如下格式分别输出该账户余额、月利息以及开户日期(输出实型数均保留两位小数)
输入格式:
在一行内分别输入账户id、初始余额、当前利率、提取金额、存储金额,数据间采用一个或多个空格分隔。
输出格式:
共分三行输出,分别为约、计算的月利息以及开户日期,格式如下:
-
`The Account'balance:余额`
The Monthly interest:月利息
-
`The Account'dateCreated:年-月-日`
import java.util.Date;
import java.util.Scanner;
public class Account {
private int id=0;//账号,私有属性,整型,默认值为0
private float balance=0;//余额,私有属性,实型,默认值为0
private static float annualInterestRate=0;//当前利率,私有属性,实型,默认值为0
private Date dateCreated;//账户开户时间,私有属性,LocalDate类型,默认为2020年7月31日
//创建默认账户的无参构造方法
public Account(){
}
//创建带特定id和初始余额的账户的构造方法
public Account(int id,float balance){
this.id=id;
this.balance=balance;
}
//getter
public int getId(){
return id;
}
public float getBalance(){
return balance;
}
public float getAnnualInterestRate() {
return annualInterestRate;
}
public Date getDateCreated(){
return getDateCreated();
}
//setter
public void setId(int id) {
this.id = id;
}
public void setBalance(float balance) {
this.balance = balance;
}
public void setAnnualInterestRate(float annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
//主函数
public static void main(String[] args){
Scanner x=new Scanner(System.in);
Account zh=new Account();
zh.setId(x.nextInt());//得到账户id
zh.setBalance(x.nextFloat());//得到账户余额
zh.setAnnualInterestRate(x.nextFloat());//得到账户月利率
int tqje=x.nextInt(),ccje=x.nextInt();//得到提取金额和存储金额
float b,c,d;
b= zh.withDraw(tqje);
c= zh.deposit(ccje);
d=getMonthlyInterestRate(c);
System.out.printf("The Account'balance:%.2f\n",c);
System.out.printf("The Monthly interest:%.2f\n",d);
System.out.println("The Account'dateCreated:2020-07-31");
}
//计算月利率
public static float getMonthlyInterestRate(float c){
float interest;
interest= (float) (c*annualInterestRate/1200.0);
return interest;
}
//取钱
public float withDraw(int tqje){
if(tqje>balance||tqje<0){
System.out.println("WithDraw Amount Wrong");
}
else{
this.balance=getBalance()-tqje;
}
return balance;
}
//存钱
public float deposit(int ccje){
if(ccje>20000||ccje<0){
System.out.println("Deposit Amount Wrong");
}
else{
this.balance=getBalance()+ccje;
}
return balance;
}
}