用Java写PTA 7-11 设计一个能处理异常的Loan类
定义一个贷款类Loan,其中有属性:
annualInterestRate:double,表示贷款的年利率(默认值:2.5)
numberOfYears:int,表示贷款的年数(默认值:1)
loanAmount:double,表示贷款额(默认值:100)
loanDate:java.util.Date,表示创建贷款的日期
定义方法:
(1)默认的无参构造方法
(2)带指定利率、年数和贷款额的构造方法
(3)所有属性的get/set方法
(4)返回这笔贷款的月支付额getMonthlyPayment()
月支付额 = (贷款额度月利率)/(1-(1/Math.pow(1+月利率,年数12)))
(5)返回这笔贷款的总支付额getTotalPayment()
总支付额度 = 月支付额度年数12

附上如下的测试类。

public class Main{public static void main(String[] args) {Scanner input = new Scanner(System.in);while (input.hasNext()) {double AIR = input.nextDouble();int NOY = input.nextInt();double LA = input.nextDouble();try {Loan m = new Loan(AIR, NOY, LA);System.out.printf("%.3f\n",m.getTotalPayment());} catch (Exception ex) {System.out.println(ex);}}}
}

输入格式:
输入有多组数据,一个实数表示年利率,一个整数表示年数,一个实数表示贷款总额。

输出格式:
若任意一项小于或等于零,抛出IllegalArgumentException异常及相应描述(Number of years must be positive或Annual interest rate must be positive或Loan amount must be positive);有多项不符合,以不符合最前项为准;

若均符合要求,按照格式输出总额。

输入样例:
在这里给出一组输入。例如:

1 1 1000
2.0 0 2000
0 0 0
输出样例:
在这里给出相应的输出。例如:

1005.425
java.lang.IllegalArgumentException: Number of years must be positive
java.lang.IllegalArgumentException: Annual interest rate must be positive

import java.util.Scanner;
class Loan{double annualInterestRate;int numberOfYears;double loanAmount;
java.util.Date loanDate;Loan(){this.annualInterestRate=2.5;this.numberOfYears=1;this.loanAmount=100;this.loanDate=loanDate;}Loan(double annualInterestRate,int numberOfYears,double loanAmount){this.annualInterestRate=annualInterestRate;this.numberOfYears=numberOfYears;this.loanAmount=loanAmount;}public double getAnnualInterestRate() {return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate) {this.annualInterestRate = annualInterestRate;
}
public int getNumberOfYears() {return numberOfYears;
}
public void setNumberOfYears(int numberOfYears) {this.numberOfYears = numberOfYears;
}
public double getLoanAmount() {return loanAmount;
}
public void setLoanAmount(double loanAmount) {this.loanAmount = loanAmount;
}
public java.util.Date getLoanDate() {return loanDate;
}
public void setLoanDate(java.util.Date loanDate) {this.loanDate = loanDate;
}public double getMonthlyPayment(){double monthRate=annualInterestRate/1200;double monthlyPayment=(monthRate)/(1-(1/Math.pow(1+monthRate,numberOfYears*12)));  return monthlyPayment;}public double getTotalPayment(){double totalPayment=getMonthlyPayment()*12*numberOfYears;return totalPayment;}}
public class Main{public static void main(String[] args) {Scanner input = new Scanner(System.in);while (input.hasNext()) {double AIR = input.nextDouble();int NOY = input.nextInt();double LA = input.nextDouble();try {Loan m = new Loan(AIR, NOY, LA);if (AIR<=0)throw new IllegalArgumentException("Annual interest rate must be positive");
else if (NOY<=0)throw new IllegalArgumentException("Number of years must be positive");
else if (LA<=0)throw new IllegalArgumentException("Loan amount must be positive");System.out.printf("%.3f\n",m.getTotalPayment()*1000);} catch (Exception ex) {System.out.println(ex);}}}
}

