堃芃24 2021-03-22 21:02 采纳率: 50%
浏览 188
已结题

求大神,pta总有两个测试点过不了

 

设计一个名称为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提示。

编写一个测试程序:

  1. 创建一个账户,其账户id、余额及利率分别有键盘输入,账户开户时间取系统当前时间;
  2. 输入取钱金额,系统进行取钱操作,如果取钱金额有误,则输出提示信息后系统继续运行;
  3. 输入存钱金额,系统进行存钱操作,如果存钱金额有误,则输出提示信息后系统继续运行;
  4. 系统输出,以如下格式分别输出该账户余额、月利息以及开户日期(输出实型数均保留两位小数)

输入格式:

在一行内分别输入账户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;
    }

}
  • 写回答

1条回答 默认 最新

  • 歇歇 2021-03-23 09:31
    关注

    把问题列出来

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月17日

悬赏问题

  • ¥100 寻找技术员 云闪付tn转h5输入卡号付款的链接 重酬!
  • ¥15 sanf语句学习输入时遇到问题
  • ¥100 科大讯飞语音唤醒词,unbuntu环境,报错
  • ¥50 python写segy数据时出错2
  • ¥20 关于R studio 做精确稳定检验的问题!(语言-r语言)
  • ¥50 用贝叶斯决策方法,设计CAD程序
  • ¥20 关于#目标检测#的问题:(qq收集表到时间才能填写,填写的份数有上限)
  • ¥50 ZYNQ7020双核FLAHS烧写的问题
  • ¥20 ue 5 中想要实现第一人称人物左右行走摆动的效果,摄像头只向右摆动一次(关键词-结点)
  • ¥15 AD9164瞬时带宽1.8G,怎么计算出来?