BK网络学院

首页搜索登录
首页业界网页平面多媒体程序数据库办公工具服务器系统网络安全站长认证壁纸
加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

java经典试题:贷款器

[日期:2013-10-17] 作者: 来源: [字体: ]

2.33 贷款器

题目:编写贷款计算程序,根据给定的贷款金额、年利率及贷款期限,计算月支付金额及总支付金额。

2.33.1源程序

 

package example;

import Javax.swing.*;

import java.text.*;

public class daikuanqi {

    public static void main(String[] args) {

      final int MONTHS_IN_YEAR=12;

      double loanAmount,annualInterestRate;

      double monthlyPayment,totalPayment;

      double monthlyInterestRate;

      int loanPeriod;

      int numberOfPayments;

      String inputStr;

      DecimalFormat df=new DecimalFormat("0.00");

      //get input values

      inputStr=JOptionPane.showInputDialog(null,"贷款金额(精确到美分,如15000.00):");

      loanAmount=Double.parseDouble(inputStr);

      inputStr=JOptionPane.showInputDialog(null,"年利率(百分比,如9.5):");

      annualInterestRate=Double.parseDouble(inputStr);

      inputStr=JOptionPane.showInputDialog(null,"贷款期限(年份,如30):");

      loanPeriod=Integer.parseInt(inputStr);

      monthlyInterestRate=annualInterestRate/MONTHS_IN_YEAR/100;

      numberOfPayments=loanPeriod*MONTHS_IN_YEAR;

    monthlyPayment=(loanAmount*monthlyInterestRate)/(1-Math.pow(1/(1+monthlyInterestRate),numberOfPayments));

      totalPayment=monthlyPayment*numberOfPayments;

      System.out.println("贷款金额:$ "+loanAmount);

      System.out.println("年利率:  "+annualInterestRate+"%");

      System.out.println("贷款期限: "+loanPeriod);

      System.out.println("");

      System.out.println("月付款金额:$ "+df.format(monthlyPayment));

      System.out.println("总付款金额:$ "+df.format(totalPayment));

      System.out.println("");

    }

}

 

2.33.2      程序运行结果:

 

 

输出:

贷款金额:$ 10000.0

年利率:  10.0%

贷款期限: 10

 

月付款金额:$ 132.15

总付款金额:$ 15858.09

2.33.3      源程序揭秘

1、提示用户输入内容的格式,获得三个输入值:loanAmount(贷款金额)、annualInterestRate(年利率)、loanPeriod(贷款期限)。

使用JOptionPane类中的showInputDialog方法获得三个输入值。使用转换方法parseDouble、parseInt将三个输入值转换成需要的double型或int型。

inputStr=JOptionPane.showInputDialog(null,"贷款金额(精确到美分,如15000.00):");

      loanAmount=Double.parseDouble(inputStr);

      inputStr=JOptionPane.showInputDialog(null,"年利率(百分比,如9.5):");

      annualInterestRate=Double.parseDouble(inputStr);

      inputStr=JOptionPane.showInputDialog(null,"贷款期限(年份,如30):");

      loanPeriod=Integer.parseInt(inputStr);

2、将年利率转换成月利率,计算出以月为单位的贷款期限,利用Math类的pow方法计算月支付金额公式中的幂次,计算月支付金额及总支付金额。

monthlyInterestRate=annualInterestRate/MONTHS_IN_YEAR/100;

numberOfPayments=loanPeriod*MONTHS_IN_YEAR;

monthlyPayment=(loanAmount*monthlyInterestRate)/(1-Math.pow(1/(1+monthlyInterestRate),numberOfPayments));

totalPayment=monthlyPayment*numberOfPayments;

3、使用DecimalFormat类创建对象将小数位限制为2位,使用println方法标准输出标注和月支付金额及总支付金额。

DecimalFormat df=new DecimalFormat("0.00");

System.out.println("贷款金额:$ "+loanAmount);

System.out.println("年利率:  "+annualInterestRate+"%");

System.out.println("贷款期限: "+loanPeriod);

System.out.println("");

System.out.println("月付款金额:$ "+df.format(monthlyPayment));

System.out.println("总付款金额:$ "+df.format(totalPayment));

关键词:试题  贷款  贷款器 

收藏 推荐 打印 | 录入:blue1000 | 阅读:
最新图文
本文评论   查看全部评论 (1)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 匿名 发表于 2016/12/24 19:27:54
http://www.blue1000.com/bkhtml/c149/2013-07/71270p3.htm 《小王子》读后感450字 http://www.blue1000.com/show/21390.html 《小王子》读后感400字 http://www.blue1000.com/show/21389.html