用Java写PTA 7-11 设计一个能处理异常的Loan类相关推荐

  1. 7-9 设计一个能处理异常的Loan类 (20 分)

    定义一个贷款类Loan,其中有属性: annualInterestRate:double,表示贷款的年利率(默认值:2.5) numberOfYears:int,表示贷款的年数(默认值:1) loan ...

  2. 用Java写PTA 7-8 设计一个Shape及其子类Oval

    用Java写PTA 7-8 设计一个Shape及其子类Oval 编写一个完整的Java Application 程序.包含类Shape.类Oval.类ShapeTest,具体要求如下: (1)编写一个 ...

  3. 设计一个名为Rectangle的矩形类,这个类包括:两个名为width和height的double数据域。

    设计一个名为Rectangle的矩形类,这个类包括:两个名为width和height的double数据域,它们分别表示矩形的宽和高.width和height的默认值都为1.该类包括矩形类的无参构造函数 ...

  4. Python面向对象基础练习——设计一个名为 MyRectangle 的矩形类来表示矩形

    # 设计一个名为 MyRectangle 的矩形类来表示矩形.这个类包含 # (1) 左上角顶点的坐标:x,y # (2) 宽度和高度:width.height # (3) 构造方法:传入 x,y,w ...

  5. 设计一个名为 MyRectangle 的矩形类来表示矩形

    设计一个名为 MyRectangle 的矩形类来表示矩形.这个类包含 (1) 左上角顶点的坐标:x,y (2) 宽度和高度:width.height (3) 构造方法:传入 x,y,width,hei ...

  6. Python基础学习笔记——设计一个名为MyRectangle的矩形类来表示矩形

    学习目标: '设计一个名为MyRectangle的矩形类来表示矩形,这个类包含: (1)左上角坐标:x,y (2)宽度和高度 (3)构造方法:传入x,y,width,height.如果(x,y)不传默 ...

  7. java 百亿计算器_设计一个一百亿的计算器

    .补码(负数在计算机中的存储) .百亿计算器 负数在计算机中以补码的形式存储. 负数的补码表示方法是:将负数表示成二进制原码(负数最高位是1,正数最高位是0)然后将原码取反(1变0,0变1),即反码, ...

  8. Java技术分享:如何设计一个本地缓存?

    前言 最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存:一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能:当然如果拿来和专门的 ...

  9. Java数据结构与算法-----如何设计一个排队系统

    1.问题 设计一个排队系统,能够让每个进入队的用户都能看到自己在队列中所处的位置和变化.队列可能随时有人加入和退出,当有人退出时影响到用户的位置需要及时的反馈到用户. 2.问题分析: 不仅要实现队列常 ...

最新文章

  1. Android中对Log日志文件的分析
  2. curl_init()和curl_multi_init()多线程的速度比较
  3. P2055 [ZJOI2009]假期的宿舍(二分图匹配)
  4. ENSP配置 实例五 RIP配置
  5. Collection(单列集合)
  6. 如果女孩子一辈子不结婚,那会是怎样的人生?
  7. 面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?
  8. 让系统在内存中高速运行
  9. 第四回. 实数系的性质
  10. spring 项目中设置maven镜像源
  11. einsum(): operands do not broadcast with remapped shapes [original->remapped]: [1, 144, 20, 17]->[1,
  12. 微信小程序网易云音乐获取视频列表数据(需要登录获取携带cookie)
  13. 股票中,什么是净资产收益率,有什么作用?
  14. 机器学习-决策树算法
  15. ROS学习小笔记(Topic通信 ,service通信,参数服务器)
  16. 【搞定算法】蓄水池算法
  17. bilibili level up
  18. 阴阳师服务器维护2月20,阴阳师2019年3月20日更新内容 阴阳师手游3月20日维护更新公告...
  19. 2021年中国人工智能企业数量、投资数量及金额分析:国内互联网巨头腾讯企业投资达82家[图]
  20. SwitchyOmega使用教程

热门文章

  1. 计算机考研失败了还能找工作吗,考研失败了怎么办_考研失败还能找工作吗
  2. PIC18f46j50单片机里SPI部分的一点程序
  3. JavaScript实现在线websocket WSS测试工具 -toolfk程序员工具网
  4. 自动驾驶:道路交通领域的范式革命,交通强国建设的引擎
  5. CE1到9关详细教程
  6. 补天漏洞平台:让更多的白帽子脱离黑产
  7. 封校大学生在宿舍无聊玩起图像大找茬——一个关于游戏的练手小项目(一起领略Python脚本的风采吧)
  8. 1 Openwrt无线中继设置并访问外网
  9. Google Adsense通过西联快汇收取收入的详细步骤
  10. 怎么识别图片上的文字?告诉你3款简单又实用的识别软件